一千萬個為什麽

搜索

在Icinga2中使用api進行服務檢查



我正在嘗試使用icinga2 api來添加客戶端的服務。我遵循 https://github.com/saurabh-hirani/icinga2-api-examples 。這是我迄今為止所做的。

首先,我在master中創建了區域和端點,如下所示:

端點</強>

Object Endpoint "client.com" {
}

區</強>

Object Zone "client.com" {
    endpoints = [ "client.com" ]
    parent = "master.com"
}

重新啟動icinga2

然後在客戶端服務器

#!/bin/bash -e

. icinga2_vars


echo "CREATING HOSTGROUP"


curl -s -u $ICINGA2_API_USER:$ICINGA2_API_PASSWORD \
    -H 'Accept: application/json' -X PUT \
    -k "https://$ICINGA2_HOST:$ICINGA2_API_PORT/v1/objects/hostgroups/client_hostgroup" \
    -d '{ "attrs": {
            "display_name": "client host group"
} }' | python -m json.tool


echo "CREATING HOST"


curl -s -u $ICINGA2_API_USER:$ICINGA2_API_PASSWORD  \
    -H 'Accept: application/json' -X PUT \
    -k "https://$ICINGA2_HOST:$ICINGA2_API_PORT/v1/objects/hosts/client.com" \
    -d '{ "templates": [ "generic-host" ],
        "attrs": {
        "address": "127.0.0.1",
        "check_command": "hostalive",
        "groups": ["client_hostgroup"],
        "vars.notification['mail']": {
            "groups": ["client_hostgroup_users"]
            }
} }' | python -m json.tool

echo "CREATING SERVICE"


curl -s -u $ICINGA2_API_USER:$ICINGA2_API_PASSWORD  \
    -H 'Accept: application/json' -X PUT \
    -k "https://$ICINGA2_HOST:$ICINGA2_API_PORT/v1/objects/services/client.com!load" \
    -d '{
        "templates": [ "generic-service" ],
        "attrs": {
            "display_name": "check load",
            "check_command" : "load",
            "command_endpoint": "client.com",
            "host_name": "client.com"
        }
}' | python -m json.tool

它正在工作,但檢查主人本身的服務。它應該檢查客戶服務器的服務。

轉載註明原文: 在Icinga2中使用api進行服務檢查

一共有 1 個回答:

您應該為主機和服務添加正確的區域屬性,以便它們傳播到客戶機節點。

“zone”:“client.com”添加到api請求中。