2321321hhh 发表于 2017-1-13 16:09:57

zabbix自定义脚本

客户端
1、编辑/etc/zabbix/zabbix_agentd.conf
# 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、编写脚本
# mkdir /usr/local/sbin/zabbix
# 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、修改权限
# chmod +x /usr/local/sbin/zabbix/net.sh
4、在执行脚本之前,先做一些操作(只对eth0做的)
# touch /tmp/net.log
# date +%s >>/tmp/neti.log
# grep eth0 /proc/net/dev |awk '{print $2}' >>/tmp/neti.log
# date +%s >>/tmp/neto.log
# grep eth0 /proc/net/dev |awk '{print $10}' >>/tmp/neto.log
# chown zabbix /tmp/net.log
# cat /tmp/neti.log
1481437055
210588
5、执行脚本
# /usr/local/sbin/zabbix/net.sh eth0 in
118
# /usr/local/sbin/zabbix/net.sh eth0 out
157
6、重启服务
# /etc/init.d/zabbix-agentd restart
服务端
7、检测
# zabbix_get -s 192.168.219.128 -p10050 -k "my.net.if"   
159
# zabbix_get -s 192.168.219.128 -p10050 -k "my.net.if"      
166
8、在浏览器配置,添加到监控项里去,形成图表
1)Configuration--->Hosts--->aming--->Items
http://note.youdao.com/yws/res/9076/WEBRESOURCE3aaaf687e82521b80ceeab8bbb485821
2)点击 "Create item"
http://note.youdao.com/yws/res/9078/WEBRESOURCE02ddaf5e0f2d03954c33b0e6fbca9d76
3)如下填入(eth0_net_in    eth0_net_out)
http://note.youdao.com/yws/res/9080/WEBRESOURCE31f9ba50fc1f02939287e0b7c0f10b60
http://note.youdao.com/yws/res/9082/WEBRESOURCE585535a7d00f8f34f995236bbea4cc36
注:key是自己写的,不是选择的
4)Configuration--->Hosts 查看到刚添加的
http://note.youdao.com/yws/res/9084/WEBRESOURCEb7a685821c6222d7ca3150a36faa8d3b
5)查看是否成功,有没有具体的数值,也可以点击 "Graph"查看图形
http://note.youdao.com/yws/res/9086/WEBRESOURCEf0123a967280431e2a64a16fc35bff83


页: [1]
查看完整版本: zabbix自定义脚本