Ausfälle erkennen mit Nagios
Mit Hilfe von Nagios können Rechner und deren Dienste als auch fast beliebige Netzwerkgeräte überwacht werden.
Typischerweise werden Server mit Unix/Linux- und MS-Windows oder auch Router und Switche überprüft.
Nagios kann helfen, Probleme rechtzeitig zu erkennen. Benachrichtigungen können je nach Ausfall an die jeweils verantwortlichen gesendet werden, ob nun als Email, Pager oder SMS. Dies kann dazu führen, Ausfälle zu vermeiden oder zu verkürzen.
Homepage: http://www.nagios.org/
Inhaltsverzeichnis
Überblick
Der Nagios-Daemon startet periodische Tests auf entfernte Rechner, Netzwerkgeräte und Daemonen/Dienste.
Diese Tests geschehen über externe Plugins, welche eine Status-Information des angefragten Dienstes/Rechners an Nagios zurück geben. Die abfragenden Plugins können relativ einfach in Shell, Perl, C oder anderen Sprachen erstellt oder angepasst werden.
Auf aktuelle Status-Informationen, historische Vorkommnisse und Statistiken kann per Web-Browser zugegriffen werden.
Installieren von Nagios
Voraussetzungen
Auf dem Linux müssen folgende Pakete für Nagios und dessen Plugins installiert sein: Der Apache, gcc, gd-libs, openssl-libs, gnutls-libs, samba-client, ntpdate, net-snmp und das Perlmodul Net::SNMP.
Für CentOS 5 oder RedHat 5 ist dafür folgendes aufzurufen:
yum install httpd gcc gd-devel gd openssl-devel gnutls-devel samba-client ntpd net-snmp net-snmp-utils perl -MCPAN -e 'install Net::SNMP'
Installation
Die neueste Version von Nagios herunter laden von http://www.nagios.org/download und ablegen unter /usr/local/src/.
Sourcen auspacken unter /usr/local/src mit:
cd /usr/local/src tar xvzf nagios-3.05.tar.gz cd nagios-3.05
Den User nagios anlegen, unter welchem der Nagios-Daemon laufen soll:
adduser -m nagios passwd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd apache
Das Hauptverzeichnis für Nagios anlegen und Rechte setzen:
mkdir /usr/local/nagios chown nagios.nagios /usr/local/nagios
Ermitteln des Users, unter dem der Apache läuft. Die Apache-Konfigurationsdatei ist zu durchsuchen, z.B. für RedHat/CentOS mit
grep "^User" /etc/httpd/conf/httpd.conf
Gruppe anlegen, den ermittelten Apache-User aus dem obigen grep ist in der 2. Zeile einzugeben (hier apache):
/usr/sbin/groupadd nagcmd /usr/sbin/usermod -G nagcmd apache /usr/sbin/usermod -G nagcmd nagios
Nun endlich kompilieren und installieren von Nagios mit:
./configure --with-command-group=nagcmd make all make install make install-init make install-config make install-commandmode make install-webconf
Installieren der Default-Plugins
Download der aktuellen Plugins in das /usr/local/src/ Verzeichnis.
Alles wird erledigt mit folgenden Kommandos:
tar xvzf nagios-plugins-1.4.10.tar.gz cd nagios-plugins-1.4.10 ./configure make make install
Apache und CGI konfigurieren
Ab Nagios 2.10 ist eine Konfiguration des Apache selbst nicht mehr notwendig, wenn wie oben beschrieben bei der Installation make install-webconf ausgeführt wurde.
Trotzdem kann auf die URL http://localhost/nagios noch nicht zugegriffen werden.
Um das zu ermöglichen, sollte ein User nagiosadmin mit Passwort angelegt werden mit:
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Nun kommt man zwar auf die Seite, kann aber nur die Startseite und die Dokumentation sehen. Das liegt u.a. an fehlenden Berechtigungen.
Es sind folgende Zeilen in der Datei /usr/local/nagios/etc/cgi.cfg einzukommentieren und anzupassen:
authorized_for_all_services=nagiosadmin authorized_for_all_hosts=nagiosadmin
Testen und Starten
Nagios wird auf korrekte Konfiguration geprüft mit:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Alles scheint soweit OK, wenn die letzten Zeilen der Ausgabe so aussehen:
Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Nun sollte der Daemon gestartet werden können mit:
/etc/init.d/httpd restart /etc/init.d/nagios start
Nun sollte http://localhost/nagios aufrufbar sein. Da noch keine zu überwachende Hosts/Services eingebunden sind, sind nur einige Daten über den Nagios-Server selbst zu sehen.
Um den Start zu automatisieren, sind Softlinks zu erstellen wie die folgenden:
ln -s /etc/init.d/nagios /etc/rc3.d/S81nagios ln -s /etc/init.d/nagios /etc/rc5.d/S81nagios ln -s /etc/init.d/nagios /etc/rc3.d/K01nagios ln -s /etc/init.d/nagios /etc/rc5.d/K01nagios
Konfiguration
Es sind Beispielkonfigurationsdateien abgelegt unter /usr/local/nagios/etc. Nagios verwendet für Konfigurations-Dateien als Endung .cfg
nagios.cfg
Dies ist die Hauptkonfigurations-Datei.
Zwei Anpassungen sollten hier zunächst gemacht werden. Zum einen wird hier definiert, welche weiteren Dateien eingebunden werden. Die Schlüsselwörter dazu sind cfg_file und cfg_dir. Bei cfg_dir werden alle Unterverzeichnisse mit eingelesen. Damit kann der Übersicht halber eine Ordnerstruktur angelegt werden wie z.B.:
/usr/local/nagios/etc/server | |--/usr/local/nagios/etc/server/windows | |--/usr/local/nagios/etc/server/linux
Beispiel:
cfg_dir=/usr/local/nagios/etc/server cfg_dir=/usr/local/nagios/etc/router
Als weiteres sollte das Datum-Format angepasst werden:
date_format=euro
Objekte einrichten
Nagios nennt PCs (host), Dienste (service), PC-Gruppen (hostgroup), Kontakte (contact), Befehle (command) etc. Objekte, die definiert werden müssen.
Dies geschieht über Einträge wie diesem:
define host { name testserver Schlüsselwort2 Wert2 }
Um die Übersicht zu behalten, ist es dringend anzuraten, sich die Struktur der Definitionen der Objekte genau zu überlegen. Theoretisch kann alles in eine Datei geschrieben werden, übersichtlicher scheint aber eine Untergliederung der Dateien in Unterverzeichnisse so wie oben beschrieben.
Über Vererbung kann Schreibarbeit reduziert werden. Darüber können Definitionen, welche für viele Objekte zutreffen, in einer Definition beschrieben werden und können dann mit einem use eingebunden werden, siehe /usr/local/nagios/etc/templates.cfg.
Interessante Links oder Artikel in Zeitungen
Größtenteils deutsche Dokumentation
Nagios wurde besprochen in:
Umfassende Doku vom Heise-Verlag unter: Heise-Netze 11/2006
Umfassende Doku der Pinguin-User-Group unter: http://www.pug.org/index.php/Nagios
Plugins selbst schreiben Linux-Magazin 05/2006
Nagios und SNMP unter Linux-Magazin 03/2006
Schöne PDF-Doku opengeneration
Doku in PDF-Format: Linux-Magazin 03/2003
- iX 12/2003
Netsaint wurde im Linux-Magazin 09/2002 besprochen:
Live-CD basierend auf Knoppix 4.0x unter
Alternative
Wem nagios zu gross und zu komplex ist, oder wer keine Benachrichtigungen braucht, der soll sich gerne mal munin anschauen.