mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Use uptime fetched from Agent.
git-svn-id: http://www.observium.org/svn/observer/trunk@3126 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
@@ -18,35 +18,38 @@
|
|||||||
|
|
||||||
$poll_device['sysDescr'] = snmp_get($device, "sysDescr.0", "-Oqv", "SNMPv2-MIB");
|
$poll_device['sysDescr'] = snmp_get($device, "sysDescr.0", "-Oqv", "SNMPv2-MIB");
|
||||||
$poll_device['sysObjectID'] = snmp_get($device, "sysObjectID.0", "-Oqvn", "SNMPv2-MIB");
|
$poll_device['sysObjectID'] = snmp_get($device, "sysObjectID.0", "-Oqvn", "SNMPv2-MIB");
|
||||||
|
|
||||||
$poll_device['sysName'] = strtolower($poll_device['sysName']);
|
$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");
|
$hrSystemUptime = snmp_get($device, "hrSystemUptime.0", "-Oqv", "HOST-RESOURCES-MIB");
|
||||||
$agent_uptime = $uptime; ## Move uptime into agent_uptime
|
if (!empty($hrSystemUptime) && !strpos($hrSystemUptime, "No") && ($device['os'] != "windows"))
|
||||||
#HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (63050465) 7 days, 7:08:24.65
|
{
|
||||||
$hrSystemUptime = str_replace("(", "", $hrSystemUptime);
|
echo("Using hrSystemUptime (".$hrSystemUptime.")\n");
|
||||||
$hrSystemUptime = str_replace(")", "", $hrSystemUptime);
|
$agent_uptime = $uptime; ## Move uptime into agent_uptime
|
||||||
list($days,$hours, $mins, $secs) = explode(":", $hrSystemUptime);
|
#HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (63050465) 7 days, 7:08:24.65
|
||||||
list($secs, $microsecs) = explode(".", $secs);
|
$hrSystemUptime = str_replace("(", "", $hrSystemUptime);
|
||||||
$hours = $hours + ($days * 24);
|
$hrSystemUptime = str_replace(")", "", $hrSystemUptime);
|
||||||
$mins = $mins + ($hours * 60);
|
list($days,$hours, $mins, $secs) = explode(":", $hrSystemUptime);
|
||||||
$secs = $secs + ($mins * 60);
|
list($secs, $microsecs) = explode(".", $secs);
|
||||||
$uptime = $secs;
|
$hours = $hours + ($days * 24);
|
||||||
} else {
|
$mins = $mins + ($hours * 60);
|
||||||
echo("Using Agent Uptime (".$poll_device['sysUpTime'].")\n");
|
$secs = $secs + ($mins * 60);
|
||||||
#SNMPv2-MIB::sysUpTime.0 = Timeticks: (2542831) 7:03:48.31
|
$uptime = $secs;
|
||||||
$poll_device['sysUpTime'] = str_replace("(", "", $poll_device['sysUpTime']);
|
} else {
|
||||||
$poll_device['sysUpTime'] = str_replace(")", "", $poll_device['sysUpTime']);
|
echo("Using SNMP Agent Uptime (".$poll_device['sysUpTime'].")\n");
|
||||||
list($days, $hours, $mins, $secs) = explode(":", $poll_device['sysUpTime']);
|
#SNMPv2-MIB::sysUpTime.0 = Timeticks: (2542831) 7:03:48.31
|
||||||
list($secs, $microsecs) = explode(".", $secs);
|
$poll_device['sysUpTime'] = str_replace("(", "", $poll_device['sysUpTime']);
|
||||||
$hours = $hours + ($days * 24);
|
$poll_device['sysUpTime'] = str_replace(")", "", $poll_device['sysUpTime']);
|
||||||
$mins = $mins + ($hours * 60);
|
list($days, $hours, $mins, $secs) = explode(":", $poll_device['sysUpTime']);
|
||||||
$secs = $secs + ($mins * 60);
|
list($secs, $microsecs) = explode(".", $secs);
|
||||||
$uptime = $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
|
// Use snmpEngineTime (68 year rollover) to cross-reference for false positives in device rebooting due to sysUpTime rollover issues
|
||||||
|
|||||||
Reference in New Issue
Block a user