mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	Dynamic use of nagios-service checks
This commit is contained in:
		| @@ -31,8 +31,16 @@ foreach (dbFetchRows('SELECT * FROM `devices` AS D, `services` AS S WHERE S.devi | |||||||
|             include $checker_script; |             include $checker_script; | ||||||
|         } |         } | ||||||
|         else { |         else { | ||||||
|             $status = '2'; |             $cmd = $config['nagios_plugins'] . "/check_" . $service['service_type'] . " -H " . ($service['service_ip'] ? $service['service_ip'] : $service['hostname']); | ||||||
|             $check  = "Error : Script not found ($checker_script)"; |             $cmd .= " ".$service['service_param']; | ||||||
|  |             $check = shell_exec($cmd); | ||||||
|  |             list($check, $time) = split("\|", $check); | ||||||
|  |             if(stristr($check, "ok -")) { | ||||||
|  |                 $status = 1; | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 $status = 0; | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|             $update = array(); |             $update = array(); | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ else { | |||||||
|             $updated = '1'; |             $updated = '1'; | ||||||
|  |  | ||||||
|             // FIXME should call add_service (needs more parameters) |             // 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) { |             if ($service_id) { | ||||||
|                 $message       .= $message_break.'Service added ('.$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))) { |         while (false !== ($file = readdir($handle))) { | ||||||
|             if ($file != '.' && $file != '..' && !strstr($file, '.')) { |             if ($file != '.' && $file != '..' && !strstr($file, '.') && strstr($file, 'check_')) { | ||||||
|                 $servicesform .= "<option value='$file'>$file</option>"; |                 list(,$check_name) = explode('_',$file); | ||||||
|  |                 $servicesform .= "<option value='$check_name'>$check_name</option>"; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user