Wird eine Nagios Installation zu groß oder verhindert die Netzwerk-Topologie den Zugriff auf bestimmte Komponenten, wird es erforderlich, weitere Nagios-Instanzen einzusetzen. Um nun nicht mehrere Instanzen beobachten zu müssen, gibt es in Nagios die Möglichkeit, die Ergebnisse der Servicechecks über eine Schnittstelle an eine zentrale Instanz weiterzuleiten. Dieser Workshop soll zeigen, wie man die Konfiguration für eine verteilte Umgebung plant, die Installation durchführt und optimiert.
OSMC 2010 | Verteiltes Monitoring by Martin Hefter
1. Verteiltes monitoring mit Nagios 3.x
Planung, Installation, Optimierung
Martin Hefter
Schenker Deutschland AG
OSMC 06. - 07. Oktober 2010
2. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Zur Person
Erfahrungen mit Nagios seit 2004
Planung und Umsetzung der Nagios-¨Uberwachung f¨ur das Hess.
Landesamt f¨ur Bodenmanagement und Geoinformation (fr¨uher
Hess. Landesvermessungsamt)
Weitere kleine Projekte und Diplomarbeit zum Thema
”
¨Uberwachen von Gesch¨aftsprozessen mit Nagios“
Nagios-Plugins
Pluginpack zur ¨Uberwachung von Fujitsu(-Siemens-)Hardware
check power fsc
check fans fsc
check temp fsc
check systemhealth fsc
check raid fsc
Plugin zur ¨Uberwachung von USV-Systemen der Firma APC
check ups apc
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 2 von 28
3. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
¨Uber diesen Workshop
Gr¨unde f¨ur verteiltes Monitoring
Gr¨oße der Nagios-Installationen
Netzwerk-Topologie (Zentrale und Außenstellen)
Sicherheits¨uberlegungen (DMZ)
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 3 von 28
5. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Szenario f¨ur diesen Workshop
Fallbeispiel
Zentrale in M¨unchen mit einer Außenstelle in Hamburg
Anbindung ¨uber eine 5 Mbit/s Standleitung
Zahlreiche Business-Server verteilt auf beide Standorte
IT-Service zentral in M¨unchen
Ziel
¨Uberwachung der Server an beiden Standorten ¨uber eine
Ober߬ache.
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 5 von 28
6. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Szenario f¨ur diesen Workshop
Fallbeispiel
Zentrale in M¨unchen mit einer Außenstelle in Hamburg
Anbindung ¨uber eine 5 Mbit/s Standleitung
Zahlreiche Business-Server verteilt auf beide Standorte
IT-Service zentral in M¨unchen
Ziel
¨Uberwachung der Server an beiden Standorten ¨uber eine
Ober߬ache.
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 5 von 28
7. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Serverkonfiguration und Aufgaben
M¨unchen
¨Uberwachen der Server in M¨unchen
Entgegennehmen der Testergebnisse aus Hamburg
Hostchecks
Webober߬ache
Benachrichtigung
Hamburg
¨Uberwachung der Server in Hamburg
Melden der Testergebnisse nach M¨unchen
Ober߬ache und Benachrichtigung nicht erforderlich
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 6 von 28
8. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Funktionsschema
Quelle: W. Barth, Nagios System und Netzwerk-Monitoring, 2008
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 7 von 28
9. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Planung der Installation
Verzeichnisstruktur
global - Allgemeing¨ultige Konfigurationen.
local - Definitionen die nur lokal g¨ultig sind.
templates - Templates f¨ur Host- und Service-Tests.
sites - Konfiguration f¨ur die dezentralen Server.
sites/hamburg - Konfiguration f¨ur den Server in
Hamburg.
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 8 von 28
10. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Vorbereitung
Beide V-Server
Setzen von Datum und Uhrzeit
date -s
”
10/06/2010 14:00:00“
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 9 von 28
11. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Kompilieren von NSCA
Nagios M¨unchen
/usr/local/src/nsca-2.7.2
1 ./configure
2 make all
Hinweis
Damit NSCA seine Daten verschl¨usselt ¨ubertragen kann, ist
die MCRYPT library zu installieren.
apt-get install libmcrypt-dev
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 10 von 28
12. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installieren von NSCA
Nagios M¨unchen
/usr/local/src/nsca/src
1 cp nsca /usr/local/nagios/bin
2 scp send nsca root@hamburg:/usr/local/nagios/bin
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 11 von 28
13. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installieren von NSCA
Nagios M¨unchen
/usr/local/src/nsca/src
1 cp nsca /usr/local/nagios/bin
2 scp send nsca root@hamburg:/usr/local/nagios/bin
/usr/local/src/nsca/sample-config
1 cp nsca.cfg /usr/local/nagios/etc
2 chown nagios:nagios /usr/local/nagios/etc/nsca.cfg
3 scp send nsca.cfg root@hamburg:/usr/local/nagios/etc
4 cp nsca.xinetd /etc/xinetd.d/nsca
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 11 von 28
14. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
NSCA Konfigurieren
Nagios M¨unchen
/etc/xinet.d/nsca
1 /etc/init.d/xinetd stop
2 vi /etc/xinet.d/nsca
3 Zeile only_from = 127.0.0.1 l¨oschen
4 /etc/init.d/xinetd start
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 12 von 28
15. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
NSCA Konfigurieren
Nagios M¨unchen
/etc/xinet.d/nsca
1 /etc/init.d/xinetd stop
2 vi /etc/xinet.d/nsca
3 Zeile only_from = 127.0.0.1 l¨oschen
4 /etc/init.d/xinetd start
Hinweis: tail /var/log/syslog
xinetd[4773]: xinetd Version 2.3.14 started
xinetd[4773]: Started working: 1 available
service
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 12 von 28
16. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
NSCA Konfigurieren
Nagios M¨unchen
/usr/local/nagios/etc/nsca.cfg
1 vi /usr/local/nagios/etc/nsca.cfg
2 password=Geheim
3 decryption_method=2
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 12 von 28
17. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
NSCA Konfigurieren
Nagios M¨unchen
/usr/local/nagios/etc/nsca.cfg
1 vi /usr/local/nagios/etc/nsca.cfg
2 password=Geheim
3 decryption_method=2
Nagios Hamburg
/usr/local/nagios/etc/send nsca.cfg
1 chown nagios:nagios /usr/local/nagios/etc/send nsca.cfg
2 vi /usr/local/nagios/etc/send nsca.cfg
3 password=Geheim
4 encryption_method=2
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 12 von 28
18. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Testen der Verbindung
Nagios Hamburg
/usr/local/nagios/libexec
1 ./test nsca muenchen
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 13 von 28
19. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Testen der Verbindung
Nagios Hamburg
/usr/local/nagios/libexec
1 ./test nsca muenchen
Antwort
1 data packet(s) sent to host successfully.
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 13 von 28
20. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
command definieren
Nagios Hamburg
/usr/local/nagios/etc/global/distributed.cfg
define command{
command_name submit_service_check
command_line $USER2$/ submit_service_check
"$HOSTNAME$" " $SERVICEDESC$ "
" $SERVICESTATEID$ "
" $SERVICEOUTPUT$ | $SERVICEPERFDATA$ "
}
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 14 von 28
21. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Skript submit service check
Nagios Hamburg
/usr/local/nagios/libexec/eventhandlers/submit service check
#!/bin/bash
# Skript submit_service_check
PRINTF="/usr/bin/printf"
NAGIOS_SERVER ="192.168.0.2"
CMD="/usr/local/nagios/bin/send_nsca"
CFG="/usr/local/nagios/etc/send_nsca.cfg"
HOST=$1
SRV=$2
RESULT=$3
OUTPUT=$4
$PRINTF "%b" "$HOSTt$SRVt$RESULTt$OUTPUTn" |
$CMD -H $NAGIOS_SERVER -c $CFG
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 15 von 28
22. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Nagios konfigurieren
Nagios Hamburg
/usr/local/nagios/etc/nagios.cfg
1 vi /usr/local/nagios/etc/nagios.cfg
2 obsess_over_services=1
3 ocsp_command=submit_service_check
4 enable_notification=0
5 /etc/init.d/nagios restart
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 16 von 28
23. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Nagios konfigurieren
Nagios M¨unchen
/usr/local/nagios/etc/nagios.cfg
1 vi /usr/local/nagios/etc/nagios.cfg
2 check_external_commands=1
3 accept_passive_service_checks=1
4 /etc/init.d/nagios restart
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 16 von 28
24. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Nagios konfigurieren
Nagios M¨unchen
/usr/local/nagios/etc/nagios.cfg
1 vi /usr/local/nagios/etc/nagios.cfg
2 check_external_commands=1
3 accept_passive_service_checks=1
4 /etc/init.d/nagios restart
Hinweis
An dieser Stelle ist Nagios in der Lage, passive checks zu
versenden und zu empfangen.
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 16 von 28
25. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Templates f¨ur Services
Template service hamburg in M¨unchen
/usr/local/nagios/etc/templates/services.cfg
name service-hamburg
active checks enabled 0
passive checks enabled 1
obsess over service 0
Template service hamburg in Hamburg
/usr/local/nagios/etc/templates/services.cfg
name service-hamburg
active checks enable 1
passive checks enable 0
obsess over service 1
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 17 von 28
26. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Service Definitionen
Nagios M¨unchen
/usr/local/nagios/etc/sites/hamburg/services.cfg
define service{
use service -hamburg
host_name Nagios -HH
service_description PING
check_command check_ping !100.0 ,20%!500.0 ,60%
}
Nagios Hamburg
/usr/local/nagios/etc/sites/hamburg/services.cfg
define service{
use service -hamburg
host_name Nagios -HH
service_description PING
check_command check_ping !100.0 ,20%!500.0 ,60%
}
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 18 von 28
27. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Service Definitionen
Nagios M¨unchen
/usr/local/nagios/etc/sites/hamburg/services.cfg
define service{
use service -hamburg
host_name Nagios -HH
service_description PING
check_command check_ping !100.0 ,20%!500.0 ,60%
}
Nagios Hamburg
/usr/local/nagios/etc/sites/hamburg/services.cfg
define service{
use service -hamburg
host_name Nagios -HH
service_description PING
check_command check_ping !100.0 ,20%!500.0 ,60%
}
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 18 von 28
28. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Nagios neustarten
Nagios M¨unchen
/etc/initd.d/nagios
/etc/init.d/nagios restart
Nagios Hamburg
/etc/init.d/nagios
/etc/init.d/nagios restart
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 19 von 28
29. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Pause
Kurze Pause
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 20 von 28
30. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Alternativen zu NSCA
Schwachstellen der eben gezeigten L¨osung
Nach jedem Check wird send nsca aufgerufen
Jeder Datensatz wird einzeln ¨ubertragen
Nagios ist f¨ur die Dauer der Daten¨ubertragung blockiert
L¨osungen
ocsp sweeper
Siehe hierzu meinen Artikel im Nagios Wiki:
HowTo → ocsp_sweeper
Nag(ix)SC
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 21 von 28
31. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Alternativen zu NSCA
Schwachstellen der eben gezeigten L¨osung
Nach jedem Check wird send nsca aufgerufen
Jeder Datensatz wird einzeln ¨ubertragen
Nagios ist f¨ur die Dauer der Daten¨ubertragung blockiert
L¨osungen
ocsp sweeper
Siehe hierzu meinen Artikel im Nagios Wiki:
HowTo → ocsp_sweeper
Nag(ix)SC
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 21 von 28
32. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Alternativen zu NSCA
Schwachstellen der eben gezeigten L¨osung
Nach jedem Check wird send nsca aufgerufen
Jeder Datensatz wird einzeln ¨ubertragen
Nagios ist f¨ur die Dauer der Daten¨ubertragung blockiert
L¨osungen
ocsp sweeper
Siehe hierzu meinen Artikel im Nagios Wiki:
HowTo → ocsp_sweeper
Nag(ix)SC
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 21 von 28
33. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Alternativen zu NSCA
Schwachstellen der eben gezeigten L¨osung
Nach jedem Check wird send nsca aufgerufen
Jeder Datensatz wird einzeln ¨ubertragen
Nagios ist f¨ur die Dauer der Daten¨ubertragung blockiert
L¨osungen
ocsp sweeper
Siehe hierzu meinen Artikel im Nagios Wiki:
HowTo → ocsp_sweeper
Nag(ix)SC
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 21 von 28
34. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Nag(ix)SC
Nag(ix)SC
Entwickelt von Sven Velt (www.velt.de)
Alternative zu NSCA und NRPE
Sammelt mehere Eintr¨age lokal in Textfiles
¨Ubertr¨agt die Datens¨atze gesammelt per HTTP an den
Hauptserver
Nagios wird unabh¨anig von der Daten¨ubertragung
Hinweis
Nag(ix)SC befindet sich zurzeit (Okt. 2010) noch in der
Entwicklung und ist somit nur bedingt f¨ur den produktiven
Einsatz geeignet.
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 22 von 28
35. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Nag(ix)SC
Nag(ix)SC
Entwickelt von Sven Velt (www.velt.de)
Alternative zu NSCA und NRPE
Sammelt mehere Eintr¨age lokal in Textfiles
¨Ubertr¨agt die Datens¨atze gesammelt per HTTP an den
Hauptserver
Nagios wird unabh¨anig von der Daten¨ubertragung
Hinweis
Nag(ix)SC befindet sich zurzeit (Okt. 2010) noch in der
Entwicklung und ist somit nur bedingt f¨ur den produktiven
Einsatz geeignet.
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 22 von 28
36. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios M¨unchen
Abh¨angigkeiten
Nag(ix)SC nutzt Funktionen von libxml2.
apt-get install python-libxml2
/usr/local/src/nagixsc
1 mkdir -p /usr/local/nagios/nagixsc/etc
2 cp -r nagixsc /usr/local/nagios/nagixsc
3 cp nagixsc http2nagios.py /usr/local/nagios/nagixsc
4 cp sample-configs/http2nagios.cfg /usr/local/nagios/nagixsc/etc
5 cp init.d/nagixsc http2nagios /etc/init.d
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 23 von 28
37. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios M¨unchen
/usr/local/nagios/nagixsc/etc/http2nagios.cfg
1 vi /usr/local/nagios/nagixsc/etc/http2nagios.cfg
2 mode: passive
3 pipe: /usr/local/nagios/var/rw/nagios.cmd
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 23 von 28
38. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios M¨unchen
/etc/init.d/nagixsc http2nagios
1 vi /etc/init.d/nagixsc http2nagios
2 DAEMONPATH=/usr/local/nagios/nagixsc
3 /etc/init.d/nagixsc http2nagios start
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 23 von 28
39. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios M¨unchen
/etc/init.d/nagixsc http2nagios
1 vi /etc/init.d/nagixsc http2nagios
2 DAEMONPATH=/usr/local/nagios/nagixsc
3 /etc/init.d/nagixsc http2nagios start
Hinweis
Der http2nagios Daemon ist nun bereit Daten auf Port 15667
entgegenzunehmen.
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 23 von 28
40. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios Hamburg
/usr/local/src/nagixsc
1 cp -r nagixsc /usr/local/nagios/nagixsc
2 cp obsess daemon.py /usr/local/nagios/nagixsc
3 mkdir -p /tmp/nagixsc.spool/new
4 chown -R nagios:nagios /tmp/nagixsc.spool/
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 24 von 28
41. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios Hamburg
/usr/local/nagios/etc/nagios.cfg
1 ocsp command=ocsp2out
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 24 von 28
43. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios Hamburg
/etc/init.d/nagios
/etc/init.d/nagios restart
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 26 von 28
44. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios Hamburg
/etc/init.d/nagios
/etc/init.d/nagios restart
/usr/local/nagios/nagixsc/
./obsess daemon.py http://192.168.0.2:15667/ nagixsc
nagixsc
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 26 von 28
45. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Installation
Nagios Hamburg
/usr/local/nagios/nagixsc/
./obsess daemon.py http://192.168.0.2:15667/ nagixsc
nagixsc
Output von obsess daemon.py
Read /tmp/nagixsc.spool/work/1285508182
Got 8 check results for submitting
Written 1285508186.xml
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 26 von 28
46. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Ende
Fragen?
Sie brauchen ein neues Nagios-Plugin,
oder Unterst¨utzung bei der Einf¨uhrung/Erweiterung von Nagios?
Gerne erstelle ich Ihnen ein Angebot.
Dipl.-Inform. (FH) Martin Hefter
info@martinhefter.de
- Nagios Consulting -
- Softwareentwicklung -
Slides TEXed with LATEX-Beamer
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 27 von 28
47. Zur Person Motivation Planung Installation Konfiguration Nag(ix)SC Ende
Weitere Informationen
Literatur
Wolfgang Barth
Nagios System- und Netzwerk-Monitoring
2. Auflage
Open Source Press GmbH
Februar 2008
ISBN: 3 937 514 910
M. Hefter - 5th OSMC 2010 - www.martinhefter.de Verteiltes monitoring 28 von 28