首页 > 解决方案 > 通过 CheckMK Web-API 获取主机状态

问题描述

我正在尝试使用 CheckMK WebAPI 获取主机的状态。有人可以指出我如何获取这些数据的正确方向吗?

我们目前使用 CheckMK 企业版 1.4.0。

我试过了:

https://<monitoringhost.tld>/<site>/check_mk/webapi.py?action=get_host&_username=<user>&_secret=<secret>&output_format=json&effective_attributes=1&request={"hostname": "<hostname>"}

但是响应没有关于主机本身的任何相关信息(例如状态向上/向下、正常运行时间等)。

{
"result": {
    "attributes": {
        "network_scan": {
            "scan_interval": 86400,
            "exclude_ranges": [],
            "ip_ranges": [],
            "run_as": "api"
        },
        "tag_agent": "cmk-agent",
        "snmp_community": null,
        "ipv6address": "",
        "alias": "",
        "management_protocol": null,
        "site": "testjke",
        "tag_address_family": "ip-v4-only",
        "tag_criticality": "prod",
        "contactgroups": [
            true,
            []
        ],
        "network_scan_result": {
            "start": null,
            "state": null,
            "end": null,
            "output": ""
        },
        "parents": [],
        "management_address": "",
        "tag_networking": "lan",
        "ipaddress": "",
        "management_snmp_community": null
    },
    "hostname": "<host>",
    "path": ""
},
"result_code": 0

标签: check-mk

解决方案


webapi 仅用于获取/设置主机或其他对象的配置。如果您不想获取主机的实时状态,请使用 livestatus。

如果您在端口 6557(默认)上启用了 livestats,您可以通过网络查询主机的状态。如果您在本地登录到 shell,您可以使用“lq”。

OMD[mysite]:~$ lq "GET hosts\nColumns: name"

原因:CheckMK webapi 如果用于访问 WATO。WATO 是创建 nagios 配置的来源。Nagios 将监控主机,livestatus api 是 nagios 核心的扩展。


推荐阅读