脚本 监控项 可用于通过执行用户定义的 JavaScript 代码来收集数据,并具备通过 HTTP/HTTPS 检索数据的能力。除了脚本之外,还可以指定一个可选的参数列表(名称和值的对)以及超时时间。
这种 监控项 类型可能在需要多步骤或复杂逻辑的数据收集场景中非常有用。例如,可以配置一个脚本 监控项 来进行 HTTP 调用,然后以某种方式处理第一步接收到的数据,并将转换后的值传递给第二个 HTTP 调用。
脚本 监控项 由 Zabbix server 或 proxy 轮询器处理。
在 item configuration form 的 类型 字段中选择 脚本,然后填写必填字段。
所有必填输入字段均以红色星号标记。
脚本 监控项 需要填写的字段如下:
字段 | 描述 |
---|---|
Key | 输入一个唯一的键,用于标识该 监控项。 |
Parameters | 指定作为属性和值对传递给脚本的变量。 支持 User macros。要查看支持哪些内置宏,请在 supported macro 表格中搜索“脚本类型 监控项”。 |
Script | 点击参数字段或其旁边的铅笔图标时,在打开的模态编辑器中输入 JavaScript 代码。该代码必须提供返回指标值的逻辑。 代码可以访问所有参数和 Zabbix 添加的所有 additional JavaScript objects。 另请参阅:JavaScript Guide。 |
Timeout | JavaScript 执行超时时间(1-600 秒;超过该时间将返回错误)。 请注意,根据脚本的不同,触发超时可能需要更长时间。 有关 超时 参数的更多信息,请参见 配置。 |
收集 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":