Назад | Перейти на главную страницу

Множественные проверки HTTP на хост с Icinga2

Как лучше всего настроить несколько проверок HTTP для хоста?

Я знаю, что есть такой метод "применения":

apply Service "http" for (http_vhost => config in host.vars.vhosts) {
    ...
}

Но мне также нужно значение http_uri ?!

Как это сделать через обычные файлы конфигурации И как это сделать через Директор? Где и как мне нужно изменить шаблон, чтобы получить несколько HTTP-проверок, связанных с определенным хостом?

Директором я не пользуюсь, но могу рассказать, как я это делаю в обычном коде. В принципе, я бы создал некоторый dict / list, как вы сказали (в разных масштабах). Там вы должны поместить туда переменные - те, которые вы хотите изменить (например, URL).

Итак, вы определяете переменную со своими данными. Он может находиться под хостом, или вы можете создать его в глобальной области.

globals.http_urls = [ "/uril1", "/url2" ]

или

object Host "testhost" {
    host.address = 123.123.123.123
    vars.http_urls = [ "/url1", "/url2" ]
} 

тогда вы можете перебирать эту переменную

apply Service "http-url" for (url in globals.http_url) {
    command = http

    # ... other http check variables ...

    vars.http_url = url

    # ... other variables ...

    assign where host.name == "testhost"
}

вы также можете перебирать словарь, это работает так:

globals.testdict = {
    "server1" : "testdict",
    "server2" : "testweb",
    etc..
}

просто используйте ключ => значение формат для определения

apply Service "http-url" for (server => url in globals.testdict) {
    command = http
    display_name = "http check " + server

    vars.http_url = url
    .. etc

    assign where host.name == testserver
}