zabbix自定义脚本

# vim/etc/zabbix/zabbix_agentd。参看

# UnsafeUserParameters=0取消注释并修改为1,在下面增加一行

UserParameter=/usr/地方/sbin/zabbix/净。sh

其中UserParameter用来自定义键值,(类似于net.if.in),自己写的脚本往往会有参数,(*)表示他有自己的参数,所以需要加[*],这是固定写法,如果脚本压根就没有什么参数,那么这个就省了。逗号后面就是我们写的脚本的路径了,再后面就是要用到的参数,有几个就写几。如果没有参数,后面2美元的1美元还有前面的[*]就都可以省略。

不足之处:

脚本需要工作中不断的进行改进。

并没有针对每个网卡设定单独的文件,所有网卡使用同一个日志文件# vim/usr/local/sbin/zabbix/net.sh

# !/bin/bash

乙1美元=

io=$ 2

net_file="/proc/net/dev "

如果[2美元=="在"]

,

n_new=癵rep“乙美元美元net_file | awk的{打印$ 2}'

n_old='尾1/tmp/洗鼻。日志”

n='公元前回声“n_new - n_old美元”|“

d_new='日期+ % s的

d_old='尾2/tmp/洗鼻。日志|头1 '

d='公元前回声“d_new - d_old美元”|“

if_net='公元前回声“n/d美元”|“

echo $ if_net

日期+ % s>在

grep“乙美元美元net_file | awk的{打印$ 2}’,祝辞的在/tmp/洗鼻。日志

elif[2美元==啊?

,

n_new=癵rep“乙美元美元net_file | awk的{打印10美元}'

n_old='尾1/tmp/否决权。日志”

n='公元前回声“n_new - n_old美元”|“

d_new='日期+ % s的

d_old='尾2/tmp/否决权。日志|头1 '

d='公元前回声“d_new - d_old美元”|“

if_net='公元前回声“n/d美元”|“

echo $ if_net

日期+ % s>在

grep“乙美元美元net_file | awk的{打印10美元}’,祝辞的在/tmp/否决权。其他日志

回声0

fi

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

<强>详解

乙1美元=

io=$ 2

net_file=" "

n_new=癵rep“乙美元美元net_file | awk的{打印$ 2}'

n_old='尾1/tmp/洗鼻。日志”

n='公元前回声“n_new - n_old美元”|“

d_new='日期+ % s的

d_old='尾2/tmp/洗鼻。日志|头1 '

d='公元前回声“d_new - d_old美元”|“

if_net='回声“n/d美元”| bc的

echo $ if_net

日期+ % s>在/tmp/洗鼻。日志

grep“乙美元美元net_file | awk{打印$ 2}的祝辞在/tmp/洗鼻。日志


值与上一次减一下然后除一下,求一个平均值

# chmod + x/usr/local/sbin/zabbix/net.sh

#/usr/local/sbin/zabbix/net.sh eth0在

#/usr/local/sbin/zabbix/net.sh eth0了

此时检测eth2或者其他网卡的流量会报错,因为执行脚本之前,grep过滤出来的是eth0的流量,这里直接使用eth2得出的数字肯定是错误的,所以,如果是想检测eth2的流量,那么在grep和触摸的时候,就应该使用eth2。

#/etc/init.d/zabbix-agent重启

# zabbix_get - s 192.168.32.150 -p10050 - k”my.net.if eth0,”查网看了卡流量,单位字节

395

# zabbix_get - s 192.168.32.150 -p10050 - k”my.net.if eth0,”查在网看卡流量,单位字节308年

 zabbix自定义脚本

下图的关键只能手写,并不能选择。

创建eth0_net_in和eth0_net_out


查看是否添加成功


需求:统计每分钟的在线人数,通过数据库获得在线人数。

思路:

1,客户端增加键

UserParameter=my.online/usr/地方/sbin/zabbix/在线。sh

2,编写脚本

从数据库里面获得每分钟的在线人数

3,测试

服务端进行操作

# zabbix_get - s 192.168.32.150 -p10050 - k”我。在线“

如果返回了参数,那么就代表成功。


zabbix自定义脚本