客户端
1、编辑/etc/zabbix/zabbix_agentd.conf
[[email protected] ~]# 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、编写脚本
[[email protected] ~]# mkdir /usr/local/sbin/zabbix
[[email protected] ~]# 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、修改权限
[[email protected] ~]# chmod +x /usr/local/sbin/zabbix/net.sh
4、在执行脚本之前,先做一些操作(只对eth0做的)
[[email protected] ~]# touch /tmp/net[io].log
[[email protected] ~]# date +%s >>/tmp/neti.log
[[email protected] ~]# grep eth0 /proc/net/dev |awk ‘{print $2}‘ >>/tmp/neti.log
[[email protected] ~]# date +%s >>/tmp/neto.log
[[email protected] ~]# grep eth0 /proc/net/dev |awk ‘{print $10}‘ >>/tmp/neto.log
[[email protected] ~]# chown zabbix /tmp/net[io].log
[[email protected] ~]# cat /tmp/neti.log
1481437055
210588
5、执行脚本
[[email protected] ~]# /usr/local/sbin/zabbix/net.sh eth0 in
118
[[email protected] ~]# /usr/local/sbin/zabbix/net.sh eth0 out
157
6、重启服务
[[email protected] ~]# /etc/init.d/zabbix-agentd restart
服务端
7、检测
[[email protected] ~]# zabbix_get -s 192.168.219.128 -p10050 -k "my.net.if[eth0,out]"
159
[[email protected] ~]# 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"查看图形