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

Как в Icinga (Nagios) настроить хосты с несколькими IP-адресами?

Я настраиваю Icinga (вилка Nagios), и у меня есть несколько машин с несколькими интерфейсами. Некоторые службы прослушивают только один из них, и для их правильной проверки я хотел бы знать, можно ли настроить несколько IP-адресов для одного хоста в Icinga.

Вот минимальный пример:

Удаленный сервер:

Сервер Icinga:

Теперь, если я определю хост:

define host {
        use                     generic-host
        host_name               server1
        alias                   server1.gertvandijk.net
        address                 10.1.2.3
        }

Это не позволит правильно проверить статус HTTP. И определение дополнительного хоста:

define host {
        use                     generic-host
        host_name               server1-public
        alias                   server1.gertvandijk.net
        address                 1.2.3.4
        }

проверит все, но отображается как два независимых хоста. Теперь я хочу «объединить» эти два хоста, чтобы они отображались как один, но в то же время предоставил простую конфигурацию для проверки служб на их правильных адресах.

Что является наиболее элегантным решением, позволяющим сэкономить количество строк в конфигурации? Я читал о нескольких доступных плагинах для обхода этой проблемы, но я не могу понять, как это исправить. Решения относятся к 2003 году, но я использую Icinga 1.7.1, уже способную address6 вариант, но это вызывает разрешение только IPv6 для имени хоста ...

В идеале я хочу настроить Icinga так, чтобы он был достаточно умным, чтобы знать, что экземпляр Postfix, работающий на 10.1.2.3:25 такой же как 1.2.3.4:25 и, таким образом, не вызывает двух сигналов тревоги.

Я предполагаю, что это должно было быть решено раньше, и системные администраторы настроили это сейчас. Поделитесь, пожалуйста, своим решением. Спасибо! :)

Вы можете определить переменная настраиваемого объекта, что-то вроде этого:

define host {
        use                     generic-host
        host_name               server1
        alias                   server1.gertvandijk.net
        address                 10.1.2.3
        _wan_address            1.2.3.4
        }

тогда назовите это как $_HOSTWAN_ADDRESS$ макрос:

define command{
        command_name    check_wan_http
        command_line    $USER1$/check_http -I $_HOSTWAN_ADDRESS$ $ARG1$
        }

define service{
    use                     generic-service
    hostgroup_name          apache
    service_description     Apache
    check_command           check_wan_http
    process_perf_data       0
    contact_groups          admin
}