mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Merge pull request #1477 from laf/issue-1426
Use snmpEngineTime as a fallback for uptime
This commit is contained in:
@@ -28,6 +28,7 @@ if (!empty($agent_data['uptime'])) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (empty($uptime)) {
|
if (empty($uptime)) {
|
||||||
|
$snmp_uptime = (integer) snmp_get($device, 'snmpEngineTime.0', '-OUqv', 'SNMP-FRAMEWORK-MIB');
|
||||||
$hrSystemUptime = snmp_get($device, 'hrSystemUptime.0', '-Oqv', 'HOST-RESOURCES-MIB');
|
$hrSystemUptime = snmp_get($device, 'hrSystemUptime.0', '-Oqv', 'HOST-RESOURCES-MIB');
|
||||||
if (!empty($hrSystemUptime) && !strpos($hrSystemUptime, 'No') && ($device['os'] != 'windows')) {
|
if (!empty($hrSystemUptime) && !strpos($hrSystemUptime, 'No') && ($device['os'] != 'windows')) {
|
||||||
echo 'Using hrSystemUptime ('.$hrSystemUptime.")\n";
|
echo 'Using hrSystemUptime ('.$hrSystemUptime.")\n";
|
||||||
@@ -57,14 +58,13 @@ if (empty($uptime)) {
|
|||||||
}//end if
|
}//end if
|
||||||
}//end if
|
}//end if
|
||||||
|
|
||||||
// Use snmpEngineTime (68 year rollover) to cross-reference for false positives in device rebooting due to sysUpTime rollover issues
|
if ($snmp_uptime > $uptime && is_numeric($snmp_uptime)) {
|
||||||
$snmpEngineTime = (integer) snmp_get($device, 'snmpEngineTime.0', '-OUqv', 'SNMP-FRAMEWORK-MIB');
|
$uptime = $snmp_uptime;
|
||||||
if (!is_numeric($snmpEngineTime)) {
|
d_echo('hrSystemUptime or sysUpTime looks like to have rolled, using snmpEngineTime instead');
|
||||||
$snmpEngineTime = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_numeric($uptime)) {
|
if (is_numeric($uptime)) {
|
||||||
if ($uptime < $device['uptime'] && $uptime >= $snmpEngineTime) {
|
if ($uptime < $device['uptime']) {
|
||||||
notify($device, 'Device rebooted: '.$device['hostname'], 'Device Rebooted : '.$device['hostname'].' '.formatUptime($uptime).' ago.');
|
notify($device, 'Device rebooted: '.$device['hostname'], 'Device Rebooted : '.$device['hostname'].' '.formatUptime($uptime).' ago.');
|
||||||
log_event('Device rebooted after '.formatUptime($device['uptime']), $device, 'reboot', $device['uptime']);
|
log_event('Device rebooted after '.formatUptime($device['uptime']), $device, 'reboot', $device['uptime']);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user