有时你可能想要运行一个代理检查,它不是用Zabbix预定义的,这时你会用到用户参数来帮忙。
你可以编写一个命令来检索所需的数据,并将其包含在用户参数代理配置文件中 ('UserParameter' 配置参数)。
用户参数具有以下语法:
如你看到的,用户参数还包含一个Key。 一个用户参数包含一个Key。输入你选择的Key,这将很容易引用(它在主机中必须是唯一的)。重新启动代理。
然后,当 配置一个监控项时, 输入要从执行的用户参数中引用该命令的Key。
用户参数是由Zabbix代理执行的命令。最多可以返回512KB的数据。 /bin/sh 在UNIX操作系统下用于命令行解释器。用户参数满足代理检查超时,如果达到超时,则分支用户参数进程终止。
请参考:
简单的命令:
代理将始终使用'ping'键为一个监控项返回'1'。
一个更复杂的例子:
如果MySQL服务器是活动状态,代理将返回'1',否则为0。
灵活的用户参数使用Key接受参数。这样一个灵活的用户参数可以作为创建几个监控项的基础。
灵活的用户参数具有以下语法:
参数 描 | |
---|---|
Key | 唯一的监控项Key。[*]定义该Key接收括号内的参数。 在配置监控项时给出参数。 |
Command | 执行命令以评估Key的值。 仅适用于灵活的用户参数: 你可以使用命令中的位置引用$ 1 ... $ 9来引用监控项Key中的相应参数。 Zabbix解析监控项Key的[]中包含的参数,并相应地替换$ 1,...,$ 9。 $ 0将由原始命令(在扩展$ 0,...,$ 9之前)替换为运行。 不管它们是用双引号(")还是单引号(')括起来,都会解析位置引用。 要使用位置引用不变,请指定双美元符号 - 例如,awk'{print $$2}'。 在这种情况下,执行命令时,“$$2”实际上会变成“$2”。 |
<note important>使用$符号的位置引用仅由灵活的用户参数搜索并由Zabbix代理替代。对于简单的用户参数,跳过此类引用处理,因此任何$号引用都不是必需的。 :::
默认情况下,用户参数中不允许使用某些符号。请查阅 不安全的用户参数的完整列表文档。
有些事情很简单:
我们可以定义无限数量的监控项,用于监视所有具有格式ping [something]的设置。
让我们增添更多的意义!
此参数可用于监视MySQL数据库的可用性。我们可以传递用户名和密码:
有多少行匹配文件中的正则表达式?
此参数可用于计算文件中的行数。
命令的返回值与标准错误一起按照标准输出。
<note important>在标准错误输出的情况下,文本(字符、日志或文本信息类型)监控项将被支持。 :::
返回文本(字符、日志、文本信息类型)的用户参数可以返回空格。 在无效结果的情况下,或执行退出代码不匹配0(零)的监控项将不被支持。