Настройка различных портов SSH для каждого узла удаленного мониторинга, контролируемого Nagios

5646
danielcraigie

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

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

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

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

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

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

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

4

1 ответ на вопрос

5
danielcraigie

Хорошо, я просматривал документацию 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 на порте по умолчанию, конфигурация порта уже будет унаследована от универсального шаблона хоста.

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

Это отлично сработало для меня. Спасибо, сэр! Bryan Agee 9 лет назад 0