Posts Tagged ‘Nagios’

Big Brother im eigenen Netzwerk

Posted in 8.04, Monitoring, Ubuntu on November 18th, 2009 by Patrick – 9 Comments

Nein, hier geht es nicht um die steigende Überwachung durch Vater Staat, hier geht es um das Monitoring von Servern, Computern, Diensten und vieles mehr.

Ich habe vor längerer Zeit mal Nagios, ein sehr komplexes Überwachungstool, aufgesetzt, aber aus Zeitmangel habe ich mich nie wirklich mit der raffinierten, aber doch sehr komplizierten Konfiguration beschäftigt.

Nun aber ist mir das ganze wieder in die Hände gefallen und ich habe mich mal aufgemacht und wollte Nagios nicht nur zum laufen bringen, sondern auch richtig konfigurieren und überwachen lassen.

Im uu.de-Wiki, welches sonst meistens meine erste Anlaufstelle für so Fragen ist, gibt es leider nur ein unfertiger Artikel. (Wenn ich die Zeit finde, werde ich mich da dann mal ran machen) Also habe ich mir meine Informationen selbst zusammengesucht.

Die Installation von Nagios ist relativ einfach. Nagios2 gibt es sogar in den Paketquellen, Nagios3 lässt sich problemlos selbst kompilieren.

Für mich reicht aber Nagios2 voll und ganz und somit habe ich mittels der Paketverwaltung mal die Pakete installiert:

sudo apt-get install apache2, nagios2, nagios2-common, nagios-plugins

Für die Installation war es das eigentlich schon! Doch ganz so einfach ist es dann doch wieder nicht. :)
Unter http://localhost/nagios2 ist jetzt schon die Weboberfläche zu sehen. Jedoch fehlt noch die gesamte Konfiguration, also weiter im Konzept.

Da mein Webinterface natürlich nicht für jeden Zugänglich sein soll, habe ich mir noch ein Passwortschutz angelegt:

htpasswd -bc /etc/nagios2/htpasswd.users

Nun gilt es noch den Apache neu zu starteten, damit die Änderung auch wirksam werden:

sudo /etc/init.d/apache2 restart

Nun sollte man bereits beim Aufrufen von Nagios, immer noch unter http://localhost/nagios2, nach einem Benutzernamen und einem Passwort gefragt werden.

Nun geht es los mit der Konfiguration.
Dabei sollte ich vielleicht noch ein paar Worte über das Konzept verlieren.
Wenn man den Aufbau mal verstanden hat ist es eigentlich gar nicht mehr so kompliziert :)

Für meine Server habe ich ein neuer Ordner angelegt:

sudo mkdir /etc/nagios2/meinnetzwerk/
cd /etc/nagios2/meinnetzwerk/

Darin werden nun alle Dateien angelegt.
Die wichtigsten Dateien, auf welche Nagios zurückgreift, sind hosts.cfg, templates.cfg, services.cfg und hostgroups.cfg.

Besonders die templates.cfg spielt in grösseren Netzwerken mit vielen Servern eine besondere Rolle. Doch dazu später.

Wir beginnen erstmal mit dem formellen Teil. Die Datei contacts.cfg birgt den Namen und die eMail-Adresse des Systemadministrators.
Dazu erstellen wir die Datei erst neu:

sudo touch contacts.cfg

Diese füllen wir mit folgendem Inhalt:

define contact{
contact_name administrator
alias DEIN-NAME
service_notification_period 24×7
host_notification_period 24×7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email DEINE@EMAIL.ADRESSE
}

define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members administrator
}

Nun können wir unsere ersten Server hinzufügen.
Diese werden in der hosts.cfg aufgelistet. Doch einfach die IP-Adressen einzutragen wäre natürlich viel zu einfach :D

define host{
host_name SERVERNAME
alias BESCHREIBUNG
address IP.ADRESSE.HIER.EINGEBEN
use generic-host
}

Hier muss für jeden Host ein neuer “define host{}” angelegt werden.

Bis auf use sind eigentlich alle Punkte selbst erklärend. Und damit kommen wir auch schon zum gut durchdachten Konzept von Nagios.
Wir könnten jede einzelne Option wie Prüfintervalle, verwendete Kommandos, Benachrichtigungen, Maximale Überprüfungen etc für jeden Host einzelne definieren. Das wären dann pro Host alleine schon 40 Zeilen.
Nun kann man sich mal überlegen, was passiert wenn ich 20 oder sogar 100 Server eintragen und überwachen will – die Komplexität steigt und es wird schnell mal unübersichtlich.

read more »