PNP4Nagios ist eine Erweiterung für Nagios, die es auf einfache Weise ermöglicht, die von den Nagios Plugins gelieferten Performancedaten in RRD Datenbanken zu speichern und für die spätere Trend Analysen aufzubereiten.
Dabei wird Wert auf eine einfache Installation und geringen Pflegeaufwand gelegt.
Im Workshop haben die Teilnehmer die Möglichkeit, die Installation und Konfiguration von PNP4Nagios an einer eigenen virtuellen Maschine durchzuführen.
Am Beispiel von check_oracle_health werden - während des Workshops - Templates zum Darstellen der Performance Werte erstellt. Somit haben die Teilnehmer die Möglichkeit, Daten von check_oracle_health zu visualisieren und die Möglichkeiten der PNP Templates kennen zu lernen.
Die Daten von check_oracle_health wie Tablespace Usage, Cache-Hits, Redolog-IO u.ä. werden simuliert, so dass während des Workshops auch ohne Oracle Server realistische Graphen erzeugt werden können.
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
OSMC 2008 | PNP4Nagios - Installation, Konfiguration und Template Erstellung by Jörg Linge
1. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP4Nagios Workshop
J¨org Linge
3. Netways Nagios Konferenz, 12.9.2008 in N¨urnberg
2. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
1 PNP4Nagios Workshop
Ablauf und Zeitplan
VMware Image
Anforderungen
2 Daten verarbeiten
Die Kunst Daten zu sammeln
WORKSHOP
3 Das Web Frontend
Grundlagen
Templates
Custom Templates
XML Files
Template Aufbau
WORKSHOP
4 check oracle health
check oracle health
WORKSHOP
Diskussion
3. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Ablauf
Zeitplan
Vorstellung der Arbeitsweise von PNP
Gemeinsames einrichten von PNP im Workshop System
Pause
Web Frontend und Darstellung der Graphen
Einblick in die Internas von PNP
Pause
Real Live Szenario am Beispiel von check oracle health
Einbinden neuer Templates
Erfahrungsaustausch
4. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP
Das Workshop System
Basis Debian 4r4
Nagios 3.0.3
PNP SVN REVISION 512 ( PNP-0.4.11 )
Plugins 1.4.12 +check multi +check snmp int
5. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP
Das Workshop System
User: nagios
Passwort: nagios
Soucen: /usr/local/src
Nagios: /usr/local/nagios
Nagios Webfrontend
User: nagiosadmin
Passwort: nagios
6. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Anforderungen
Anforderungen
Nagios 2.x oder 3.x
PHP 4.3+ f¨ur das Webinterface
GD und zlib Unterst¨utzung f¨ur PHP
Perl 5.x ohne spezielle Module
RRDtool
Plugins die g¨ultige Performance Daten liefern
Hinweis
RRDtool sollte in der Version 1.2x verwendet werden
7. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Der Aufbau der Performance Daten
Performance Daten
Die Ausgabe der Nagios Plugins ist bis Nagios 2.x auf eine Zeile
begrenzt. Der Ausgabe wiederum wird durch das Pipe Zeichen in zwei
Teile zerlegt.
Ausgabe von check users
USERS OK - 6 users currently logged in | users=6;20;50;0
Zerlegt in Output und Perfdata
Output= USERS OK - 6 users currently logged in
Perfdata= users=6;20;50;0
8. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Der Aufbau der Performance Daten
Performance Daten
Die Ausgabe der Nagios Plugins ist bis Nagios 2.x auf eine Zeile
begrenzt. Der Ausgabe wiederum wird durch das Pipe Zeichen in zwei
Teile zerlegt.
Ausgabe von check users
USERS OK - 6 users currently logged in | users=6;20;50;0
Zerlegt in Output und Perfdata
Output= USERS OK - 6 users currently logged in
Perfdata= users=6;20;50;0
9. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Der Aufbau der Performance Daten
Performance Daten
Die Ausgabe der Nagios Plugins ist bis Nagios 2.x auf eine Zeile
begrenzt. Der Ausgabe wiederum wird durch das Pipe Zeichen in zwei
Teile zerlegt.
Ausgabe von check users
USERS OK - 6 users currently logged in | users=6;20;50;0
Zerlegt in Output und Perfdata
Output= USERS OK - 6 users currently logged in
Perfdata= users=6;20;50;0
10. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Download
Stable Versions
Die jeweils aktuelle Version auf SourceForge.net
http://sourceforge.net/projects/pnp4nagios
Developer Snapshot
T¨aglicher Developer Snapshot als pnp-latest.tar.gz
http://www.pnp4nagios.org/pnp/dwnld
Changelog
Das Changlog wird zusammen mit dem Developer Snapshot aus dem
SVN Repository erzeugt und ist ebenfalls auf
http://www.pnp4nagios.org/pnp/dwnld zu finden.
11. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Installation
Dreisatz
./configure
make all
make install
Hinweis
./configure --help liefert weitere Informationen.
12. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Installation
Dreisatz
./configure
make all
make install
Hinweis
./configure --help liefert weitere Informationen.
13. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
1 PNP4Nagios Workshop
Ablauf und Zeitplan
VMware Image
Anforderungen
2 Daten verarbeiten
Die Kunst Daten zu sammeln
WORKSHOP
3 Das Web Frontend
Grundlagen
Templates
Custom Templates
XML Files
Template Aufbau
WORKSHOP
4 check oracle health
check oracle health
WORKSHOP
Diskussion
14. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
3 Modi
3 Modi
PNP kennt 3 verschieden Arten Performance Daten zu
verarbeiten
Welcher Mode passt zu mir?
Wird bestimmt durch die Gr¨oße der Installation und der
verwendeten Hardware
Von furchtbar einfach bis einfach
Details folgen
15. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
3 Modi
3 Modi
PNP kennt 3 verschieden Arten Performance Daten zu
verarbeiten
Welcher Mode passt zu mir?
Wird bestimmt durch die Gr¨oße der Installation und der
verwendeten Hardware
Von furchtbar einfach bis einfach
Details folgen
16. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Default Mode
Default Mode
Einfach und schnell eingerichtet
Vorteil
Sehr wenig Konfiguration
Daten/Graphen stehen sofort nach jedem Check zur Verf¨ugung
Nachteil
F¨ur jeden Check ein Aufruf von process perfdata.pl
Blocking!
Viele Systemcalls
17. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Default Mode
Default Mode
Einfach und schnell eingerichtet
Vorteil
Sehr wenig Konfiguration
Daten/Graphen stehen sofort nach jedem Check zur Verf¨ugung
Nachteil
F¨ur jeden Check ein Aufruf von process perfdata.pl
Blocking!
Viele Systemcalls
18. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
Bulk Mode
Auch einfach aber verbraucht weniger Resourcen
Vorteil
Weniger Systemcalls als der Default Mode
Daten werden gesammelt und im Block abgearbeitet
Nachteil
Verz¨ogerung der Verarbeitung durch sammeln der Daten
Blocking w¨ahrend der Laufzeit von process perfdata.pl!
Etwas aufw¨andigere Konfiguration
19. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
Bulk Mode
Auch einfach aber verbraucht weniger Resourcen
Vorteil
Weniger Systemcalls als der Default Mode
Daten werden gesammelt und im Block abgearbeitet
Nachteil
Verz¨ogerung der Verarbeitung durch sammeln der Daten
Blocking w¨ahrend der Laufzeit von process perfdata.pl!
Etwas aufw¨andigere Konfiguration
20. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
Bulk Mode mit NPCD
Auch nicht schwer aber noch schneller
Vorteil
Komplett von Nagios entkoppelt. Daher keine Belastung f¨ur den
Nagios Core
Daten werden in ein Spool Verzeichnis kopiert und im Block
abgearbeitet
Nachteil
Verz¨ogerung der Verarbeitung durch sammeln der Daten
Ein zus¨atzlicher Dienst, der NPCD, muss laufen
Etwas aufw¨andigere Konfiguration
21. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
Bulk Mode mit NPCD
Auch nicht schwer aber noch schneller
Vorteil
Komplett von Nagios entkoppelt. Daher keine Belastung f¨ur den
Nagios Core
Daten werden in ein Spool Verzeichnis kopiert und im Block
abgearbeitet
Nachteil
Verz¨ogerung der Verarbeitung durch sammeln der Daten
Ein zus¨atzlicher Dienst, der NPCD, muss laufen
Etwas aufw¨andigere Konfiguration
22. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
Workshop
Probieren wir einfach mal alle durch und machen uns ein Bild.
Das Workshop System ist bereis vorbereitet.
Die nagios.cfg enth¨allt auskommentierte Bl¨ocke f¨ur die
einzelnen Modi.
23. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
30 Minuten Zeit
Ziel ist alle 3 Modi gemeinsam nacheinenader in Betrieb zu
nehmen
Durch Analyse der PNP Logfiles die Arbeitsweise von PNP
genauer kennenlernen
Unterst¨utzende Doku unter
http://www.pnp4nagios.org/pnp/de/config
24. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
Pause
15 Minuten Pause
25. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
1 PNP4Nagios Workshop
Ablauf und Zeitplan
VMware Image
Anforderungen
2 Daten verarbeiten
Die Kunst Daten zu sammeln
WORKSHOP
3 Das Web Frontend
Grundlagen
Templates
Custom Templates
XML Files
Template Aufbau
WORKSHOP
4 check oracle health
check oracle health
WORKSHOP
Diskussion
26. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Action URL
Action URL
Hosts und Services werden ¨uber die action url oder notes url
mit PNP verkn¨upft
Ab Nagios 3.x nicht mehr ¨uber die extinfo Definition sondern
direkt im Host oder Service Object
Minimierung der Konfiguration durch Templates
27. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Aufbau der URLs
Alle Services eines Hosts
pnp/index.php?host=$HOSTNAME$
Alle Graphen eines Services
pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
Die erste Page
pnp/index.php?page
Eine Page mit bestimmter Config.
pnp/index.php?page=webserver traffic
28. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
PNP Templates
Templates bestimmen das Aussehen der Graphen und somit den
Aufruf von RRDtool.
Zuordnung der Templates
Ein Template wird immer ¨uber das von Nagios verwendete
check command bestimmt. Daten die ¨uber das Plugin check http
und somit ¨uber das Check Command check http ¨ubermittelt wurden,
werden somit ¨uber das Template check http.php dargestellt.
29. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
PNP Templates
Templates bestimmen das Aussehen der Graphen und somit den
Aufruf von RRDtool.
Zuordnung der Templates
Ein Template wird immer ¨uber das von Nagios verwendete
check command bestimmt. Daten die ¨uber das Plugin check http
und somit ¨uber das Check Command check http ¨ubermittelt wurden,
werden somit ¨uber das Template check http.php dargestellt.
30. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
Speicherort der Templates
Templates werden im Verzeichnis share/pnp/templates.dist oder
share/pnp/templates gespeichert.
Das Verzeichnis share/pnp/templates.dist enth¨alt Templates die
im PNP Paket enthalten sind.
Hinweis
Eigene Templates sollten nur im Verzeichnis share/pnp/templates
angelegt werden. So wird verhindert das die Templates bei Updates
¨uberschrieben werden.
31. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Template Mappings ¨uber symbolische links
Mapping check command zum Template
Templates tragen in der Regel den Namen des zugrundeliegenden
Plugins, da der Bezeichnung des Check Commands nicht festgelegt
ist. Verkn¨upfungen k¨onnen ¨uber symbolische Links realisiert werden.
So m¨ussen die Templates nicht kopiert werden.
Hinweis
Wird von PNP kein passendes Template gefunden, wird
share/pnp/templates.dist/default.php verwendet.
32. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Custom Templates
Templates beeinflussen
Eventuell muss man auf die Ermittlung der Template Namen
Einfluss nehmen.
Beispielsweise soll f¨ur das Command check nrpe je nach Option
ein anderes Template verwendet werden.
PNP, oder besser gesagt der Datensammler
process perfdata.pl, sucht f¨ur jedes Command im Verzeichnis
etc/pnp/check commands nach einer .cfg Datei f¨ur das aktuelle
Check Command und liest diese ein.
33. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Custom Templates
Beispiel:
# check_command check_nrpe!LOAD
# ________0__________| |
# ________1__________________|
#
CUSTOM_TEMPLATE = 0,1
Ergebnis:
¨Uber CUSTOM TEMPLATE = 0,1 wird das neue Template aus dem
Namen (Feld 0) und dem ersten Argument (Feld 1) zusammengestellt.
PNP wird nun das Template check nrpe LOAD.php verwenden.
34. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Custom Templates
Beispiel:
# check_command check_nrpe!LOAD
# ________0__________| |
# ________1__________________|
#
CUSTOM_TEMPLATE = 0,1
Ergebnis:
¨Uber CUSTOM TEMPLATE = 0,1 wird das neue Template aus dem
Namen (Feld 0) und dem ersten Argument (Feld 1) zusammengestellt.
PNP wird nun das Template check nrpe LOAD.php verwenden.
35. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
XML Files
XML Files
Zu jedem Service erstellt PNP eine RRD Datenbank.
Zus¨atzlich werden alle zur Laufzeit ermittelten Informationen in
einem XML File gespeichert.
Das XML File wird bei jedem Update neu geschrieben.
¨Anderungen sind somit von kurzer Dauer.
36. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Beispiel DATASOURCE Block
<NAGIOS>
<DATASOURCE>
<TEMPLATE>check_local_users</TEMPLATE>
<DS>1</DS>
<NAME>users</NAME>
<UNIT></UNIT>
<ACT>3</ACT>
<WARN>2</WARN>
<WARN_MIN></WARN_MIN>
<WARN_MAX></WARN_MAX>
<WARN_RANGE_TYPE></WARN_RANGE_TYPE>
<CRIT>5</CRIT>
<CRIT_MIN></CRIT_MIN>
<CRIT_MAX></CRIT_MAX>
<CRIT_RANGE_TYPE></CRIT_RANGE_TYPE>
<MIN>0</MIN>
<MAX></MAX>
</DATASOURCE>
...
</NAGIOS>
37. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
DATASOURCE Block
DATASOURCE Block
Im Bereich DATASOURCE befinden sich Informationen die aus
den Performacedaten ermittelt wurden.
Der Block wiederholt sich f¨ur jede Datenreihe.
Die Daten aus den XML Files stehen in PNP Templates zur
Verf¨ugung.
Daten aus den Tag WARN der ersten Datenreihe stehen somit in
dr Variable $WARN[1]
38. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
RRD Block
RRD Block
<NAGIOS>
...
<RRD>
<RC>0</RC>
<TXT>successful updated</TXT>
</RRD>
...
</NAGIOS>
39. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
RRD Block
RRD Block
Im Bereich RRD wir der Status des letzten rrdtool Aufrufs
gespeichert
Ein Returncode gr¨oßer 0 deutet auf Fehler hin.
Beim Einsatz der RRDs Perl Module ist die Beschreibung des
Fehlers genauer.
Kann verwendet werden um fehlerhafte RRD Strukturen zu
finden.
41. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Nagios Environment Block
Nagios Environment Block
Wird PNP im Default Mode betrieben, so wird das gesamte
Nagios Environment im XML File gespeichert.
Die einzelnen Objekte sind unter ihrem Makro Namen als PHP
Variable verf¨ugbar.
Im Bulk Mode sind nur die Makros im XML enthalten, die ¨uber
service perfdata file template oder
host perfdata file template definiert wurden.
Beide Optionen sind jedoch beliebig erweiterbar.
42. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
Template Aufbau
Templates bef¨ullen 2 Arrays mit allen n¨otigen Optionen die zum
Aufruf von rrdtool n¨otig sind.
Alle f¨ur die installierte RRDtool Version g¨ultigen Optionen d¨urfen
verwendet werden.
Templates bestehen aus den Arrays $opt[] und $def[].
F¨ur jeden Array Key wird ein einzelner RRD Graph erstellt.
Enthalten beide Arrays mehrere Datens¨atze spricht man von
Multigraphen.
43. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
Template Aufbau
Templates bef¨ullen 2 Arrays mit allen n¨otigen Optionen die zum
Aufruf von rrdtool n¨otig sind.
Alle f¨ur die installierte RRDtool Version g¨ultigen Optionen d¨urfen
verwendet werden.
Templates bestehen aus den Arrays $opt[] und $def[].
F¨ur jeden Array Key wird ein einzelner RRD Graph erstellt.
Enthalten beide Arrays mehrere Datens¨atze spricht man von
Multigraphen.
44. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Beispiel
Beispiel:
<?php
$opt[1] = ’-slope-mode -titel "Ein Beispiel Graph" weitere rrdtool Optionen’;
$def[1] = ’DEF:var1= ....’;
...
$opt[2] = ’-l 0 -titel "Ein weiterer Graph" weitere rrdtool Optionen’;
$def[2] = ’DEF:var1= ....’;
...
?>
Hinweis
Unbedingt auf die korrekte PHP Syntax achten!
45. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Beispiel
Beispiel:
<?php
$opt[1] = ’-slope-mode -titel "Ein Beispiel Graph" weitere rrdtool Optionen’;
$def[1] = ’DEF:var1= ....’;
...
$opt[2] = ’-l 0 -titel "Ein weiterer Graph" weitere rrdtool Optionen’;
$def[2] = ’DEF:var1= ....’;
...
?>
Hinweis
Unbedingt auf die korrekte PHP Syntax achten!
46. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Templates
30 Minuten Zeit
Ziel ist den einzelnen Services Templates zuzuweisen.
Analyse der XML Files und der enthaltenen Daten.
Unterst¨utzende Doku unter
http://www.pnp4nagios.org/pnp/de/tpl
47. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Pause 2
Pause
15 Minuten Pause
48. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
1 PNP4Nagios Workshop
Ablauf und Zeitplan
VMware Image
Anforderungen
2 Daten verarbeiten
Die Kunst Daten zu sammeln
WORKSHOP
3 Das Web Frontend
Grundlagen
Templates
Custom Templates
XML Files
Template Aufbau
WORKSHOP
4 check oracle health
check oracle health
WORKSHOP
Diskussion
49. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Oracle Daten Visualisieren
Aufgabenstellung
Integration neuer Templates am Beispiel von
check oracle health
Das Workshop System enth¨alt bereits einige Oracle Hosts und
Services
Die Daten stammen aus einer Oracle Datenbank und wurden von
Gerhard Lausser, dem Entwickler von check oracle health
bereitgestellt
Ziel ist es die passenden Templates zu installieren und den
einzelnen Services zuzuordnen
50. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Oracle Daten Visualisieren
PNP Update auf SVN REV 516
Die Templates sind in PNP am SVN Revision 516 enthalten.
Die PNP Devel Version von
http://www.pnp4nagios.org/pnp/dwnld laden
Das Update erfolgt mit den gleichen Optionen wie die Installation
51. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Oracle Daten Visualisieren
Oracle Templates zuweisen
Templates aus dem PNP Paket sind in share/pnp/templates.dist
zu finden
Template Name aus dem XML ermitteln
Symbolische Links anlegen
53. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Oracle Daten Visualisieren
¨Ubersicht erstellen
¨Ubersicht der ora redo-io Services aller Oracle Server erstellen
Page Config in etc/pnp/pages erstellen
54. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Templates
15 Minuten Zeit
Ziel ist ein PNP Update durchzuf¨uhren und die Oracle Graphen
einzubinden
Unterschiedliche Pages f¨ur die Oracle Graphen erstellen
Unterst¨utzende Dokumentation unter
http://www.pnp4nagios.org/pnp/de/pages
55. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Offene Diskussion
Offene Diskussion
Anregungen f¨ur zuk¨unftige PNP Versionen?
Noch offene Fragen?
56. PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Danke
Danke
Vielen Dank f¨ur Ihre Aufmerksamkeit!
Fragen und Anregungen ?
Support
Mailingliste pnp4nagios-user@sourceforge.net
PNP Forum unter http://www.nagios-portal.org