码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix自定义脚本

时间:2017-01-13 01:47:04      阅读:291      评论:0      收藏:0      [点我收藏+]

标签: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自定义脚本

标签:zabbix自定义脚本

原文地址:http://warm51fun.blog.51cto.com/3884274/1891488

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!