4

Я завершил установку и настройку Nagios на трех серверах, так что экземпляр на сервере A также предоставляет отчеты для серверов B & C (через NRPE).

SSHD целенаправленно прослушивает разные порты на каждом хосте, поэтому я отредактировал файл /etc/nagios3/conf.d/services_nagios2.cfg на каждом хосте, чтобы протестировать соответствующий порт. Собственный экземпляр HTTP Nagios на серверах B & C подтверждает, что SSH работает, но отчет на сервере A показывает критические сбои для SSH на обоих B & C.

У меня сложилось впечатление, что служба NRPE была разработана для выполнения локальных проверок на удаленных хостах, пересылки остатков обратно на хост мониторинга, который затем собирал данные в один отчет для всех машин.

Рассматривая раздел «Службы» на веб-странице конфигурации (на сервере A), Nagios тестирует один и тот же порт SSH на всех трех серверах, а не на разных портах B & C. Кто-нибудь может объяснить почему?

Единственный способ, которым я могу исправить это (на сегодняшний день), состоит в том, чтобы создать разные хосты имя_группы и check_command для каждого удаленного хоста в файле conf.d/services_nagios2.cfg на сервере A.

Это не может быть единственным способом?

Конечно, файл будет умножаться по длине каждый раз, когда для удаленного мониторинга серверов требуется другая конфигурация службы!

1 ответ1

5

Хорошо, я просматривал документацию Nagios3 и ответил на часть конфигурации порта на мой вопрос ...

Ответ лежит в модели наследования объектов, которая существует в файлах конфигурации Nagios. По сути, я создал пользовательскую переменную в каждом определении хоста, которая указывает уникальный порт ssh на этом компьютере:

define host {
    use              generic-host
    host_name        serverB
    address          10.0.1.3
    _sshport         67382
}

Хосты сгруппированы внутри файла hostgroups_nagios2.cfg:

# A list of your ssh-accessible servers
define hostgroup {
    hostgroup_name  ssh-servers
    alias           SSH servers
    members         localhost,serverB,serverC
}

На эту группу ссылается внутри services_nagios2.cfg блок, проверяющий SSH:

# check that ssh services are running
define service {
    hostgroup_name                  ssh-servers
    service_description             SSH
    check_command                   check_ssh_port!$_HOSTSSHPORT
    use                             generic-service
    notification_interval           0 ; set > 0 if you want to be renotified
}

В конце команды check_ssh_port вы можете видеть, что я добавил переменную sshport $_HOSTSSHPORT которая унаследована от каждого хоста в группе хостов ssh-Servers при запуске проверок.

Теперь при добавлении новых серверов мне нужно только изменить файл hosts_nagios2.cfg, указав информацию о новом хосте.

Чтобы включить обратную совместимость, я также изменил свой файл generic-host_nagios2.cfg, добавив строку _sshport 22 так что если по какой-то причине мне понадобится отслеживать систему с SSH на порте по умолчанию, конфигурация порта уже будет унаследована от универсального хоста шаблон.

Я надеюсь, что это помогает другим, которые оказываются в том же положении. Я все еще пытаюсь понять, почему удаленные проверки не используют пользовательские файлы конфигурации на удаленных серверах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .