zabbix自定义用户key

有时咱们须要被监控端执行一个zabbix没有预约义的检测项,zabbix的用户自定义参数功能提供了这个方法。咱们能够在客户端配置文件zabbix_angentd.conf里面配置UserParameter或者在/etc/zabbix/zabbix_agentd.d/目录下编辑配置文件,其语法相同为:mysql

UserParameter=key,command

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

而后配置item,在key的位置填上咱们自定义的key便可。安全

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


简单点的命令示例:
UserParameter=ping,echo 1
若是调用ping这个key,将会收到返回值1.
更复杂的命令示例:
UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
若是返回1表示MySQL运行中,若是返回0表示MySQL挂了ide


以下为灵活的用户自定义参数测试

UserParameter=key[*],command

key        惟一. [*]表示里面能够传递多个参数命令行

command    须要执行的脚本,key的[]里面的参数一一对应$1到$9,一共9个参数。$0表示脚本命令ci


注意:it

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

  2. zabbix禁止使用一些不安全的参数,以下:
        \ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @

  3. 从zabbix 2.0开始,zabbix返回文本数据能够是空格


例一:

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


例二:

UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive
以下参数用于监控MYSQL,而且能够传递用户名和密码。
mysql.ping[zabbix,our_password]


例三:

统计一个文件中有多少行被匹配?UserParameter=wc[*],grep -c "$2" $1以下方法将会返回文件中出现指定字符的行数wc[/etc/passwd,root]wc[/etc/services,zabbix]

相关文章
相关标签/搜索