Nagios - Automatische Überwachung einer IT-Infrastruktur, Teil 1
Installation und Konfiguration
Dependencies
Durch die Host- und Serviceabhängigkeiten lassen sich Benachrichtigungen und Checks unterdrücken, basierend auf den Zuständen, in denen sich die jeweiligen Komponenten befinden, z.B.
define servicedependency { host_name linux01, linux02 service_description NRPE, NSCA inherits_parent 1 dependent_host_name linux03, linux04 dependent_service_description Users, Load, Disks notification_failure_criteria c,u execution_failure_criteria n }
Die Variablen host_name
und service_description
legen die Master-Services fest, deren Ausfall zum Ausfall der in dependent_service_description
genannten Dienste auf den in dependent_host_name
angegebenen Rechnern führt. (Zu beachten ist, dass jeder abhängige Service von jedem möglichen Master-Service abhängig ist.)
Die verbleibenden Variablen legen die Optionen fest, bei welchen Zuständen der Master-Services, Benachrichtigungen und Checks ausbleiben sollen.
Im obigen Beispiel bedeutet dies konkret, dass Nagios die zuständigen Kontakte nicht über die Zustände der Dienste Users, Load und Disks auf linux03 und linux04 informiert, wenn die Master-Services sich im Zustand critical oder unknown befinden. Checks werden jedoch auf alle Fälle ausgeführt.
Mögliche Optionen für die failure_criteria sind u
(unknown), w
(warning), c
(critical), p
(pending), o
(ok) und n
( ). Die Variable inherits_parent
prüft zusätzlich die Master-Services, ob diese nicht von weiteren definierten servicedependencies abhängig sind.
Bei hostdependency
gilt das gleiche, nur fallen die Variablen service_description
und dependent_service_description
weg. (Abhängigkeitsüberprüfungen erfolgen normalerweise nur für Hard-States. Will man dass diese auch in den Soft-States möglich sind, muss man in der Hauptkonfigurationsdatei die Variable soft_state_dependencies
auf 1
setzen.)
Überwachung verschiedener Systeme
Nachdem man sich mit der allgemeinen Konfiguration auskennt, bietet sich nun die Möglichkeit, verschiedene Dienste und Objekte zu überwachen. Im Folgenden wird dafür das Vorgehen an einigen Beispielen beschrieben.
Windows
Üblicherweise werden die Windows-Hosts über den NSClient überwacht. Dieser Agent ist das Bindeglied zwischen dem Main-Host und dem entfernten Windows-Rechner.
NSClient läuft auf dem Windows-Host im Hintergrund und sammelt alle erforderlichen Informationen, die wir über das Plugin check_nt von unserem Monitoring-Host abfragen können.
Installation auf dem Windows-Rechner
Zunächst lädt man sich die aktuelle Version von sourceforge.net/projects/nscplus herunter. Dann entpackt man die Dateien in ein neues Verzeichnis C:\NSClient++ und gibt den folgenden Befehl in der Kommandozeile ein, nachdem man in dieses Verzeichnis gewechselt ist:
nsclient++ /install
Mit diesem Befehl installiert man ein NSClient++-Icon im Infobereich der Taskleiste:
nsclient++ SysTray
Danach editiert man die Datei NSC.ini:
- Den
[modules]
-Abschnitt aktivieren (durch Entfernen der Kommentarzeichen), mit Ausnahme vonCheckWMI.dll
undRemoteConfiguration.dll
- Ebenfalls die Kommentarzeichen vor der
allowed_hosts
-Option im[Settings]
-Abschnitt entfernen und die IP-Adresse des Nagios-Servers einfügen. Optional kann dort auch ein Passwort in derpassword
-Option gesetzt werden. - Den Wert in der
port
-Option im[NSClient]
-Abschnitt auf12489
setzen.
Nun kann dann der Agent gestartet werden:
nsclient++ /start
Konfiguration auf dem Nagios-Rechner
Zunächst müssen in der Hauptkonfigurationsdatei die Pfade zu den Konfigurationsdateien gesetzt werden:
cfg_file=/usr/local/nagios/etc/objects/windows.cfg cfg_file=/usr/local/nagios/etc/object/commands.cfg
Man muss beachten, dass jede relevante cfg-Datei dort ebenfalls, mit komplettem Pfad, angegeben werden muss.
Danach editiert man windows.cfg und definiert dort den Host und die Services, die man überwachen möchte, z.B:
define host { use windows-server host_name winserver address 192.168.1.2 } define service { use generic-service host_name winserver service_description CPU Load check_command check_nt!CPULOAD!-l 5,80,90 }
Schließlich definiert man in commands.cfg das Kommando, mit dem man das Plugin check_nt aufruft, wobei für PASSWORD
das Passwort eingetragen werden muss, welches man in NSC.ini im [Settings]
-Abschnitt benutzt hat (die lange Zeile wurde aus Layout-Gründen umgebrochen, muss aber in einer Zeile der Datei stehen):
define command { command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$ }
Nun muss man nur noch Nagios neu starten, und die Überwachung des Windows-Hosts sollte funktionieren:
service nagios restart
Es ist z.B. auch möglich, folgende Dienste zu überwachen:
- Speicherbelegung
- CPU-Auslastung
- Plattenbelegung
- Zustände von Diensten
- laufende Prozesse