2. Slide 2
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Über mich
● Linux seit > 10 Jahren
● 1995 - 2001 Internet-Provider
– Verantwortlich für Technik
– 24/7 muss alles laufen
– Monitoring notwendig
– ... mehr als einmal nachts aufgestanden
● Seit 2002 bei team(ix) GmbH
– Schulungen, u. a. Nagios, Apache, Linux
– Projekte, größtenteils Nagios
3. Slide 3
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
(Benötigte) Bausteine
● Nagios
– „Framework“
– Übernimmt Verwaltung, z.B. Scheduling von
Checks, Benachrichtigung
– Web-Frontend
● Nagios-Plugins
– Eigentliche Checks
● Add-Ons (optional)
4. Slide 4
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Packages vs. Source
Packages
● Schnell
● keine Fehler beim
Compilieren
● Updates durch
Distributor
Source
● Auf System
abstimmbar
● Neue Versionen
verfügbar
● Ahnung vom
Hintergrund
6. Slide 6
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Sources (I)
● Voraussetzungen beachten!
(„Quickstart Guide“ in der Doku)
● Nagios und Nagios-Plugins compilieren:
– ./configure && make all
– su -c “make install“
– Weitere Make-Targets:
● make install-init
● make install-commandmode
● make install-webconf
● make install-config
}make fullinstall
7. Slide 7
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Sources (II)
● Pfade (ohne „--prefix=“-Angabe beim
configure-Aufruf):
– /usr/local/nagios/etc/
– /usr/local/nagios/libexec/
8. Slide 8
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Apache Konfiguration
● Meist in /etc/apache2/conf.d/
nagios.conf zu finden
● Einbindung des Web-Frontends
● Absicherung per Username/Passwort
– „AuthUserFile“ gibt an, wo diese
gespeichert sind
– wichtig für den Start: Ein Eintrag für
„nagiosadmin“
– Wenn nicht vorhanden:
htpasswd(2) FILE nagiosadmin
9. Slide 9
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Web-Frontend Zugriff
● Einfacher Start: „nagiosadmin“ darf alles
● Dazu alle „authorized_for...=“-Zeilen
mit „nagiosadmin“ in cgi.cfg versehen
– Wahrscheinlich nur Kommentarzeichen
entfernen
– Wir schaffen einen Super-User, der alles darf
● „use_authentication = 1“
10. Slide 10
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
nagios.cfg – Objects (I)
● Definition von „Objects“ in eigenen
Dateien
● Organisation der Dateien ist dem Admin
überlassen
● Einbindung in Nagios
– via cfg_file=
● Einzelne Dateien direkt angegen
– via cfg_dir=
● Ein Verzeichnis rekursiv einlesen (Dateien müssen
auf „*.cfg“ enden!
11. Slide 11
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
nagios.cfg – Objects (II)
● Persönliche(!) Empfehlung:
– Ein „cfg_dir“ für alle Konfigurationsdateien
– Unterteilung per Unterverzeichnisse
● das aber durchaus strikt und viel
– Evtl. einzelne, zusätzliche Files oder
Directories
● z.B. Debian:
„cfg_dir=/etc/nagios-plugins/config“
15. Slide 15
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Die Objekte im Einzelnen
● Hosts - Einzelne Hosts/Rechner
● Services - Dienste
● Contacts - Kontakte
● Timeperiods - Zeitspannen
● Commands - Kommandos
16. Slide 16
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Templates
● „Da tippe ich mich ja zu Tode!“
● NEIN!
– Lösung: Templates
– Wiederkehrendes in Templates auslagern
– Verschieden Templates für verschieden
„Gruppen“
– Bei allen Objects möglich, nicht überall
sinnvoll
– Datei „templates.cfg“
21. Slide 21
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
hosts
● Vordefiniert (localhost.cfg):
– localhost
● Nicht aktviert (windows.cfg,
printer.cfg, switch.cfg):
– hplj2605dn
– linksys-srw224p
– winserver
22. Slide 22
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
services
● Vordefiniert (localhost.cfg):
– PING
– Root Partition
– Current Users
– Total Processes
– Current Load
– Swap Usage
– SSH
– HTTP
23. Slide 23
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Templates (Wdh.)
● „Da tippe ich mich ja zu Tode!“
● NEIN!
– Lösung: Templates
– Wiederkehrendes in Templates auslagern
– Verschieden Templates für verschieden
„Gruppen“
– Bei allen Objects möglich, nicht überall
sinnvoll
– Datei „templates.cfg“
24. Slide 24
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Konfiguration testen
● WICHTIG!
– /.../nagios -v /.../nagios.cfg
– Fehler kommen schon vor dem Neustart ans
Licht!
– Nach jeder Änderung an der Konfiguration
ausführen!
25. Slide 25
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Time saving tricks
● Services
– host_name fasst mehre Hostnamen
– hostgroup_name ganzen Gruppen
– beides auch gleichzeitig!
26. Slide 26
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Was können Plugins?
● Alle Plugins besitzen eine Hilfe:
– check_* --help
● Beispiel: check_http
– Öffnet HTTP-Connection und wertet Rückgabe
aus
● -H localhost : Angabe des Rechners
● -m 5000:10000 : Seitengröße in Bytes
● -s Linux : Textstelle im Content
● --ssl : Verbindung per HTTPS/SSL
● --ssl -C 28 : SSL-Zertifiakt prüfen
27. Slide 27
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Plugin-Schnittstelle
● Plugin wird wie ein Programm/Skript
aufgerufen, Parameter werden übergeben
● Plugin gibt zurück:
– Return-Code: 0 (OK), 1 (WARN), 2 (CRIT),
3 (UNKNOWN)
● siehe auch „echo $?“ nach dem Aufruf
● oder PS1='$? u@h:w > '
– Eine Zeile Text
● „Output“: HTTP OK HTTP/1.1 200 OK – ...
● „Performance Data“: time=0.38s;;;0.00
28. Slide 28
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
SOFT oder HARD?
● Nagios unterscheidet zwischen
– Es könnte ein Fehler sein (SOFT)
– Es ist ein Fehler (HARD)
● Jeder Host/Service wird mehrfach getestet
– max_check_attempts
● Erst wenn diese Anzahl erreicht ist, nimmt
Nagios an, dass wirklich ein Fehler
vorliegt
– check_interval +
(max_check_attempts - 1) * retry_interval
29. Slide 29
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Externe Steuerung
● Externe Steuerung (Web-Frontend!) bzw.
Verarbeitung von passiven Checks
● In nagios.cfg anpassen:
– check_external_commands=1
– log_external_commands=1
– external_command_file=/.../nagios.cmd
● ACHTUNG! „ls -l /.../nagios.cmd“
– Apache muss in die passende Gruppe:
● usermod -G GRUPPE www-data/wwwrun
30. Slide 30
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Netzwerkhierarchie
● Host können „parents“ haben
– Parent = Nächste(r) „Router“ auf dem Weg
zum Nagios-Server
– Dadurch Abbild des Netzwerks bzw. der
-Struktur im Nagios (siehe auch „Status-
Map“)
● Unterscheidung
– DOWN: Router ist kaputt
– UNREACHABLE: Die Rechner hinter dem
Router
32. Slide 32
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Contacts
● Nur, wer Contact für einen Host/Service
ist, sieht diesen auch im Web-Frontend
● „nagiosadmin“ als Super-User zur
Kontrolle
– d.h. aber auch, alle Contacts müssen für den
Apache mit Passwort gepflegt werden!
– Wohl dem, der Apache 2.2 und alle User im
LDAP hat :-)
Wenn's sein muss, tut auch 'ne ADS :-(
33. Slide 33
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Notify
● Contact bekommt
– service_notify_command
– host_notify_command
● „Alles, was von der Kommandozeile
machbar ist“, geht:
– E-Mail, SMS, Instant Messenger, IRC(!)
– Anruf
– Fax
– SQL-Datenbank
34. Slide 34
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
NRPE - Überblick
● Nagios Remote Plugin Executor
● NRPE-Daemon
– läuft auf zu überwachenden Maschine
● check_nrpe
– wird auf dem Nagios-Server aufgerufen
35. Slide 35
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
NRPE-Daemon
● Typische Stolperfallen:
– „allowed_hosts“ in nrpe.cfg checken!
– Neustart nach Änderungen an Config!
– Kommando nicht eingetragen
● Allgemein:
– /var/log/... überprüfen! Da steht meistens
was schief geht
36. Slide 36
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
check_nrpe
● Aufruf:
– check_nrpe -H HOST -c COMMAND
– „COMMAND“ wie es in der nrpe.cfg
eingetragen ist!
Ähnliche wie commands.cfg!
37. Slide 37
2008-09-11
Nagios für Einsteiger
Sven Velt, team(ix) GmbH
Wunschkonzert!
Ich warte auf Vorschläge,
Fragen, Unklarheiten, ...
;-)