Sven Velt team(ix) GmbH sv@teamix.net
Ü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 Slide 2
(Benötigte) Bausteine Nagios Framework Übernimmt Verwaltung, z.b. Scheduling von Checks, Benachrichtigung Web-Frontend Nagios-Plugins Eigentliche Checks Add-Ons (optional) Slide 3
Packages vs. Source Packages Schnell keine Fehler beim Compilieren Updates durch Distributor Source Auf System abstimmbar Neue Versionen verfügbar Ahnung vom Hintergrund Slide 4
Packages SUSE nagios nagios-(www cgi) nagios-plugins Debian / Ubuntu nagios3 nagios-plugins /etc/nagios/ /etc/nagios3/ /usr/lib/nagios/plugins/ Slide 5
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 fullinstall make install-commandmode make install-webconf make install-config Slide 6
Sources (II) Pfade (ohne --prefix= -Angabe beim configure-aufruf): /usr/local/nagios/etc/ /usr/local/nagios/libexec/ Slide 7
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 Slide 8
Web-Frontend Zugriff Einfacher Start: nagiosadmin darf alles Bereits vorbereitet authorized_for...= -Zeilen in cgi.cfg enthalten nagiosadmin Wir schaffen bzw. haben einen Super-User, der alles darf use_authentication = 1 Es ginge theoretisch auch anonym Slide 9
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! Slide 10
nagios.cfg Objects (II) Persönliche(!) Empfehlung: Ein cfg_dir für alle Konfigurationsdateien Unterteilung per Unterverzeichnisse das aber durchaus strikt und viel je Standort, Hersteller, Funktion,... Evtl. einzelne, zusätzliche Files oder Directories z.b. Debian: cfg_dir=/etc/nagios-plugins/config Slide 11
Objects - Überblick Hosts & Hostgroups Services & Servicegroups Contacts & Contactgroups Timeperiods Commands (Host-/Service-Escalations) (Host-/Service-Dependencies) Slide 12
Konfiguration - Überblick Slide 13
Konfiguration - Verwirrung Slide 14
Die Objekte im Einzelnen Hosts - Einzelne Hosts/Rechner Services - Dienste Contacts - Kontakte Timeperiods - Zeitspannen Commands - Kommandos Slide 15
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 Slide 16
timeperiods Vordefiniert (timeperiods.cfg): 24x7 workinghours none us-holidays (!) 24x7_sans_holidays (!) Slide 17
commands notify Vordefiniert (commands.cfg): notify-host-by-email notify-service-by-email Änderungsbedarf! Prinzip: printf... mail Slide 18
contacts Vordefiniert (contacts.cfg): nagiosadmin (AUA!) Bekommt seine Rechte aus cgi.cfg Besser: Personen/Accounts als Contacts ( sven, svelt,...) Teams als Contacgroups ( linux-admins, netapp,...) Sehen ihre Hosts und Services Slide 19
commands check Vordefiniert (commands.cfg), u.a.: check-host-alive check_ping check_local_(disk users procs) check_local_(load swap) check_ssh check_http... Muss/Wird ergänzt werden Slide 20
hosts Vordefiniert (localhost.cfg): localhost Nicht aktviert (windows.cfg, printer.cfg, switch.cfg): hplj2605dn linksys-srw224p winserver Slide 21
services Vordefiniert (localhost.cfg): PING Root Partition Current Users Total Processes Current Load Swap Usage SSH HTTP Slide 22
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 Slide 23
WICHTIG! Konfiguration testen /.../nagios -v /.../nagios.cfg Fehler kommen schon vor dem Neustart ans Licht! Nach jeder Änderung an der Konfiguration ausführen! Slide 24
Time saving tricks Services host_name fasst mehre Hostnamen hostgroup_name ganzen Gruppen beides auch gleichzeitig! Slide 25
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 Slide 26
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 Slide 27
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 Slide 28
Externe Steuerung Externe Steuerung (Web-Frontend!) bzw. Verarbeitung von passiven Checks In nagios.cfg anpassen: check_external_commands=1 log_external_commands=1 command_file=/.../nagios.cmd ACHTUNG! ls -l /.../nagios.cmd Apache muss in die passende Gruppe: usermod -G GRUPPE www-data/wwwrun Slide 29
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 Slide 30
Benachrichtigungen Slide 31
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 oder einer SQL-DB hat :-) Wenn's sein muss, tut auch 'ne ADS :-( Slide 32
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 Slide 33
NRPE - Überblick Nagios Remote Plugin Executor NRPE-Daemon läuft auf zu überwachenden Maschine check_nrpe wird auf dem Nagios-Server aufgerufen Slide 34
NRPE-Daemon Typische Stolperfallen: allowed_hosts in nrpe.cfg checken! Neustart nach Änderungen an Config! Kommando nicht eingetragen Allgemein: /var/log/(daemon messages syslog) überprüfen! Da steht meistens was schief ging! Slide 35
check_nrpe Aufruf: check_nrpe -H HOST -c COMMAND COMMAND wie es in der nrpe.cfg eingetragen ist! Ähnlich wie commands.cfg! Slide 36
Wunschkonzert! Ich warte auf Vorschläge, Fragen, Unklarheiten,... ;-) Slide 37