对网卡流量监控的一些想法mysql
今天来给你们讲讲一些对于网卡流量的想法,网卡流量表明着客户的访问你服务的数据量,可是这里量是有阈值的,若是你的网卡的流量居高不下,那就有可能你的服务器被***了,因此,监控网卡的流量是事关重要的事情,说到监控,咱们即可以想到,写脚本或者利用监控软件来作监控,zabbix监控软件就提供了很好的平台;zabbix做为一个热门的监控软件,不只比较全面的监控模板,并且使用者还能够本身自定义keys,作监控。linux
自定义监控处理有监控软件外,咱们还须要获取到数据才能实现咱们监控的目的;对于如何获取到网卡流量的数据,我这里提供一个命令Sar,固然还有其它的命令,这里就很少说了;Sar命令能够为咱们提供网卡的流量的信息,因此基于sar咱们能够实现对网卡流量的实时监控。接下来咱们先谈谈sar命令的用法。web
1、sar命令的使用sql
Sar命令主要的做用是用来查看网卡的流量的,linux/centos默认是没有装的,因此须要yum安装才能使用。vim
#yum install -y sysstat
经过sar –h咱们能够查看获得sar的用法centos
[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次的网卡流量信息。bash
[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 每秒接收的包的数量ide
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 #查看磁盘读写
2、使用sar命令截取rxpck/s与rxKB/s的值
有了sar命令查看网卡的流量,咱们就能够实现监控了,结合zabbix作对网卡的监控rxpck/s与rxKB/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
咱们能够发现咱们想要的数据已是截取出来了
3、zabbix自定义keys作监控
1、在zabbix客户端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}'
2、zabbix测试是否能获到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
从这里能够发现是已经能够获取的
3、zabbix服务端监控出图
到zabbix的web页面建立network_receivce_package_number 和network_receivce_data模板,点击:配置à模板à建立模板,如图一、图2所示
图1 network_receivce_package_number模板的建立
图2 network_receivce_data模板的建立
4、建立监控项,点击: network_receivce_package_number /network_receivce_dataà监控项à建立监控项,可是要注意的是你的键值是你的自定义keys的名字。如图3、图4所示:
图3 network_receivce_package_number模板添加监控项
图4 network_receivce_data模板添加监控项
5、添加图像,绑定network_receivce_package_number /network_receivce_data各自的监控项。如图5、图6所示
图5 network_receivce_package_numbe模板绑定监控项
图6 network_rdata模板绑定监控项
6、添加network_receivce_package_number /network_receivce_data触发条件,为作告警使用,如图7、图8所示
network_receivce_package_number的阈值咱们能够设置为4000,由于正常的服务器的包的数量没那么大。(设置最新T值大于4000时,触发告警)
图7 network_receivce_package_number模板添加触发器
network_receivce_datar的阈值咱们能够设置为5000(至关于5M),由于正常的服务器的流量没那么大。(设置最新T值大于5000时,触发告警)
图8 network_receivce_data模板添加触发器
7、绑定主机,出图,出数据。
到了这一步,咱们的自定义keys监控就基本完成了;可是,咱们的自定义keys毕竟只是一个模板,并不可以出图出数据,因此,这就须要人为的让主机绑定模板,这样才能出图出数据。结果如图9所示
图9 主机绑定模板
#查看图像,查看获取的数据,是否正确,如图10、图11所示
图10 network_receivce_package_number出图数据
图11 network_receivce_data出图
#能够发现,获取的数据和出图都已经达到咱们的目的了。自动义对网络流量的的监控已经成功了。
4、总结
基于zabbix和sar监控网卡流量的监控完成了,可是不是以为没啥做用,是的,在没有告警的状况下,是啥用的,说究竟是没人看。因此咱们须要告警,基于告警的话,在这里能够参考文章,这里有搭建zabbix告警处理的部署zabbix邮件告警,一点小分享,但愿对你有用。