PNP4Nagios Workshop - netways.de · PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check...
Transcript of PNP4Nagios Workshop - netways.de · PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check...
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP4Nagios Workshop
Jorg Linge
3. Netways Nagios Konferenz, 12.9.2008 in Nurnberg
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
1 PNP4Nagios WorkshopAblauf und ZeitplanVMware ImageAnforderungen
2 Daten verarbeitenDie Kunst Daten zu sammelnWORKSHOP
3 Das Web FrontendGrundlagenTemplatesCustom TemplatesXML FilesTemplate AufbauWORKSHOP
4 check oracle healthcheck oracle healthWORKSHOPDiskussion
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
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
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
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Anforderungen
Anforderungen
Nagios 2.x oder 3.x
PHP 4.3+ fur das Webinterface
GD und zlib Unterstutzung fur PHP
Perl 5.x ohne spezielle Module
RRDtool
Plugins die gultige Performance Daten liefern
Hinweis
RRDtool sollte in der Version 1.2x verwendet werden
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 Zeilebegrenzt. Der Ausgabe wiederum wird durch das Pipe Zeichen in zweiTeile 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
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 Zeilebegrenzt. Der Ausgabe wiederum wird durch das Pipe Zeichen in zweiTeile 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
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 Zeilebegrenzt. Der Ausgabe wiederum wird durch das Pipe Zeichen in zweiTeile 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
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Download
Stable Versions
Die jeweils aktuelle Version auf SourceForge.nethttp://sourceforge.net/projects/pnp4nagios
Developer Snapshot
Taglicher Developer Snapshot als pnp-latest.tar.gzhttp://www.pnp4nagios.org/pnp/dwnld
Changelog
Das Changlog wird zusammen mit dem Developer Snapshot aus demSVN Repository erzeugt und ist ebenfalls aufhttp://www.pnp4nagios.org/pnp/dwnld zu finden.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Installation
Dreisatz
./configure
make all
make install
Hinweis
./configure --help liefert weitere Informationen.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Installation
Dreisatz
./configure
make all
make install
Hinweis
./configure --help liefert weitere Informationen.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
1 PNP4Nagios WorkshopAblauf und ZeitplanVMware ImageAnforderungen
2 Daten verarbeitenDie Kunst Daten zu sammelnWORKSHOP
3 Das Web FrontendGrundlagenTemplatesCustom TemplatesXML FilesTemplate AufbauWORKSHOP
4 check oracle healthcheck oracle healthWORKSHOPDiskussion
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
3 Modi
3 Modi
PNP kennt 3 verschieden Arten Performance Daten zuverarbeiten
Welcher Mode passt zu mir?
Wird bestimmt durch die Große der Installation und derverwendeten Hardware
Von furchtbar einfach bis einfach
Details folgen
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
3 Modi
3 Modi
PNP kennt 3 verschieden Arten Performance Daten zuverarbeiten
Welcher Mode passt zu mir?
Wird bestimmt durch die Große der Installation und derverwendeten Hardware
Von furchtbar einfach bis einfach
Details folgen
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 Verfugung
Nachteil
Fur jeden Check ein Aufruf von process perfdata.pl
Blocking!
Viele Systemcalls
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 Verfugung
Nachteil
Fur jeden Check ein Aufruf von process perfdata.pl
Blocking!
Viele Systemcalls
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
Verzogerung der Verarbeitung durch sammeln der Daten
Blocking wahrend der Laufzeit von process perfdata.pl!
Etwas aufwandigere Konfiguration
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
Verzogerung der Verarbeitung durch sammeln der Daten
Blocking wahrend der Laufzeit von process perfdata.pl!
Etwas aufwandigere Konfiguration
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 fur denNagios Core
Daten werden in ein Spool Verzeichnis kopiert und im Blockabgearbeitet
Nachteil
Verzogerung der Verarbeitung durch sammeln der Daten
Ein zusatzlicher Dienst, der NPCD, muss laufen
Etwas aufwandigere Konfiguration
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 fur denNagios Core
Daten werden in ein Spool Verzeichnis kopiert und im Blockabgearbeitet
Nachteil
Verzogerung der Verarbeitung durch sammeln der Daten
Ein zusatzlicher Dienst, der NPCD, muss laufen
Etwas aufwandigere Konfiguration
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 enthallt auskommentierte Blocke fur dieeinzelnen Modi.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
30 Minuten Zeit
Ziel ist alle 3 Modi gemeinsam nacheinenader in Betrieb zunehmen
Durch Analyse der PNP Logfiles die Arbeitsweise von PNPgenauer kennenlernen
Unterstutzende Doku unterhttp://www.pnp4nagios.org/pnp/de/config
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Modes
Pause
15 Minuten Pause
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
1 PNP4Nagios WorkshopAblauf und ZeitplanVMware ImageAnforderungen
2 Daten verarbeitenDie Kunst Daten zu sammelnWORKSHOP
3 Das Web FrontendGrundlagenTemplatesCustom TemplatesXML FilesTemplate AufbauWORKSHOP
4 check oracle healthcheck oracle healthWORKSHOPDiskussion
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Action URL
Action URL
Hosts und Services werden uber die action url oder notes urlmit PNP verknupft
Ab Nagios 3.x nicht mehr uber die extinfo Definition sonderndirekt im Host oder Service Object
Minimierung der Konfiguration durch Templates
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
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
PNP Templates
Templates bestimmen das Aussehen der Graphen und somit denAufruf von RRDtool.
Zuordnung der Templates
Ein Template wird immer uber das von Nagios verwendetecheck command bestimmt. Daten die uber das Plugin check httpund somit uber das Check Command check http ubermittelt wurden,werden somit uber das Template check http.php dargestellt.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
PNP Templates
Templates bestimmen das Aussehen der Graphen und somit denAufruf von RRDtool.
Zuordnung der Templates
Ein Template wird immer uber das von Nagios verwendetecheck command bestimmt. Daten die uber das Plugin check httpund somit uber das Check Command check http ubermittelt wurden,werden somit uber das Template check http.php dargestellt.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
Speicherort der Templates
Templates werden im Verzeichnis share/pnp/templates.dist odershare/pnp/templates gespeichert.Das Verzeichnis share/pnp/templates.dist enthalt Templates dieim PNP Paket enthalten sind.
Hinweis
Eigene Templates sollten nur im Verzeichnis share/pnp/templatesangelegt werden. So wird verhindert das die Templates bei Updatesuberschrieben werden.
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 zugrundeliegendenPlugins, da der Bezeichnung des Check Commands nicht festgelegtist. Verknupfungen konnen uber symbolische Links realisiert werden.So mussen die Templates nicht kopiert werden.
Hinweis
Wird von PNP kein passendes Template gefunden, wirdshare/pnp/templates.dist/default.php verwendet.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Custom Templates
Templates beeinflussen
Eventuell muss man auf die Ermittlung der Template NamenEinfluss nehmen.
Beispielsweise soll fur das Command check nrpe je nach Optionein anderes Template verwendet werden.
PNP, oder besser gesagt der Datensammlerprocess perfdata.pl, sucht fur jedes Command im Verzeichnisetc/pnp/check commands nach einer .cfg Datei fur das aktuelleCheck Command und liest diese ein.
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 demNamen (Feld 0) und dem ersten Argument (Feld 1) zusammengestellt.PNP wird nun das Template check nrpe LOAD.php verwenden.
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 demNamen (Feld 0) und dem ersten Argument (Feld 1) zusammengestellt.PNP wird nun das Template check nrpe LOAD.php verwenden.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
XML Files
XML Files
Zu jedem Service erstellt PNP eine RRD Datenbank.
Zusatzlich werden alle zur Laufzeit ermittelten Informationen ineinem XML File gespeichert.
Das XML File wird bei jedem Update neu geschrieben.Anderungen sind somit von kurzer Dauer.
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>
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
DATASOURCE Block
DATASOURCE Block
Im Bereich DATASOURCE befinden sich Informationen die ausden Performacedaten ermittelt wurden.
Der Block wiederholt sich fur jede Datenreihe.
Die Daten aus den XML Files stehen in PNP Templates zurVerfugung.
Daten aus den Tag WARN der ersten Datenreihe stehen somit indr Variable $WARN[1]
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>
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
RRD Block
RRD Block
Im Bereich RRD wir der Status des letzten rrdtool Aufrufsgespeichert
Ein Returncode großer 0 deutet auf Fehler hin.
Beim Einsatz der RRDs Perl Module ist die Beschreibung desFehlers genauer.
Kann verwendet werden um fehlerhafte RRD Strukturen zufinden.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Nagios Environment Block
Nagios Environment Block<NAGIOS>
...
<NAGIOS_DATATYPE>SERVICEPERFDATA</NAGIOS_DATATYPE>
<NAGIOS_HOSTNAME>localhost</NAGIOS_HOSTNAME>
<NAGIOS_HOSTSTATE>UP</NAGIOS_HOSTSTATE>
<NAGIOS_HOSTSTATETYPE>HARD</NAGIOS_HOSTSTATETYPE>
<NAGIOS_SERVICECHECKCOMMAND>check_http</NAGIOS_SERVICECHECKCOMMAND>
<NAGIOS_SERVICEDESC>HTTP</NAGIOS_SERVICEDESC>
<NAGIOS_SERVICEPERFDATA>
time=0.007855s;;;0.000000 size=576B;;;0
</NAGIOS_SERVICEPERFDATA>
<NAGIOS_SERVICESTATE>OK</NAGIOS_SERVICESTATE>
<NAGIOS_SERVICESTATETYPE>HARD</NAGIOS_SERVICESTATETYPE>
<NAGIOS_TIMET>1212195208</NAGIOS_TIMET>
</NAGIOS>
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 gesamteNagios Environment im XML File gespeichert.
Die einzelnen Objekte sind unter ihrem Makro Namen als PHPVariable verfugbar.
Im Bulk Mode sind nur die Makros im XML enthalten, die uberservice perfdata file template oderhost perfdata file template definiert wurden.
Beide Optionen sind jedoch beliebig erweiterbar.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
Template Aufbau
Templates befullen 2 Arrays mit allen notigen Optionen die zumAufruf von rrdtool notig sind.
Alle fur die installierte RRDtool Version gultigen Optionen durfenverwendet werden.
Templates bestehen aus den Arrays $opt[] und $def[].
Fur jeden Array Key wird ein einzelner RRD Graph erstellt.Enthalten beide Arrays mehrere Datensatze spricht man vonMultigraphen.
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
PNP Templates
Template Aufbau
Templates befullen 2 Arrays mit allen notigen Optionen die zumAufruf von rrdtool notig sind.
Alle fur die installierte RRDtool Version gultigen Optionen durfenverwendet werden.
Templates bestehen aus den Arrays $opt[] und $def[].
Fur jeden Array Key wird ein einzelner RRD Graph erstellt.Enthalten beide Arrays mehrere Datensatze spricht man vonMultigraphen.
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!
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!
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.
Unterstutzende Doku unterhttp://www.pnp4nagios.org/pnp/de/tpl
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Pause 2
Pause
15 Minuten Pause
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
1 PNP4Nagios WorkshopAblauf und ZeitplanVMware ImageAnforderungen
2 Daten verarbeitenDie Kunst Daten zu sammelnWORKSHOP
3 Das Web FrontendGrundlagenTemplatesCustom TemplatesXML FilesTemplate AufbauWORKSHOP
4 check oracle healthcheck oracle healthWORKSHOPDiskussion
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Oracle Daten Visualisieren
Aufgabenstellung
Integration neuer Templates am Beispiel voncheck oracle health
Das Workshop System enthalt bereits einige Oracle Hosts undServices
Die Daten stammen aus einer Oracle Datenbank und wurden vonGerhard Lausser, dem Entwickler von check oracle healthbereitgestellt
Ziel ist es die passenden Templates zu installieren und deneinzelnen Services zuzuordnen
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 vonhttp://www.pnp4nagios.org/pnp/dwnld laden
Das Update erfolgt mit den gleichen Optionen wie die Installation
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.distzu finden
Template Name aus dem XML ermitteln
Symbolische Links anlegen
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Oracle Daten Visualisieren
Vorhandene Temlates
Template check oracle connection-time.php
Template check oracle pga-in-memory-sort-ratio.php
Template check oracle redo-io-traffic.php
Template check oracle switch-interval.php
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
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Templates
15 Minuten Zeit
Ziel ist ein PNP Update durchzufuhren und die Oracle Grapheneinzubinden
Unterschiedliche Pages fur die Oracle Graphen erstellen
Unterstutzende Dokumentation unterhttp://www.pnp4nagios.org/pnp/de/pages
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Offene Diskussion
Offene Diskussion
Anregungen fur zukunftige PNP Versionen?
Noch offene Fragen?
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health
Danke
Danke
Vielen Dank fur Ihre Aufmerksamkeit!
Fragen und Anregungen ?
Support
Mailingliste [email protected]
PNP Forum unter http://www.nagios-portal.org