从 httptest 获取当前状态(Zabbix)

从 httptest 获取当前状态(Zabbix)

我正在尝试使用 PHP/CURL 查询 Zabbix 并查找服务是否可用。

从 Zabbix Web 界面,我得到此屏幕,其中显示测试及其状态。

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

相关内容