From c25f4d46e54389473f408f041ab7477fef171e4a Mon Sep 17 00:00:00 2001 From: Adam Amstrong Date: Thu, 3 May 2012 11:43:29 +0000 Subject: [PATCH] Use uptime fetched from Agent. git-svn-id: http://www.observium.org/svn/observer/trunk@3126 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/polling/system.inc.php | 53 +++++++++++++++++---------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/includes/polling/system.inc.php b/includes/polling/system.inc.php index 48ea20c6f6..7a3add0031 100755 --- a/includes/polling/system.inc.php +++ b/includes/polling/system.inc.php @@ -18,35 +18,38 @@ $poll_device['sysDescr'] = snmp_get($device, "sysDescr.0", "-Oqv", "SNMPv2-MIB"); $poll_device['sysObjectID'] = snmp_get($device, "sysObjectID.0", "-Oqvn", "SNMPv2-MIB"); - $poll_device['sysName'] = strtolower($poll_device['sysName']); - $hrSystemUptime = snmp_get($device, "hrSystemUptime.0", "-Oqv", "HOST-RESOURCES-MIB"); + if(!empty($agent_data['uptime'])) { list($uptime) = explode(" ", $agent_data['uptime']); $uptime = round($uptime); echo("Using UNIX Agent Uptime ($uptime)\n");} - if ($hrSystemUptime != "" && !strpos($hrSystemUptime, "No") && ($device['os'] != "windows")) + if (empty($uptime)) { - echo("Using hrSystemUptime (".$hrSystemUptime.")\n"); - $agent_uptime = $uptime; ## Move uptime into agent_uptime - #HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (63050465) 7 days, 7:08:24.65 - $hrSystemUptime = str_replace("(", "", $hrSystemUptime); - $hrSystemUptime = str_replace(")", "", $hrSystemUptime); - list($days,$hours, $mins, $secs) = explode(":", $hrSystemUptime); - list($secs, $microsecs) = explode(".", $secs); - $hours = $hours + ($days * 24); - $mins = $mins + ($hours * 60); - $secs = $secs + ($mins * 60); - $uptime = $secs; - } else { - echo("Using Agent Uptime (".$poll_device['sysUpTime'].")\n"); - #SNMPv2-MIB::sysUpTime.0 = Timeticks: (2542831) 7:03:48.31 - $poll_device['sysUpTime'] = str_replace("(", "", $poll_device['sysUpTime']); - $poll_device['sysUpTime'] = str_replace(")", "", $poll_device['sysUpTime']); - list($days, $hours, $mins, $secs) = explode(":", $poll_device['sysUpTime']); - list($secs, $microsecs) = explode(".", $secs); - $hours = $hours + ($days * 24); - $mins = $mins + ($hours * 60); - $secs = $secs + ($mins * 60); - $uptime = $secs; + $hrSystemUptime = snmp_get($device, "hrSystemUptime.0", "-Oqv", "HOST-RESOURCES-MIB"); + if (!empty($hrSystemUptime) && !strpos($hrSystemUptime, "No") && ($device['os'] != "windows")) + { + echo("Using hrSystemUptime (".$hrSystemUptime.")\n"); + $agent_uptime = $uptime; ## Move uptime into agent_uptime + #HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (63050465) 7 days, 7:08:24.65 + $hrSystemUptime = str_replace("(", "", $hrSystemUptime); + $hrSystemUptime = str_replace(")", "", $hrSystemUptime); + list($days,$hours, $mins, $secs) = explode(":", $hrSystemUptime); + list($secs, $microsecs) = explode(".", $secs); + $hours = $hours + ($days * 24); + $mins = $mins + ($hours * 60); + $secs = $secs + ($mins * 60); + $uptime = $secs; + } else { + echo("Using SNMP Agent Uptime (".$poll_device['sysUpTime'].")\n"); + #SNMPv2-MIB::sysUpTime.0 = Timeticks: (2542831) 7:03:48.31 + $poll_device['sysUpTime'] = str_replace("(", "", $poll_device['sysUpTime']); + $poll_device['sysUpTime'] = str_replace(")", "", $poll_device['sysUpTime']); + list($days, $hours, $mins, $secs) = explode(":", $poll_device['sysUpTime']); + list($secs, $microsecs) = explode(".", $secs); + $hours = $hours + ($days * 24); + $mins = $mins + ($hours * 60); + $secs = $secs + ($mins * 60); + $uptime = $secs; + } } // Use snmpEngineTime (68 year rollover) to cross-reference for false positives in device rebooting due to sysUpTime rollover issues