#!/usr/bin/php $sysContact')"); } echo("$update\n"); $sysName = strtolower($sysName); if ( $sysName && $sysName != $device['sysName'] ) { $update .= $seperator . "`sysName` = '$sysName'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'sysName -> $sysName')"); } if ( $sysDescr && $sysDescr != $device['sysDescr'] ) { $update .= $seperator . "`sysDescr` = '$sysDescr'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'sysDescr -> $sysDescr')"); } if ( $sysLocation && $device['location'] != $sysLocation ) { $update .= $seperator . "`location` = '$sysLocation'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'Location -> $sysLocation')"); } if ( $version && $device['version'] != $version ) { $update .= $seperator . "`version` = '$version'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'OS Version -> $version')"); } if ( $features && $features != $device['features'] ) { $update .= $seperator . "`features` = '$features'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'OS Features -> $features')"); } if ( $hardware && $hardware != $device['hardware'] ) { $update .= $seperator . "`hardware` = '$hardware'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'Hardware -> $hardware')"); } if( $device['status'] != $status ) { $update .= $seperator . "`status` = '$status'"; $seperator = ", "; if ($status == '1') { $stat = "Up"; mysql_query("INSERT INTO alerts (importance, device_id, message) VALUES ('0', '" . $device['device_id'] . "', 'Device is up\n')"); } else { $stat = "Down"; mysql_query("INSERT INTO alerts (importance, device_id, message) VALUES ('9', '" . $device['device_id'] . "', 'Device is down\n')"); } mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('" . $device['device_id'] . "', NULL, NOW(), 'Device status changed to $stat')"); } if ($uptime) { $old_uptime = @mysql_result(mysql_query("SELECT `attrib_value` FROM `devices_attribs` WHERE `device_id` = '" . $device['device_id'] . "' AND `attrib_type` = 'uptime'"), 0); if( $uptime < $old_uptime ) { if($device['sysContact']) { $email = $device['sysContact']; } else { $email = $config['email_default']; } mail($notify_email, "Device Rebooted: " . $device['hostname'], "Device Rebooted :" . $device['hostname'] . " at " . date('l dS F Y h:i:s A'), $config['email_headers']); } $uptimerrd = $config['rrd_dir'] . "/" . $device['hostname'] . "/uptime.rrd"; $old_uptimerrd = "rrd/" . $device['hostname'] . "-uptime.rrd"; if(is_file($old_uptimerrd) && !is_file($uptimerrd)) { rename($old_uptimerrd, $uptimerrd); echo("Moving $old_uptimerrd to $uptimerrd"); } if(!is_file($uptimerrd)) { $woo = shell_exec($config['rrdtool'] . " create $uptimerrd \ DS:uptime:GAUGE:600:0:U \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:6:700 \ RRA:AVERAGE:0.5:24:775 \ RRA:AVERAGE:0.5:288:797"); } rrdtool_update($uptimerrd, "N:$uptime"); $update_uptime_attrib = mysql_query("UPDATE devices_attribs SET attrib_value = '$uptime' WHERE `device_id` = '" . $device['device_id'] . "' AND `attrib_type` = 'uptime'"); if(mysql_affected_rows() == '0') { $insert_uptime_attrib = mysql_query("INSERT INTO devices_attribs (`device_id`, `attrib_type`, `attrib_value`) VALUES ('" . $device['device_id'] . "', 'uptime', '$uptime')"); } mysql_query("UPDATE `devices` SET `last_polled` = NOW() WHERE `device_id` = '". $device['device_id'] ."'"); } ## End if snmpable if ($update) { $update_query = "UPDATE `devices` SET "; $update_query .= $update; $update_query .= " WHERE `device_id` = '" . $device['device_id'] . "'"; echo("Updating " . $device['hostname'] . "\n"); $update_result = mysql_query($update_query); } else { echo("No Changes to " . $device['hostname'] . "\n"); } $i++; echo("\n"); } $poller_end = utime(); $poller_run = $poller_end - $poller_start; $poller_time = substr($poller_run, 0, 5); $string = $argv[0] . " $doing " . date("F j, Y, G:i") . " - $i devices polled in $poller_time secs"; echo("$string\n"); shell_exec("echo '".$string."' >> /opt/observer/observer.log"); ?>