ifconfig与网络流量监控
我们在linux/unix下最常用的工具莫过于ifconfig了。ifconfig的输出中有两项,分别是:
- RX= =receive,接收,从开启到现在接收封包的情况,是下行流量。
- TX= =Transmit,发送,从开启到现在发送封包的情况,是上行流量。
1[root@test etc]# ifconfig eth1
2eth1 Link encap:Ethernet HWaddr 00:26:B9:58:19:88
3 inet addr:192.168.0.46 Bcast:192.168.0.255 Mask:255.255.255.0
4 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
5 RX packets:6049782538 errors:0 dropped:2373 overruns:0 frame:0
6 TX packets:7415059121 errors:0 dropped:0 overruns:0 carrier:0
7 collisions:0 txqueuelen:1000
8 RX bytes:2611876455455 (2.3 TiB) TX bytes:6028598337794 (5.4 TiB)
9 Interrupt:114 Memory:d8000000-d8012800
RX和TX输出的值使有的单位参数是bytes,而利用该命令,我们也可以配置脚本进行流量检测。大名鼎鼎的nagios就有一个插件check_traffic,通过ifconfig的输出的RX、TX值通过之间的差,再除去中间间隔的时间算出流量大小的。该插件的下载页为:https://github.com/cloved/check_traffic/downloads 。
现摘录其中部分关于度量值转换的部分如下:
1#to K
2uIn=`echo "$ctbpsIn / 1024" | bc`
3uOut=`echo "$ctbpsOut / 1024" | bc`
4#to M
5if [ "$isM" = "True" ]; then
6 uIn=`echo "scale=$Scale; $uIn / 1024" | bc`
7 uOut=`echo "scale=$Scale; $uOut / 1024" | bc`
8fi
9#to B
10if [ "$isB" = "True" ]; then
11 uIn=`echo "scale=$Scale; $uIn / 8" | bc`
12 uOut=`echo "scale=$Scale; $uOut / 8" | bc`
即所得的结果如果想要转换成Kb需要除以1024,转换成Mb要在kbit的基础上再除以1024,而后面所跟的单位如果是B,就是KB或MB,需要要再除以8。所以我们在nagios监控中对于参数的设置也要根据实际情况进行变动。
1command[check_traffic]=/App/nagios/libexec/check_traffic -i eth1 -w 90000 -c 120000
如我的nrpe.cfg中的关于该项的配置如上面所示。前两天实然流量告警,去查看该配置时,竟然忘了所使用的计量单位是什么,只好又去脚本里去查看。想想蛮搞笑的。关于ifconfig另外一些基础的东西可以去百度百科或man手册上去找。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/ifconfig-2/1433.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.