我正在尝试使用 PHP/CURL 查询 Zabbix 并查找服务是否可用。
从 Zabbix Web 界面,我得到此屏幕,其中显示测试及其状态。
我想以 JSON 格式获取这些数据(测试名称和状态),以便在另一个应用程序中显示。
我正在发布以下 JSON:
{"jsonrpc":"2.0","method":"httptest.get", "params": {"output":"extend"},"auth":"XXXXXXXXXXXXXXX","id":0}'
它返回测试,但不返回其状态。我应该使用什么 json 请求来接收状态标志(Ok / NOk)?
答案1
网络监控的状态OK/NOK
计算如下前端代码并且该结果的 API 方法不可用。
您应该使用它item.get
来获取 Web 监控项值(例如,项“lastfailedstep/场景的失败步骤...”),然后您应该OK/NOK
在代码中计算状态。请参阅Zabbix item.get API 文档对于参数。
答案2
我花了很长时间才弄明白这一点。
您想要发出item.get
请求并填写webitems
查询中的字段。
喜欢"webitems": "true"
例如:
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"sortfield": "name",
"webitems": "true",
"search": {
"name": "Response code"
}
},
"auth": "token",
"id": 1
}
然后您将能够获取lastvalue
该值,甚至可以history.get
与一起使用itemid
。