問題描述
最近時不時無規律的收到zabbix的監控報警,是不一樣的交換機重啓的誤報,提示交換機重啓了,但檢查看後發現實際並無重啓。ide
咱們發現監控是否重啓是監控交換機的引導時間,使用的是以下OID:this
[root@rds ~]# snmpwalk -v 2c -c public 192.168.1.9 1.3.6.1.2.1.1.3.0 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (704406) 1:57:24.06
這樣看來192.168.1.9這臺設備sysUptime是0天1小時57分鐘。pwa
那咱們登入交換機設備上驗證一下:rest
WL-4507#show version Cisco IOS Software, IOS-XE Software, Catalyst 4500 L3 Switch Software (cat4500e-UNIVERSAL-M), Version 03.03.00.SG RELEASE SOFTWARE (fc3) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2012 by Cisco Systems, Inc. Compiled Sun 15-Apr-12 09:07 by prod_rel_team ROM: 15.0(1r)SG5 WL-4507 uptime is 1 year, 18 weeks, 6 days, 3 hours, 29 minutes Uptime for this control processor is 1 year, 18 weeks, 6 days, 3 hours, 31 minutes System returned to ROM by power-on System restarted at 11:14:10 BeiJing Tue Jan 12 2016
結果發現此交換機並無重啓,這臺設備sysUptime是1年18周6天,大概就是497天。code
緣由分析blog
通過查閱相關資料,得知sysUpTime是由一個32-bit的counter來計數的,單位是1/100秒,因此最大時間爲496天,過了496天就溢出,變成0,而後又從新計算時間,因此zabbix誤報。ci
解決方法it
能夠使用另外一個計數值來計算時間,那就是snmpEngineId (1.3.6.1.6.3.10.2.1.3.0) ,其一樣是32-bit的值,但它的單位是秒,最大時間爲49600天,即因此能夠存135年的運行時間,足夠了。本質是使用SNMP服務的啓動時間來表示sysUptime.io
[root@rds ~]# snmpwalk -v 2c -c public 192.168.1.9 1.3.6.1.6.3.10.2.1.3.0 SNMP-FRAMEWORK-MIB::snmpEngineTime.0 = INTEGER: 42957135 seconds
能夠看到192.168.1.9這臺設備使用1.3.6.1.6.3.10.2.1.3.0查詢的結果是42957135s,即爲497天,是正確的時間。class
zabbix監控更改:
找到Template SNMP Generic: Device uptime,
將SNMP OID改成:1.3.6.1.6.3.10.2.1.3.0
使用自定義倍數改成:1 或者取消勾選。