对网卡流量监控的一些想法

今天来给大家讲讲一些对于网卡流量的想法,网卡流量代表着客户的访问你服务的数据量,但是这里量是有阈值的,如果你的网卡的流量居高不下,那就有可能你的服务器被***了,所以,监控网卡的流量是事关重要的事情,说到监控,我们便可以想到,写脚本或者利用监控软件来做监控,zabbix监控软件就提供了很好的平台;zabbix作为一个热门的监控软件,不仅比较全面的监控模板,而且使用者还可以自己自定义keys,做监控。

自定义监控处理有监控软件外,我们还需要获取到数据才能实现我们监控的目的;对于如何获取到网卡流量的数据,我这里提供一个命令Sar,当然还有其它的命令,这里就不多说了;Sar命令可以为我们提供网卡的流量的信息,所以基于sar我们可以实现对网卡流量的实时监控。接下来我们先谈谈sar命令的用法。

一、sar命令的使用

Sar命令主要的作用是用来查看网卡的流量的,linux/centos默认是没有装的,所以需要yum安装才能使用。

#yum install -y  sysstat


通过sar –h我们可以查看得到sar的用法

[root@mysql etc]# sar -h
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
主选项和报告:
       -b    I/O 和传输速率信息状况
       -B   分页状况
       -d    块设备状况
       -H   交换空间利用率
       -I { <中断> | SUM | ALL | XALL }
              中断信息状况
       -m { <关键词> [,...] | ALL }
              电源管理统计信息
              关键字:
              CPU      CPU 频率
              FAN      风扇速度
\t\tFREQ\tCPU 平均时钟频率
              IN   输入电压
              TEMP    设备温度
\t\tUSB\t连接的USB 设备
       -n { <关键词> [,...] | ALL }
              网络统计信息
              关键词可以是:
              DEV      网卡
              EDEV   网卡 (错误)


 

接下来我们使用它来获取网卡的信息,比如查看网卡流量的每秒显示一次,共显示1次的网卡流量信息。

[root@mysql etc]# sar  -n DEV  1 1  
Linux 3.10.0-514.el7.x86_64 (mysql)     2018年03月14日   _x86_64_   (4 CPU)
 
15时00分00秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
15时00分01秒      eth0     37.00     36.00      6.54     24.27      0.00      0.00      0.00
15时00分01秒        lo     23.00     23.00     18.17     18.17      0.00      0.00      0.00
 
平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:      eth0     37.00     36.00      6.54     24.27      0.00      0.00      0.00
平均时间:        lo     23.00     23.00     18.17     18.17      0.00      0.00      0.00


 

我们可以看到,使用sar命令它已经把结果给统计出来的,

IFACE 表示设备名称

rxpck/s 每秒接收的包的数量

txpck/s 每秒发出的包的数量

rxKB/s 每秒接收的数据量,单位KByte

txKB/s 每秒发出的数据量,单位KByte

若服务器丢包非常严重,需要查看网卡流量是否异常。接收数据部分 rxpck大于4000,或者rxKB大于5000,则有可能被***了,正常服务器网卡流量没有这么大。除非自己在拷贝数据。

接下来,我们谈谈sar命令的一些常用的一些用法。

sar -n DEV #查看当天从零点到当前时间的网卡流量信息

sar -n DEV 1 1 #每秒显示一次,共显示1

sar -n DEV -f /var/log/sa/saxx  查看xx日的网卡流量历史

sar -q #查看历史负载

sar -b #查看磁盘读写

 

二、使用sar命令截取rxpck/srxKB/s的值

有了sar命令查看网卡的流量,我们就可以实现监控了,结合zabbix做对网卡的监控rxpck/srxKB/s的值

通过sar,命令并结合awk获取你网卡的rxpck/s的值,我这里的网卡是eth0

[root@mysql etc]#  sar  -n DEV  1 1 | awk 'NR==8{print $3}'
37.00


获取你网卡的rxKB/s的值

[root@mysql etc]#  sar  -n DEV  1 1 | awk 'NR==8{print $5}'
10.63


我们可以发现我们想要的数据已经是截取出来了

 

三、zabbix自定义keys做监控

1zabbix客户端zabbix_agentd.conf文件添加自定义keys,并重启客户端

# vim /usr/local/zabbix/etc/zabbix_agentd.conf

UnsafeUserParameters=1
UserParameter=receivce_data,sar  -n  DEV  1 1 | awk 'NR==8{print $5}'
UserParameter=receivce_package_number,sar  -n DEV  1 1 | awk 'NR==8{print $3}'


2zabbix测试是否能获到zabbix客户端的健值的数据

[root@zabbix ~]# zabbix_get -s 192.168.1.200  -k receivce_data
7.79


[root@zabbix ~]# zabbix_get -s 192.168.1.200 -k receivce_package_number
52.00


从这里可以发现是已经可以获取的


3zabbix服务端监控出图

zabbixweb页面创建network_receivce_package_number 和network_receivce_data模板,点击:配置à模板à创建模板,如图1、图2所示

1.png

1 network_receivce_package_number模板的创建

2.png

2 network_receivce_data模板的创建

4创建监控项,点击: network_receivce_package_number /network_receivce_dataà监控项à创建监控项,但是要注意的是你的键值是你的自定义keys的名字。如图3、图4所示:

 

3.png

3 network_receivce_package_number模板添加监控项

4.png

4 network_receivce_data模板添加监控项

5添加图像,绑定network_receivce_package_number /network_receivce_data各自的监控项。如图5、图6所示

5.png

5 network_receivce_package_numbe模板绑定监控项

6.png

6 network_rdata模板绑定监控项

 

 

6添加network_receivce_package_number /network_receivce_data触发条件,为做告警使用,如图7、图8所示

network_receivce_package_number的阈值我们可以设置为4000,因为正常的服务器的包的数量没那么大。(设置最新T值大于4000时,触发告警)

 

7.png

7 network_receivce_package_number模板添加触发器

network_receivce_datar的阈值我们可以设置为5000(相当于5M),因为正常的服务器的流量没那么大。(设置最新T值大于5000时,触发告警)

 8.png

8 network_receivce_data模板添加触发器

7绑定主机,出图,出数据。

到了这一步,我们的自定义keys监控就基本完成了;但是,我们的自定义keys毕竟只是一个模板,并不能够出图出数据,所以,这就需要人为的让主机绑定模板,这样才能出图出数据。结果如图9所示

9.png

9 主机绑定模板

#查看图像,查看获取的数据,是否正确,如图10、图11所示

10.png

10 network_receivce_package_number出图数据

11.png

11  network_receivce_data出图

 

#可以发现,获取的数据和出图都已经达到我们的目的了。自动义对网络流量的的监控已经成功了。

 

四、总结

    基于zabbixsar监控网卡流量的监控完成了,但是不是觉得没啥作用,是的,在没有告警的情况下,是啥用的,说到底是没人看。所以我们需要告警,基于告警的话,在这里可以参考文章,这里有搭建zabbix告警处理的部署zabbix邮件告警,一点小分享,希望对你有用。