Aus aktuellem Anlass und des allgemeinen Unverständnisses was die verschiedenen Nagios Konfigurationsdateien angeht, möchte ich versuchen etwas licht in die Verwirrung zu bringen.
An dieser Stelle möchte ich ein paar Sachen ganz besonders loswerden:
(Erweiterung ausdrücklich erwünscht)
Die einzige Datei die Nagios beim starten sehen möchte ist die Hauptkonfigurationsdatei (engl. main config file), in den meisten fällen trägt sie den Namen nagios.cfg.
Sie kann aber auch crypto.ini heißen, dem Nagios Prozess ist das egal. Hauptsache sie wurde beim Starten von nagios angegeben (Bsp: /usr/local/nagios/bin/nagios /usr/local/nagios/etc/crypto.ini).
siehe Regel 1
Zwecks allgemeiner Verständlichkeit bleibe ich im folgenden Test bei der Benennung nagios.cfg.
Achtung, wer der Meinung istnagios.cfgmüsste umbenannt werden, der sollte auch an die Korrektur des init Scriptes denken.
Wichtig für diese Doku sind zwei Direktiven der nagios.cfg:
Über cfg_file=<file_name> wird eine zusätzliche Datei für Objektdefinitionen herangezogen.
Über cfg_dir=<dir_name> wird ein zusätzliches Verzeichniss mit allen darin befindlichen Dateien für Objektdefinitionen herangezogen, wenn sie auf die (eigentlich nicht wichtige) Endung .cfg enden.
Man möge bitte vermeiden, dass man zusätzlich zu einemcfg_dirnochcfg_fileaus dem gleichen Verzeichnis verwendet ⇒ Verstoß gegen Regel 8
Also, jede Datei die man in der nagios.cfg über diese beiden direktiven angegeben hat werden von Nagios berücksichtigt.
Ergo:
Datei windows-systeme.cfg angelegt aber nicht über cfg_file oder cfg_dir eingebunden ⇒ Datei nicht für Nagios sichtbar.
Denkt an die Regeln 1: Namen und Dateiendungen sind unwichtig! Hauptsache Dateiname + cfg_file Direktive passen zusammen!
Viele Nagios User die schon mit Nagios 1.x angefangen haben sind folgende Einträge in der nagios.cfg gewohnt:
cfg_file=/usr/local/nagios/etc/hosts.cfg cfg_file=/usr/local/nagios/etc/services.cfg cfg_file=/usr/local/nagios/etc/hostgroups.cfg cfg_file=/usr/local/nagios/etc/servicegroups.cfg cfg_file=/usr/local/nagios/etc/timeperiods.cfg cfg_file=/usr/local/nagios/etc/checkcommands.cfg cfg_file=/usr/local/nagios/etc/misccommands.cfg
Eine Aufteilung der Konfigurationsobjekte auf verschiedene Dateien ist durchaus empfehlenswert, da es doch enorm die Übersicht erhalten kann.
Das o.g. Beispiel ist schon relativ alt, auf jeden Fall älter als die cfg_dir Direktive, über Sinn oder Unsinn einer solchen Aufteilung möchte ich hier nicht diskutieren.
Fakt ist jedoch: Jeder sollte sich selbst Gedanken machen, welche Art von Ordnung man in seinen Dateien haben möchte.
Folgende Aufteilung könnte auch Interessant sein:
cfg_dir=/usr/local/nagios/etc/hosts/ cfg_dir=/usr/local/nagios/etc/services/ cfg_dir=/usr/local/nagios/etc/timeperiods/
um anschließend vielleicht im Verzeichnis /usr/local/nagios/etc/hosts/ Dateien a la windows-server.cfg, linux-server.cfg, aix-systeme.cfg anzulegen in denen dann die jeweiligen Host Definitionen stehen.
Jedem das seine, man möge nur Bedenken „Nagios ist wie ein U-Boot. Es kann ganz unvermittelt auftauchen“.
Um es vorerst abzuschließen:
cfg_file oder cfg_dir stimmtservices.cfg packen! Die lassen sich auch Prima in die localhost.cfg packen.