某天下午突然收到一条微信报警:ASA被重启!!

异常 - 10.1.1.1
异常时间 2016.12.11 - 14:10:21

10.1.1.1 reloaded
10.1.1.1(10.1.1.1)

sysUpTime : 00:04:14

上面的报警信息来自内网的zabbix,调用脚本通过微信公众号推送报警信息;针对所有的网络设备都配置了snmp,来监控一些参数。

检查思路,作为出口设备,如果一旦真的重启,引发的报警信息就不只是一条了,初步判断是误报,登陆ASA也能看到,ASA up 1 year 132 days

zabbix上设置的报警的triger是

{10.1.1.1:sysUpTime.last(0)}<600

在思科提供的mib中检查,针对sysuptime的描述如下:

the timetick value for system uptime (OID 1.3.6.1.2.1.1.3.0) is a 32-bit value so once the system has been up for 1 year, 132 days, 2 hours, 27 minutes and 52.96 seconds the value will roll to 0 again

也就是说这个值最多记497天,之后会清零重计。

解决方案就是吧sysuptime换成snmpenginetime (.1.3.6.1.6.3.10.2.1.3) ,这是一个counter64的值,最大可以达到135 years

SNMP-FRAMEWORK-MIB::snmpEngineTime.0 = INTEGER: 610894 seconds

关于接口流量的最大值:
在MIB中,ifOutOctets和ifInOctets来分别表示接口流出数据量和接口流入数据量,单位是字节。其数据类型为counter32。其能表示最大值为2^32-1=4294967295。依据oid的值累加,千兆口跑满32秒就可以达到最大值。

ifHCOutOctets和ifHCInOctets也是分别表示接口流出数据量和接口流入数据量其数据类型为counter64,最大值为16EB这个值的概念是如果千兆口满跑4000多年才能达到。

早起设备有一个这样的建议何时使用何种计数器:

1
2
3
4
<20,000,000 bits/second 使用counter32
<20,000,000 bits/s < 650,000,000bits/s 使用counter32或者counter64
> 650,000,000bits/s 使用 counter64
小于 10 Mb 接口不支持 counter64。

对于目前的设备,建议直接使用counter64:

类型 IF-MIB OID
counter32 ifInOctets 1.3.6.1.2.1.2.2.1.10
counter32 ifOutOctets 1.3.6.1.2.1.2.2.1.16
counter64 ifHCInOctets 1.3.6.1.2.1.31.1.1.1.6
counter64 ifHCOutOctets 1.3.6.1.2.1.31.1.1.1.10

参考文档
CISCO:SNMP计数器:常见问题