有时您可能需要run一个Zabbix未预定义的agent检查。这时用户参数就能派上用场。
您可以编写一个获取所需数据的命令,并将其包含在agent configuration file中的用户参数里('UserParameter'配置参数)。
用户参数的语法如下:
如您所见,用户参数还包含一个键值。在配置监控项时将需要此键值。输入一个便于引用的自定义键值(该键值在一个主机中必须唯一)。
重启agent或使用agent的运行时控制选项来加载新参数,例如:
然后,当configuring an item时,输入键值来引用您希望执行的用户参数中的命令。
用户参数是由Zabbix agent执行的命令。 请注意,在item value preprocessing步骤之前最多可返回16MB数据。
在UNIX操作系统中使用/bin/sh作为命令行解释器。 用户参数遵循agent检查超时;如果达到超时,派生的用户参数进程将被终止。
另请参阅:
一个简单命令:
对于带有'ping'键的监控项,agent将始终返回'1'。
一个更复杂的示例:
如果MySQL服务器存活,agent将返回'1',否则返回'0'。
灵活的用户参数支持带参数的键值。这种方式使得灵活用户参数可以作为创建多个监控项的基础。
灵活用户参数的语法如下:
参数 | 描述 |
---|---|
Key | 唯一的监控项键值。[*]表示该键值接受方括号内的参数 参数在配置监控项时指定。 |
Command | 用于评估键值的执行命令 仅限灵活用户参数: 可在命令中使用位置引用$1...$9来对应监控项键值中的参数 Zabbix会解析监控项键值中[]包含的参数,并相应替换命令中的$1,...,$9 $0将被替换为原始命令(在展开$0,...,$9之前)以便run 无论位置引用是否包含在双引号(")或单引号(')中都会被解析 如需原样使用位置引用,需指定双美元符号 - 例如awk '{print $$2}'。此时 $$2 在执行命令时会实际转换为$2 |
带$符号的位置引用仅在灵活用户参数中会被Zabbix agent查找和替换。 对于简单用户参数,此类引用处理会被跳过,因此不需要对$符号进行转义。
默认情况下用户参数中不允许使用某些特殊符号。 完整列表请参阅 UnsafeUserParameters 文档。
一个非常简单的示例:
我们可以定义无限数量的监控项用于监控 所有监控项都遵循 ping[something]格式.
让我们增添更多意义!
此参数可用于监测MySQL数据库的可用性。我们可以传递用户名和密码:
mysql.ping[zabbix,our_password]
统计file中匹配正则表达式的行数?
此参数可用于计算file中的行数。
wc[/etc/passwd,root] wc[/etc/services,zabbix]
命令的返回值包括该命令产生的标准输出及标准错误输出。
返回文本类型数据(字符型、日志型或文本型信息)的监控项不会因标准错误输出而变为不受支持状态。
返回值限制为16MB(包含被截断的尾部空白字符);文本数据限制同样适用。
返回文本类型数据(字符型、日志型或文本型信息)的用户参数也可以返回空白字符。 若返回无效结果,该监控项将变为不受支持状态。