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