From 8bc2f0fcd27e74e5f71cf91913cffd094714ac4d Mon Sep 17 00:00:00 2001 From: Adam Amstrong Date: Sat, 4 Feb 2012 17:29:51 +0000 Subject: [PATCH] fix false positive reboots (is engine uptime higher than device uptime?) Thanks to Michael Hsu from Media Temple. git-svn-id: http://www.observium.org/svn/observer/trunk@2856 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/polling/system.inc.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/includes/polling/system.inc.php b/includes/polling/system.inc.php index acb1c072b..f990cc080 100755 --- a/includes/polling/system.inc.php +++ b/includes/polling/system.inc.php @@ -49,9 +49,15 @@ $uptime = $secs; } + // Use snmpEngineTime (68 year rollover) to cross-reference for false positives in device rebooting due to sysUpTime rollover issues + $snmpEngineTime = (integer)snmp_get($device, "snmpEngineTime.0", "-OUqv", "SNMP-FRAMEWORK-MIB"); + if (!is_numeric($snmpEngineTime)) { + $snmpEngineTime = 0; + } + if (is_numeric($uptime)) { - if ($uptime < $device['uptime']) + if ($uptime < $device['uptime'] && $uptime >= $snmpEngineTime) { 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']);