首页 > 服务器监控 > zabbix > zabbix自定义用户key与参数User parameters
2015
12-10

zabbix自定义用户key与参数User parameters

为什么要自定义KEY

有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法。我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter.

语法如下:

UserParameter=key,command

用户自定义参数包含一个key和一个命令,key必须整个系统唯一,配置好之后,重启客户端。

然后配置item,在key的位置填上我们自定义的key即可。

用户自定义参数里指定的脚本由zabbix agent来执行,最大可以返回512KB的数据.

用户自定义key实例

1、简单点的命令示例:

UserParameter=ping,echo 1

如果调用ping这个key,将会收到返回值1.

2、更复杂的命令示例:

UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive

如果返回1表示MySQL运行中,如果返回0表示MySQL挂了

3、灵活的自定义key:

如下为灵活的用户自定义参数

UserParameter=key[*],command
参数 描述
Key 唯一. [*]表示里面可以传递多个参数
Command 需要执行的脚本,key的[]里面的参数一一对应$1到$9,一共9个参数。$0表示脚本命令.

注意事项

1. 如果需要使用命令行里面出现$2这种变量,那么你要使用两个$$2,例如awk ’{ print $$2 }’,之前就遇到过这个问题,不停的测试自己脚本输出正常,但是zabbix却拿不到数据,原来是出在这里。为了防止和参数冲突,所以zabbix做了这个规定。

2. zabbix禁止使用一些不安全的参数,如下:

\ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @

3. 从zabbix 2.0开始,zabbix返回文本数据可以是空格。

示例1

UserParameter=ping[*],echo $1
ping[0] - 将一直返回0
ping[aaa] - 将一直返回 'aaa'

示例2

UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive

如下参数用于监控MYSQL,并且可以传递用户名和密码。

mysql.ping[zabbix,our_password]

示例3

统计一个文件中有多少行被匹配?

UserParameter=wc[*],grep -c "$2" $1

如下方法将会返回文件中出现指定字符的行数

wc[/etc/passwd,root]
wc[/etc/services,zabbix]



最后编辑:
作者:tshare365
这个作者貌似有点懒,什么都没有留下。
捐 赠您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击

留下一个回复