问题描述
最近时不时无规律的收到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 或者取消勾选。