标签:zabbix自定义脚本
客户端
1、编辑/etc/zabbix/zabbix_agentd.conf
[root@y2 ~]# vim /etc/zabbix/zabbix_agentd.conf
# Mandatory: no
# Range: 0-1
# Default:
UnsafeUserParameters=1
UserParameter=my.net.if[*],/usr/local/sbin/zabbix/net.sh $1 $2
解释说明:
UserParameter用来自定义键值,(类似于net.if.in),自己写的脚本往往会有参数,所以需要加[*],这是固定写法,
如果脚本压根没有什么参数,那么这个[*]就省了。逗号后面就是我们写的脚本的路径了,再后面就是要用到的参数,有几个就写几个。
2、编写脚本
[root@y2 ~]# mkdir /usr/local/sbin/zabbix
[root@y2 ~]# vim /usr/local/sbin/zabbix/net.sh
#!/bin/bash
eth=$1
io=$2
net_file="/proc/net/dev" #网卡流量文件
if [ $2 == "in" ]
then
n_new=`grep "$eth" $net_file|awk ‘{print $2}‘`
n_old=`tail -1 /tmp/neti.log`
n=`echo "$n_new-$n_old"|bc`
d_new=`date +%s`
d_old=`tail -2 /tmp/neti.log|head -1`
d=`echo "$d_new-$d_old"|bc`
if_net=`echo "$n/$d"|bc`
echo $if_net
date +%s>>/tmp/neti.log
grep "$eth" $net_file|awk ‘{print $2}‘>>/tmp/neti.log
elif [ $2 == "out" ]
then
n_new=`grep "$eth" $net_file|awk ‘{print $10}‘`
n_old=`tail -1 /tmp/neto.log`
n=`echo "$n_new-$n_old"|bc`
d_new=`date +%s`
d_old=`tail -2 /tmp/neto.log|head -1`
d=`echo "$d_new-$d_old"|bc`
if_net=`echo "$n/$d"|bc`
echo $if_net
date +%s>>/tmp/neto.log
grep "$eth" $net_file|awk ‘{print $10}‘>>/tmp/neto.log
else
echo 0
fi
解释说明:
这个脚本的思路,就是通过查看文件/proc/net/dev里面的数值,来计算实时网卡流量,其实我算的是一个平均值。
分为进和出。如果这个脚本每隔1分钟执行一次,那么算出来的流量值就是1分钟的平均值。
3、修改权限
[root@y2 ~]# chmod +x /usr/local/sbin/zabbix/net.sh
4、在执行脚本之前,先做一些操作(只对eth0做的)
[root@y2 ~]# touch /tmp/net[io].log
[root@y2 ~]# date +%s >>/tmp/neti.log
[root@y2 ~]# grep eth0 /proc/net/dev |awk ‘{print $2}‘ >>/tmp/neti.log
[root@y2 ~]# date +%s >>/tmp/neto.log
[root@y2 ~]# grep eth0 /proc/net/dev |awk ‘{print $10}‘ >>/tmp/neto.log
[root@y2 ~]# chown zabbix /tmp/net[io].log
[root@y2 ~]# cat /tmp/neti.log
1481437055
210588
5、执行脚本
[root@y2 ~]# /usr/local/sbin/zabbix/net.sh eth0 in
118
[root@y2 ~]# /usr/local/sbin/zabbix/net.sh eth0 out
157
6、重启服务
[root@y2 ~]# /etc/init.d/zabbix-agentd restart
服务端
7、检测
[root@wy ~]# zabbix_get -s 192.168.219.128 -p10050 -k "my.net.if[eth0,out]"
159
[root@wy ~]# zabbix_get -s 192.168.219.128 -p10050 -k "my.net.if[eth0,in]"
166
8、在浏览器配置,添加到监控项里去,形成图表
1)Configuration--->Hosts--->aming--->Items
2)点击 "Create item"
3)如下填入(eth0_net_in eth0_net_out)
注:key是自己写的,不是选择的
4)Configuration--->Hosts 查看到刚添加的
5)查看是否成功,有没有具体的数值,也可以点击 "Graph"查看图形
本文出自 “linux” 博客,转载请与作者联系!
标签:zabbix自定义脚本
原文地址:http://warm51fun.blog.51cto.com/3884274/1891488