zabbix自定义脚本监控pps(Packets per Second,包转发率)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix自定义脚本监控pps(Packets per Second,包转发率)相关的知识,希望对你有一定的参考价值。

一:介绍

  网络的性能通常用吞吐率(throughput)这个指标来衡量。常用的网络吞吐率的单位有:PPS(即每秒发送多少个分组数据包)、BPS(Bytes Per Second;即每秒发送多少字节)、bPS (bits Per Second;即每秒发送多少比特)、TPS(TransactionsPer Second;即每秒完成多少次发送过程)。

pps:(包每秒)包转发率标志了交换机转发数据包能力的大小。一般交换机的包转发率在几十Kpps到几百Mpps。包转发速率是指交换机每秒可以转发多少百万个数据(Mpps)。

这几天,有应用运维要求监控某些服务器的pps。研究了下:

首先,需要在服务器上自定义监控脚本

二:原理(以下摘自网络翻译)

Linux上有很多流量监控工具,可以对网络流量进行监控/分类,并在流行的用户界面中报告实时的流量统计。这些工具中的大多数(例如,ntopngiftop)都由libpcap提供支持,这是一个数据包捕获库,用于监视用户空间中的网络流量。但是,尽管它们具有多功能性,但由于与用户空间数据包捕获相关的开销基于libpcap的网络监视工具无法扩展以处理多千兆位速率网络接口上的流量。

我将介绍一些简单的shell脚本,这些脚本可以基于每个接口监控网络流量,而不依赖于缓慢的libpcap库这些脚本足够快,可以支持多千兆速率,但只有在您对每个接口的“聚合”网络统计信息感兴趣时才适用。

脚本的秘密在于sysfs虚拟文件系统,内核使用该文件系统将设备或驱动程序相关信息导出到用户空间。网络接口相关的统计信息通过/ sys / class / net / <ethX> / statistics导出。

  • / sys / class / net / eth0 / statistics / rx_packets:收到的数据包数量
  • / sys / class / net / eth0 / statistics / tx_packets:传输的数据包数量
  • / sys / class / net / eth0 / statistics / rx_bytes:收到的字节数
  • / sys / class / net / eth0 / statistics / tx_bytes:传输的字节数
  • / sys / class / net / eth0 / statistics / rx_dropped:接收到的数据包数量
  • / sys / class / net / eth0 / statistics / tx_dropped:传输时丢弃的数据包数量

存储在文件中的数字是由内核实时自动刷新的。因此,您可以编写基于这些文件计算流量统计的脚本

三:客户端自定义脚本并修改agent

在zabbix的安装目录下有个scripts目录,在里面新建个netpps.py的脚本,内容如下(本来想用subprocess模板,但是服务器的模块太老,没有output方法,只好用os.system()):

 1 #!/usr/bin/env python
 2 
 3 import os,sys
 4 
 5 if sys.argv[2] == rx:
 6 
 7     commond = cat /sys/class/net/+sys.argv[1]+/statistics/rx_packets
 8     os.system(commond)
 9 elif sys.argv[2] == tx:
10     commond = cat /sys/class/net/+sys.argv[1]+/statistics/tx_packets
11     os.system(commond)
12 else:
13     print "problem" 

 

 chmod -R 777 netpps.py  #因为是以zabbix用户运行

修改zabbix_agentd.conf,添加

UserParameter=netpps[*], python /etc/zabbix/scripts/netpps.py $1 $2

注意:netpps[*] 相当于后面的python /etc/zabbix/scripts/netpps.py $1 $2;这是有参数的添加方式,如果脚本无需添加脚本,可以 UserParameter=netpps, python /etc/zabbix/scripts/netpps.py。

修改完成重启agent,service zabbix-agent restart

可以在server或对应的proxy端做测试

技术分享图片

四:zabbix新增item

如下图,分别新增rx和tx

技术分享图片

单位就是包每秒,储存值选差量(每秒速率),本次取到的值与上次取到值的差再处于时间间隔。

可以根据运维需求制定相应的trigger。

技术分享图片

 

参考:http://xmodulo.com/measure-packets-per-second-throughput-high-speed-network-interface.html

http://www.txrjy.com/thread-918227-1-1.html

http://www.ttlsa.com/zabbix/zabbix-user-parameters/

 


以上是关于zabbix自定义脚本监控pps(Packets per Second,包转发率)的主要内容,如果未能解决你的问题,请参考以下文章

zabbix自定义监控

zabbix自定义监控

Zabbix监控——Zabbix自定义用户参数制作监控项

zabbix自定义脚本执行时间过长,怎样设置监控项呢?

zabbix自定义脚本做监控及自制模板初探

zabbix如何调用脚本进行远程监控