通过 CheckMK Web 获取主机状态-API

Get host status by 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>"}

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

{
"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
http://<monitoringhost.tld>/<site>/check_mk/view.py?view_name=allhosts&output_format=csv

您可以通过添加 output_format=[csv|json|python] 使用您在 webui 中看到的所有视图.

您将看到您所看到的 table 的数据。 您还需要添加在您的问题中看到的字幕。

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

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

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

为什么: CheckMK webapi 是否用于访问 WATO。 WATO 是创建 nagios 配置的来源。 Nagios 将对主机进行监控,livestatus api 是 nagios 核心的扩展。