自定义zabbix脚本
1. 在客户端修改配置文件 /etc/zabbix/zabbix_agentd.conf然后重启服务
需要改动两个地方:
(1) UnsafeUserParameters=1
(2) UserParameter=my.net.if[*],/usr/local/sbin/zabbix/net.sh $1 $2 #其中UserParameter用来自定义键值,(类似于net.if.in),自己写的脚本往往会有参数,所以需要加[*],这是固定写法,如果脚本压根就没有什么参数,那么这个[*]就省了。逗号后面就是我们写的脚本的路径了,再后面就是要用到的参数,有几个就写几。
2. 编写脚本
vi /usr/local/sbin/zabbix/net.sh //内容如下
#!/bin/bash
eth=$1 #定义网卡名
io=$2 #定义进或者出流量
net_file="/proc/net/dev" #流量的来源,可自行cat /proc/net/dev一下,得出开机后的总流量。
if [ $2 == "in" ] #接上,通过不同时间段的差值,得出某时段的流量。
then
n_new=`grep "$eth" $net_file|awk '{print $2}'` #得出指定网卡的receive总值