思科交换机的sysUptime时间问题
问题描述
最近时不时无规律的收到zabbix的监控报警,是不同的交换机重启的误报,提示交换机重启了,但检查看后发现实际并没有重启。
我们发现监控是否重启是监控交换机的引导时间,使用的是如下OID:
[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分钟。
那我们登入交换机设备上验证一下:
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天。
原因分析
经过查阅相关资料,得知sysUpTime是由一个32-bit的counter来计数的,单位是1/100秒,所以最大时间为496天,过了496天就溢出,变成0,然后又重新计算时间,所以zabbix误报。
解决方法
可以使用另一个计数值来计算时间,那就是snmpEngineId (1.3.6.1.6.3.10.2.1.3.0) ,其同样是32-bit的值,但它的单位是秒,最大时间为49600天,即所以可以存135年的运行时间,足够了。
[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天,是正确的时间。
zabbix监控更改:
找到Template SNMP Generic: Device uptime,
将SNMP OID改为:1.3.6.1.6.3.10.2.1.3.0
使用自定义倍数改为:1 或者取消勾选。
保存之后,等待一段时间,即可正常监控。