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/

时间: 2024-10-11 06:24:05

zabbix自定义脚本监控pps(Packets per Second,包转发率)的相关文章

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

接上篇,Linux的做完了,再搞windows的. 首先查了下windows的在哪里获取,在windows的性能计数器中可以获取,叫做Packets Received/sec(获取出来的值就可以直接使用,不像Linux还得需要求差) 那如何获取呢: 1,新建个ITEM,使用这个KEY,perf_counter[]来实现,这个key直接获取性能计数器的数值. 那么只需要找到需要监控的网卡的包转发率的名称 2,获取windows性能计数器上的值 方法一:在win 的 命令cmd窗口下,运行  typ

zabbix 自定义脚本监控配置之网卡

注:要添加自定义脚本监控,必须升级zabbix agent版本至2.0.0以上, 一:配置步骤 1. 完成自定义监控脚本的编写(windows或linux脚本) 脚本要求: (1)既然是监控,那必然要有输出结果值(字符串,数字皆可) (2)必须要求zabbix用户有执行权限,当然可以直接设置所有用户都有执行权限(chmod 777 脚本文件) (3)若脚本需要传入参数,按照参数传入的顺序,在脚本中可用$1-$9来引用传入的参数 2 找到zabbix agent的配置文件zabbix_agentd

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

一.说明 zabbix监控支持自定义脚本以及自制模板来扩展监控,换句话说就是对业务自定义监控;因此通过撰写脚本完成自定义监控十分有必要;这里的脚本既可以用shell也可以用python等语言;另外自定义了脚本主要目的是获取业务相关的监控数据;还需要结合zabbix web GUI上的模板才能生效;本文的目的就是基于之前的zabbix相关部署操作之后的补充! 任务:通过撰写脚本获取tcp 的各种状态,添加tcp状态模板,添加触发器;添加图形:完整实现脚本自定义监控的整个步聚流程! 二.agent端

zabbix3.4上使用自定义脚本监控公网tcp端口时延情况

我们搭建了***,主要是利用公网地址上tcp端口映射进行连接,从而达到访问的目的.但是有时候,网络不稳定,或者是公网地址震荡异常,导致***连接异常,所以我们很有必要监控tcp端口的连接的时延情况,当时延大于1000ms时,会严重的影响到使用体验,这时就要排查网络原因了. 如果能利用zabbix监控tcp端口的情况,并统计,当达到一定阈值的时候就告警,方便及时排查. 一.思路     1.linux上,可以使用nmap程序扫描端口之外,还可以统计大致的扫描结果,可以利用每次扫描端口的耗时来衡量网

Zabbix自定义参数监控和awk命令

awk 命令 awk是一种处理文本文件的语言,是一个强大的文本分析公具.awk处理文本和数据的方式:逐行读入文本,寻找匹配特定模式的行,然后进行操作. 输出文件匹配行的特定字段 功能很强大,所以有很多用处.这里我主要关注下面这样的场景:逐行读入文本,按规则匹配特定的行,以空格为默认分隔符将每行切片,输出其中特定的某个切片(切开的部分可以进行各种分析处理,这里就是要输出其中以段): $ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain

L15.3 zabbix自定义脚本执行与报警配置(辅助5.4)

zabbix脚本报警配置 注:此文是5.4配置的一些关键配置说明,非完整步骤 zabbix-agent要配置为支持执行远程命令: vim /etc/zabbix/zabbix_agentd.conf EnableRemoteCommands=1 #Defaults    requiretty 注意 (1) 如果用到以其它用户身份执行命令的话,那么命令本身要以sudo方式运行: sudo /etc/rc.d/init.d/httpd restart (2) 在各agent上的sudoers文件:

zabbix通过orabbix和自定义脚本监控oracle数据库

由于公司要上oracle数据库,需要对这个东西惊醒监控,于是去网上淘资料,发现有一个套件orabbix监控oracle的效果还不错,于是拿来试验了一下.orabbix是由JAVA写的一个套件,需要在oracle服务器上面安装JAVA环境才能运行.这里为了简便,可以使用yum -y install java来安装JAVA环境. 安装完java环境之后可以通过下面命令来检测是否安装成功: [[email protected] ~]# java -version java version "1.7.0

zabbix通过自定义脚本监控nginx,php-fpm和mysql占用内存数和进程的个数

首先,在zabbix脚本目录下添加一个脚本,写入如下代码 #!/bin/bash #license:GPL #mail:[email protected] #date:2015.04.16 top -bn1>/usr/local/zabbix-2.4.4/scripts/process.log LOG=/usr/local/zabbix-2.4.4/scripts/process.log php_fpm(){ grep "php-fpm" $LOG |awk '{sum+=$6}

zabbix使用自定义脚本监控内存

我这里的脚本是监控centos7系统的内存.centos7系统的内存如何查看我之前的博客都是有的.这里直接写了监控步骤 1.首先是编写脚本. #!/bin/bash mem_total(){ TOTAL=`free |grep -i mem |awk '{print $2}'` echo ${TOTAL} } mem_use(){ USE=`free |grep -i mem | awk '{print $3}'` echo ${USE} } mem_free(){ FREE=`free |gr