diff --git a/check-services.php b/check-services.php index b74ae170d8..55295a70f7 100755 --- a/check-services.php +++ b/check-services.php @@ -31,8 +31,16 @@ foreach (dbFetchRows('SELECT * FROM `devices` AS D, `services` AS S WHERE S.devi include $checker_script; } else { - $status = '2'; - $check = "Error : Script not found ($checker_script)"; + $cmd = $config['nagios_plugins'] . "/check_" . $service['service_type'] . " -H " . ($service['service_ip'] ? $service['service_ip'] : $service['hostname']); + $cmd .= " ".$service['service_param']; + $check = shell_exec($cmd); + list($check, $time) = split("\|", $check); + if(stristr($check, "ok -")) { + $status = 1; + } + else { + $status = 0; + } } $update = array(); diff --git a/html/includes/print-service-add.inc.php b/html/includes/print-service-add.inc.php index f8ab34e9ac..ac5b67759b 100644 --- a/html/includes/print-service-add.inc.php +++ b/html/includes/print-service-add.inc.php @@ -47,6 +47,7 @@ echo "
+ This may be required based on the service check.
diff --git a/html/includes/print-service-edit.inc.php b/html/includes/print-service-edit.inc.php index d0ad23a569..7b5c1bafb5 100644 --- a/html/includes/print-service-edit.inc.php +++ b/html/includes/print-service-edit.inc.php @@ -26,6 +26,9 @@ if (isset($_POST['service']) && is_numeric($_POST['service'])) {
+
+ This may be required based on the service check. +
diff --git a/html/includes/print-service.inc.php b/html/includes/print-service.inc.php index e91535d79f..d16fb4a198 100644 --- a/html/includes/print-service.inc.php +++ b/html/includes/print-service.inc.php @@ -42,11 +42,11 @@ $popup .= ""; + "; if ($device_id) { if (!$samehost) { - echo "".generate_device_link($device).''; + echo "".generate_device_link($device).''; } else { echo ''; @@ -54,14 +54,13 @@ if ($device_id) { } echo " - + $status - - + $since - + $message "; diff --git a/html/pages/addsrv.inc.php b/html/pages/addsrv.inc.php index 05a5c2eac9..8fe1459829 100644 --- a/html/pages/addsrv.inc.php +++ b/html/pages/addsrv.inc.php @@ -9,7 +9,7 @@ else { $updated = '1'; // FIXME should call add_service (needs more parameters) - $service_id = dbInsert(array('device_id' => $_POST['device'], 'service_ip' => $_POST['ip'], 'service_type' => $_POST['type'], 'service_desc' => $_POST['descr'], 'service_param' => $_POST['params'], 'service_ignore' => '0'), 'services'); + $service_id = dbInsert(array('device_id' => $_POST['device'], 'service_ip' => $_POST['ip'], 'service_type' => $_POST['type'], 'service_desc' => $_POST['descr'], 'service_param' => $_POST['params'], 'service_ignore' => '0', 'service_status' => '0', 'service_checked' => '0', 'service_changed' => '0', 'service_message' => 'New check', 'service_disabled' => '0'), 'services'); if ($service_id) { $message .= $message_break.'Service added ('.$service_id.')!'; @@ -18,10 +18,11 @@ else { } } - if ($handle = opendir($config['install_dir'].'/includes/services/')) { + if ($handle = opendir($config['nagios_plugins'])) { while (false !== ($file = readdir($handle))) { - if ($file != '.' && $file != '..' && !strstr($file, '.')) { - $servicesform .= ""; + if ($file != '.' && $file != '..' && !strstr($file, '.') && strstr($file, 'check_')) { + list(,$check_name) = explode('_',$file,2); + $servicesform .= ""; } } diff --git a/html/pages/services.inc.php b/html/pages/services.inc.php index 0e4d2edfc6..e908172f2d 100644 --- a/html/pages/services.inc.php +++ b/html/pages/services.inc.php @@ -8,7 +8,6 @@ echo "Services » "; $menu_options = array( 'basic' => 'Basic', - 'details' => 'Details', ); $sql_param = array(); @@ -68,7 +67,6 @@ echo '
Device Service - Status Changed Message ';