OK, ich habe die Nagios3-Dokumentation durchforstet und den Port-Konfigurationsteil meiner Frage beantwortet ...
Die Antwort liegt im Objektvererbungsmodell, das in den Nagios-Konfigurationsdateien vorhanden ist. Im Wesentlichen habe ich in jeder Hostdefinition eine benutzerdefinierte Variable erstellt, die den eindeutigen SSH-Port auf dieser Maschine angibt:
define host { use generic-host host_name serverB address 10.0.1.3 _sshport 67382 }
Die Hosts sind in der Datei hostgroups_nagios2.cfg zusammengefasst:
# A list of your ssh-accessible servers define hostgroup { hostgroup_name ssh-servers alias SSH servers members localhost,serverB,serverC }
Diese Gruppe wird in der services_nagios2.cfg von dem Block referenziert, der SSH überprüft:
# 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 }
Am Ende des Befehls check_ssh_port können Sie sehen, dass ich die sshport-Variable hinzugefügt habe $_HOSTSSHPORT
, die von jedem Host in der ssh-servers-Hostgruppe während der Ausführung der Überprüfungen geerbt wird.
Beim Hinzufügen neuer Server muss ich jetzt nur noch meine hosts_nagios2.cfg -Datei mit den Details des neuen Hosts ändern.
Um die Abwärtskompatibilität zu aktivieren, habe ich auch die Datei generic-host_nagios2.cfg geändert und die Zeile hinzugefügt. _sshport 22
Wenn ich aus irgendeinem Grund ein System überwachen muss, auf dem SSH am Standardport ausgeführt wird, wird die Portkonfiguration bereits von der generischen Hostvorlage übernommen.
Ich hoffe, dass dies anderen hilft, die sich in derselben Situation befinden. Ich versuche immer noch zu verstehen, warum die Remote-Prüfungen die benutzerdefinierten Konfigurationsdateien auf den Remote-Servern nicht verwenden.