PNP4Nagios Workshop - netways.de · PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check...

56
PNP4Nagios Workshop Daten verarbeiten Das Web Frontend check oracle health PNP4Nagios Workshop org Linge 3. Netways Nagios Konferenz, 12.9.2008 in N¨ urnberg

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