exit; } //$event->set_check_id(null); $event->set_check_name($mydata['checkname']); $event->set_hostname($mydata['hostname']); $event->set_key1($mydata['key1']); $event->set_key2($mydata['key2']); } // Parse message data, to extract message and performance data $msg_data = parse_perf_data($mydata['message']); $event->set_info_msg($msg_data['message']); $event->set_performance_data($msg_data['perf_data']); // Now we can use handle_event() to figure out if this is a new // or exitsing event. It will do all the updating for us // and call notify() in the event class $status = $event->handle_event(); //print status line $resp_mesg = "Successfull {$status} for event_id: " . $event->get_event_id(); //header("HTTP/1.0 200 OK $resp_mesg"); print $resp_mesg; function parse_perf_data($message) { // Now we need to parse the $message and filter out performance data // Message can have multiple perf_data fields // perf data always comes after a | sign // 'label'=value[UOM];[warn];[crit];[min];[max] // For now we don't implement [warn];[crit];[min];[max] , just the data // UOM (unit of measurement) is one of: // no unit specified - assume a number (int or float) of things (eg, users, processes, load averages) // s - seconds (also us, ms) // % - percentage
// Store the info we know from Check object // and check results $event = new Event(); $event->set_status($check_result['status']); $event->set_info_msg($check_result['message']); $event->set_performance_data($check_result['perf_data']); $event->set_check_id($check->get_check_id()); $event->set_script($script); $event->set_check_name($check->get_name()); $event->set_hostname($check->get_hostname()); $event->set_key1($check->get_key1()); $event->set_key2($check->get_key2()); // Now we can use handle_event() to figure out if this is a new // or exitsing event. It will do all the updating for us // and call notify() in the event class $event->handle_event(); $time_end = microtime(true); $time = $time_end - $time_start; //print status line print "{$script} => status: " . $event->get_status() . " " . trim($event->get_info_msg()); if ($check_result['perf_data'] != "") { print " | " . $check_result['perf_data']; } print " -- ({$time} sec)\n"; // This function does the actual execution function exec_check($script) { $return_var = 3; $error = false; // first check if script exist list($filename) = split(" ", $script);