最近在河南项目的几台windows流媒体服务器流量使用很高,需要监控每天的带宽使用情况,并根据具体的情况做相应的调整!前期部署监控的系统的时候网络流量方面采用cacti统一监控,服务方面采用nagios统一监控并报警!实际的使用过程中,流媒体带宽很快就超过了100Mb,cacti出图方面的信息极为不准确,google一番,类似的情况很多,主要反应为snmp 32位的问题,按照如下的文章折腾一番后,问题依旧!
从图片上看,改为In/Out bits(64-bit Counters)后,就直接不出图了,In/Out bits则出图,但数据完全不对!随便看下服务器的带宽使用,任何时刻都超过100Mb
于是继续排查,发现貌似windows系统本身不支持snmp 64bit counters,参考:
于是改用nagios直接监控网卡的计数器数据
[root@bak ~]# /usr/local/nagios/libexec/check_nt -H "ip address" -p 12489 -v COUNTER -l '\Network Interface(Broadcom NetXtreme Gigabit Ethernet)\Bytes Total/sec',"Total_Bytes/s %f" -w 78643200 -c 85196800
Total_Bytes/s 21052800.000000 | 'Total_Bytes/s %f'=21052800.000000%;78643200.000000;85196800.000000;
发现数据大致正确,(21052800/1024/1024)*8 = 160Mb,于是直接写入配置文件,使用check_nrpe插件调用
define service{
use local-service
host_name ip address
service_description Network traffic
check_command check_nt!COUNTER!-l '\\Network Interface(Broadcom NetXtreme Gigabit Ethernet)\\Bytes Total/sec',"Total_Bytes/s %f" -w 78643200 -c 85196800
notifications_enabled 1
}