监控网络设备流量

监控网路设备的流量貌似目前只能通过 SNMP 协议实现,在 Nagios 的 exchange 里面找了几个脚本,比如 check_cisco.pl 这个,使用的是 MIB 是 ifInOctets/ifOutOctets,这会导致 32 位溢出的问题,并且该脚本最终的结果是 traffic 的总和,而非当前的速度:
$ ./check_cisco.pl -h 192.168.1.10 -c jaseywang-community -i Gi0/1

另外还有个比较火的脚本叫 chekc_snmp.pl 是通过 snmpget 实现,但是选项的表示方式太二了,其他的做的还不错,不过依然不可以统计速度,只能统计总的流量:-(
$ ./check_snmp.pl -w 9 -c 19 -- -c jaseywang-community 192.168.1.10 -v 2c IF-MIB::ifInOctets.10103

然后就没找到“更好”的了,索性还是自己写吧,先了解了下 SNMP 的一些基础,首先安装客户端:
# apt-get autoremove
# apt-get install snmp

可以使用的版本,1、2c、3,目前主流的应该都支持 2c 这个版本,其 community 就相当于 passwd,最新的网络设备上应该都支持 v3 版本:
$ snmpstatus -v 2c -c jaseywang-community 192.168.1.10
$ snmpstatus -v 1 -c jaseywang-community  192.168.1.10
$ snmpstatus -v 3 -c jaseywang-community  192.168.1.10

Continue reading