脚本 监控项 可用于通过执行用户定义的JavaScript代码来收集数据,并具备通过HTTP/HTTPS检索数据的能力。除了脚本外,还可以指定可选的参数列表(名称和值对)以及超时设置。
这种 监控项 类型在需要多步骤或复杂逻辑的数据收集场景中可能很有用。例如,可以配置一个脚本 监控项 来发起HTTP调用,然后以某种方式处理第一步接收到的数据,并将转换后的值传递给第二次HTTP调用。
脚本 监控项 由 Zabbix server 或 proxy 轮询器处理。
在item configuration form的类型字段中选择脚本,然后填写必填字段。
所有必填输入字段均标有红色星号。
脚本监控项需要填写特定信息的字段包括:
字段 | 描述 |
---|---|
Key | 输入用于标识监控项的唯一键值。 |
Parameters | 指定要传递给脚本的变量作为属性和值对。 支持Built-in macros {HOST.CONN}、{HOST.DNS}、{HOST.HOST}、{HOST.IP}、{HOST.NAME}、{ITEM.ID}、{ITEM.KEY}、{ITEM.KEY.ORIG}和user macros。 |
Script | 在点击参数字段(或旁边的查看/编辑按钮)时出现的代码块中输入JavaScript代码。该代码必须提供返回指标值的逻辑。 代码可以访问所有参数,可以执行HTTP GET、POST、PUT和DELETE请求,并可以控制HTTP头部和请求体。 另请参阅:Additional JavaScript objects、JavaScript Guide。 |
Timeout | JavaScript执行超时时间(1-60秒,默认为3秒);超过此时间将返回错误。 支持时间后缀,例如30s、1m。 根据脚本的不同,触发超时可能需要更长时间。 |
收集https://www.example.com/release_notes的内容:
收集特定页面的内容并利用参数:
创建一个类型为"脚本"的监控项并设置两个参数:
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
收集以下两个网址的内容:https://www.example.com 和 https://www.example.com/release_notes:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
将"Log test"条目添加到Zabbix server日志中并接收返回的监控项值"1":