Konfiguration verschiedener SSH-Ports für jeden von Nagios überwachten Host

5715
danielcraigie

Ich habe die Installation und das Setup von Nagios auf drei Servern abgeschlossen, sodass die Instanz auf Server A auch Berichte für Server B & C (über NRPE) bereitstellt .

Da SSHD auf jedem Host gezielt einen anderen Port abhört, habe ich die Datei /etc/nagios3/conf.d/services_nagios2.cfg auf jedem Host bearbeitet, um den entsprechenden Port zu testen. Die native HTTP-Instanz von Nagios auf den Servern B & C bestätigt, dass SSH ausgeführt wird, der Bericht auf Server A jedoch auf beiden B & C kritische Fehler für SSH anzeigt .

Ich hatte den Eindruck, dass der NRPE-Dienst lokale Überprüfungen auf den Remote-Hosts durchführen und die Pausen zurück an den Überwachungshost weiterleiten würde, der dann die Daten für alle Computer in einem Bericht zusammenfasst.

Mit Blick auf die Dienstleistungen Abschnitt der Konfigurations - Webseite (auf Server A ), testet Nagios die gleiche SSH - Port auf allen drei Servern, anstatt verschiedene Ports auf B & C . Kann jemand erklären warum?

Die einzige Möglichkeit, dies zu korrigieren (bisher), besteht darin, für jeden Remote-Host in der Datei conf.d / services_nagios2.cfg auf Server A einen anderen Hostgruppennamen und einen check_command zu erstellen .

Das kann nicht der einzige Weg sein?

Sicherlich vervielfachte sich die Datei jedes Mal, wenn eine andere Dienstkonfiguration für Server erforderlich war, die fernüberwacht werden!

4

1 Antwort auf die Frage

5
danielcraigie

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 22Wenn 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.

Das hat perfekt für mich funktioniert. Danke mein Herr! Bryan Agee vor 9 Jahren 0