| 
									
										
										
										
											2010-09-03 18:26:59 +00:00
										 |  |  | #!/usr/bin/env php
 | 
					
						
							| 
									
										
										
										
											2007-04-03 14:10:23 +00:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2010-02-27 14:44:38 +00:00
										 |  |  | include("includes/defaults.inc.php"); | 
					
						
							| 
									
										
										
										
											2007-04-03 14:10:23 +00:00
										 |  |  | include("config.php"); | 
					
						
							|  |  |  | include("includes/functions.php"); | 
					
						
							| 
									
										
										
										
											2011-03-12 08:50:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-20 19:20:56 +00:00
										 |  |  | $sql = "SELECT * FROM devices AS D, services AS S WHERE S.device_id = D.device_id ORDER by D.device_id DESC"; | 
					
						
							| 
									
										
										
										
											2007-04-03 14:10:23 +00:00
										 |  |  | $query = mysql_query($sql); | 
					
						
							| 
									
										
										
										
											2011-03-23 09:54:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-06 13:54:50 +00:00
										 |  |  | while ($service = mysql_fetch_assoc($query)) | 
					
						
							| 
									
										
										
										
											2011-03-12 08:50:47 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-03-23 09:54:56 +00:00
										 |  |  |   if ($service['status'] = "1") | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     unset($check, $service_status, $time, $status); | 
					
						
							|  |  |  |     $service_status = $service['service_status']; | 
					
						
							|  |  |  |     $service_type = strtolower($service['service_type']); | 
					
						
							|  |  |  |     $service_param = $service['service_param']; | 
					
						
							|  |  |  |     $checker_script = $config['install_dir'] . "/includes/services/" . $service_type . "/check.inc"; | 
					
						
							| 
									
										
										
										
											2007-04-03 14:10:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-23 09:54:56 +00:00
										 |  |  |     if (is_file($checker_script)) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       include($checker_script); | 
					
						
							| 
									
										
										
										
											2011-03-22 20:27:39 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-03-23 09:54:56 +00:00
										 |  |  |     else | 
					
						
							| 
									
										
										
										
											2011-03-22 20:27:39 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-03-23 09:54:56 +00:00
										 |  |  |       $status = "2"; | 
					
						
							|  |  |  |       $check = "Error : Script not found ($checker_script)"; | 
					
						
							| 
									
										
										
										
											2011-03-22 20:27:39 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-23 09:54:56 +00:00
										 |  |  |     if ($service_status != $status) | 
					
						
							| 
									
										
										
										
											2011-03-22 20:27:39 +00:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-03-23 09:54:56 +00:00
										 |  |  |       $updated = ", `service_changed` = '" . time() . "' "; | 
					
						
							|  |  |  |       if ($service['sysContact']) { $email = $service['sysContact']; } else { $email = $config['email_default']; } | 
					
						
							|  |  |  |       if ($status == "1") | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         $msg  = "Service Up: " . $service['service_type'] . " on " . $service['hostname']; | 
					
						
							|  |  |  |         $msg .= " at " . date($config['timestamp_format']); | 
					
						
							|  |  |  |         notify($device, "Service Up: " . $service['service_type'] . " on " . $service['hostname'], $msg); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       elseif ($status == "0") | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         $msg  = "Service Down: " . $service['service_type'] . " on " . $service['hostname']; | 
					
						
							|  |  |  |         $msg .= " at " . date($config['timestamp_format']); | 
					
						
							|  |  |  |         notify($device, "Service Down: " . $service['service_type'] . " on " . $service['hostname'], $msg); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } else { unset($updated); } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $update_sql = "UPDATE `services` SET `service_status` = '$status', `service_message` = '" . addslashes($check) . "', `service_checked` = '" . time() . "' $updated WHERE `service_id` = '" . $service['service_id']. "'"; | 
					
						
							|  |  |  |     mysql_query($update_sql); | 
					
						
							|  |  |  |   } else { | 
					
						
							|  |  |  |     $status = "0"; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   $rrd  = $config['rrd_dir'] . "/" . $service['hostname'] . "/" . safename("service-" . $service['service_type'] . "-" . $service['service_id'] . ".rrd"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (!is_file($rrd)) | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     rrdtool_create($rrd,"--step 300 \
 | 
					
						
							|  |  |  |       DS:status:GAUGE:600:0:1 \ | 
					
						
							|  |  |  |       RRA:AVERAGE:0.5:1:1200 \ | 
					
						
							|  |  |  |       RRA:AVERAGE:0.5:12:2400");
 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if ($status == "1" || $status == "0") | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     rrdtool_update($rrd,"N:".$status); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-03-12 08:50:47 +00:00
										 |  |  | } # while
 | 
					
						
							| 
									
										
										
										
											2011-03-23 09:54:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ?>
 |