cxg518 发表于 2019-1-23 11:59:23

zabbix自定义用户key-LE

  有时我们需要被监控端执行一个zabbix没有预定义的检测项,zabbix的用户自定义参数功能提供了这个方法。我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter或者在/etc/zabbix/zabbix_agentd.d/目录下编辑配置文件,其语法相同为:
UserParameter=key,command  用户自定义参数包含一个key和一个命令,key必须整个系统唯一,配置好之后,重启客户端;
  然后配置item,在key的位置填上我们自定义的key即可。
  用户自定义参数里指定的脚本由zabbix agent来执行,最大可以返回512KB的数据
  简单点的命令示例:
  UserParameter=ping,echo 1
  如果调用ping这个key,将会收到返回值1.
  更复杂的命令示例:
  UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
  如果返回1表示MySQL运行中,如果返回0表示MySQL挂了
  如下为灵活的用户自定义参数
UserParameter=key
[*],command  key      唯一.
[*]表示里面可以传递多个参数
  command    需要执行的脚本,key的[]里面的参数一一对应$1到$9,一共9个参数。$0表示脚本命令
  注意:

[*]  如果需要使用命令行里面出现$2这种变量,那么你要使用两个$$2,例如awk ’{ print $$2
}’,之前就遇到过这个问题,不停的测试自己脚本输出正常,但是zabbix却拿不到数据,原来是出在这里。为了防止和参数冲突,所以zabbix做了这
个规定。
[*]  zabbix禁止使用一些不安全的参数,如下:
  \ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
[*]  从zabbix 2.0开始,zabbix返回文本数据可以是空格
  例一:
  UserParameter=ping
[*],echo $1
  ping - 将一直返回0
  ping - 将一直返回 'aaa'
  例二:
  UserParameter=mysql.ping
[*],mysqladmin -u$1 -p$2 ping | grep -c alive
  如下参数用于监控MYSQL,并且可以传递用户名和密码。
  mysql.ping
  例三:
  统计一个文件中有多少行被匹配?
  UserParameter=wc
[*],grep -c "$2" $1
  如下方法将会返回文件中出现指定字符的行数
  wc
  wc


页: [1]
查看完整版本: zabbix自定义用户key-LE