mirror of
https://github.com/stylersnico/librenms.git
synced 2026-07-12 16:06:25 +02:00
Fall back to using snmpEngineTime rather than be the default
This commit is contained in:
@@ -28,41 +28,41 @@ if (!empty($agent_data['uptime'])) {
|
||||
}
|
||||
|
||||
if (empty($uptime)) {
|
||||
$uptime = (integer) snmp_get($device, 'snmpEngineTime.0', '-OUqv', 'SNMP-FRAMEWORK-MIB');
|
||||
if (!is_numeric($snmpEngineTime)) {
|
||||
$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;
|
||||
}//end if
|
||||
$snmp_uptime = (integer) snmp_get($device, 'snmpEngineTime.0', '-OUqv', 'SNMP-FRAMEWORK-MIB');
|
||||
$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 snmpEngineTime ('.$uptime.")\n";
|
||||
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;
|
||||
}//end if
|
||||
}//end if
|
||||
|
||||
if ($snmp_uptime > $uptime && is_numeric($snmp_uptime)) {
|
||||
$uptime = $snmp_uptime;
|
||||
d_echo('hrSystemUptime or sysUpTime looks like to have rolled, using snmpEngineTime instead');
|
||||
}
|
||||
|
||||
if (is_numeric($uptime)) {
|
||||
if ($uptime < $device['uptime']) {
|
||||
notify($device, 'Device rebooted: '.$device['hostname'], 'Device Rebooted : '.$device['hostname'].' '.formatUptime($uptime).' ago.');
|
||||
|
||||
Reference in New Issue
Block a user