黑帽联盟

 找回密码
 会员注册
查看: 2147|回复: 1

[运维监控] zabbix自定义用户key与参数User parameters

[复制链接]

906

主题

38

听众

3375

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    奋斗
    昨天 23:57
  • 签到天数: 1696 天

    [LV.Master]伴坛终老

    为什么要自定义KEY

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

    用户自定义参数包含一个key和一个命令,key必须整个系统唯一,配置好之后,重启客户端。
    然后配置item,在key的位置填上我们自定义的key即可。
    用户自定义参数里指定的脚本由zabbix agent来执行,最大可以返回512KB的数据.

    用户自定义key实例

    简单点的命令示例:
    UserParameter=ping,echo 1
    如果调用ping这个key,将会收到返回值1.

    更复杂的命令示例:
    UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive
    如果返回1表示MySQL运行中,如果返回0表示MySQL挂了

    灵活的自定义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]

  • 头像被屏蔽

    2

    主题

    0

    听众

    12

    积分

    黑帽菜鸟

    Rank: 1

  • TA的每日心情

    2017-3-10 00:45
  • 签到天数: 2 天

    [LV.1]初来乍到

    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部