# verify_pnp_config

Bei Problemen kann das Perl-Script `verify_pnp_config.pl` im `scripts`-Verzeichnis helfen, mit dem neben der Konfiguration auch die Performance-Daten von Hosts und Services geprüft werden können. Es kann sowohl vor als auch während des Betriebs von PNP genutzt werden.

* Hinweis *: Die Angaben beziehen sich auf verify_pnp_config v0.1.24, das über http://www.pnp4nagios.org/pnp/dwnld in der Version 0.6.7 zu finden ist. Ältere Versionen haben teilweise weniger Optionen, so dass es in den Beschreibungen der einzelnen Optionen Hinweise auf die PNP-Version gibt.

* Hinweis *: In PNP 0.6.4 fehlt eine Zeile im Script, was zu einem Fehler führt, so dass Sie vorher diese Zeile einfügen sollten:

         $CPcfg{'$conf[\'max_age\']'} = 'n;^\(?[\d\* ]+\)?$';
         $CPcfg{'$conf[\'temp\']'} = 'd;;';
         $CPcfg{'$conf[\'base_url\']'} = "S;.+;";   # <-- diese Zeile einfügen
         $CPcfg{'$conf[\'nagios_base\']'} = "S;.+;";
         $CPcfg{'$conf[\'allowed_for_service_links\']'} = 'S;[\S,]+;';

* Hinweis *: die “langen” Optionen beginnen immer mit zwei ”-”. Leider ist das im Text nicht zu erkennen.

Die einfachste Form des Aufrufs zur Überprüfung der Konfiguration lautet:

    ./verify_pnp_config.pl -m <Modus>

wobei <Modus> durch den benutzen PNP-Modus zu ersetzen ist (sync, bulk oder NPCD).

Das Script liefert beim Aufruf mit der Option `–h` bzw `–help` u.a. die folgende Ausgabe:

    -h, --help        print these lines
    -b, --basedir=s   Nagios Base directory (default: /usr/local/nagios)
    -B, --binary=s    Nagios binary (default: nagios)
    -c, --config=s    Nagios main config file (default: /usr/local/nagios/etc/nagios.cfg)
    -m, --mode=s      PNP mode ("sync", "bulk", "NPCD")
    -l, --logfile=s   check configure log file
    -D, --pnpdir=s    PNP root dir
    -N, --npcdcfg=s   PNP config file for NPCD mode (default: /usr/local/pnp4nagios/etc/npcd.cfg)
    -P, --ppcfg=s     process_perfdata config file (default: /usr/local/pnp4nagios/etc/process_perfdata.cfg)
    -C, --cpcfg=s     PNP config file (config.php)
    -p, --precheck    use config files instead of objects cache
    -r, --rrdtool=s   specify the location of the RRDtool binary
    -R, --RRDpath=s   specify the perfdata directory (default: /usr/local/pnp4nagios/var/perfdata) or "no" for no check
    -U, --resource=s  location of the resource config file (default: /usr/local/nagios/etc/resource.cfg)
    -M, --monitor=s   specify the monitoring product (default: nagios, may be "icinga")
    -L, --layout=s    specify a layout (Nagios2, Nagios3, SuSE, Fedora)
    -T, --template=s  specify the path to the templates directory (default /usr/local/pnp4nagios/share/templates.dist)
    -u, --user=s      user of the perfdata directory
    -g, --group=s     group of the perfdata directory
    -q, --quiet       quiet mode, non-zero return code will indicate errors
    -o, --object=s    Nagios object (host name, service description)
    -t, --time        show warnings if RRDfiles are too old
    -s, --skip        skip check of installed packages
    -n, --native      show messages in native language (so far "es" or "de")
    -e, --english     show english messages/links
    -d, --debug       some debugging output
    -I, --info        show information about compile time variable settings

Das Nagios-Programm und der Zugriff auf die Hauptkonfigurationsdatei `nagios.cfg` werden immer benötigt. Bei vom Standard abweichenden Pfaden für Nagios gibt es daher die Möglichkeit, über die Option -L ein anderes Layout vorzugeben. Je nach Distribution bzw. Version sollte einer der Werte “suse” oder “fedora” bzw. “nagios2” oder “nagios3” funktionieren (u.a. bei Debian und Ubuntu).
Falls das alles nichts hilft, kann man sowohl das Basisverzeichnis (-b bzw. `–basedir`), den Namen des Programms (-B bzw. `–binary`) als auch den Standort der Hauptkonfigurationsdatei (-c bzw. `–config`) und der Ressource-Datei (-U bzw. –resource) mit Hilfe von Optionen anzugeben. Wenn der Name des Programms mit einem ”/” beginnt, dann wird dieser Wert als absolute Angabe betrachtet und unverändert übernommen. Ohne ”/” ergibt sich der Pfad aus dem Basisverzeichnis mit angehängtem “bin” und dem Binary-Namen.

Ohne Angabe von Optionen wird die Hilfeseite ausgegeben, so dass entweder der Modus oder ein Objekt als Parameter anzugeben sind.

Mit der Option `-m` (`–mode`) wird dabei der PNP-Modus angegeben, dessen Einstellungen untersucht werden. Dabei erlaubt die Option `-l <Dateiname>` bzw. `–logfile=<Dateiname>` die Prüfung der Konfiguration während der Installationsphase. Sie müssen bereits `./configure` (ggf. mit zusätzlichen Optionen) ausgeführt haben. Dadurch wird die Datei `config.log` erstellt, deren Name als Parameter übergeben wird. Das Script prüft, ob die Software-Voraussetzungen erfüllt werden bzw. ob verschiedene Einstellungen korrekt vorgenommen wurden. Dazu gehört auch ein Aufruf des RRDtool-Programms, so dass ggf. die Option `-r` (`–rrdtool`) benutzt werden muss, wenn es nicht unter /usr/bin/rrdtool zu finden ist.

Das Script prüft, ob für Dateien/Verzeichnisse im perfdata-Verzeichnis Benutzer und Gruppe mit den Werten übereinstimmen, die in der nagios.cfg eingetragen sind. Außerdem wird geprüft, ob innerhalb der xml-Dateien Return-Codes des RRDtools gefunden werden, die auf einen Fehler hinweisen. Dabei kann mit der Option -R (–RRDpath) das Verzeichnis angegeben werden, unter dem die RRD-Dateien abgelegt sind, falls es vom Standard abweicht. Falls keine Prüfung gewünscht wird, ist “no” als Verzeichnis anzugeben. Mit den Optionen -u (–user) und -g (–group) können Benutzer und Gruppe des Perfdata-Verzeichnisses angegeben werden, falls diese vom Nagios-Benutzer abweichen sollten.

Nach der Installation können die Änderungen in der nagios.cfg mit der Option `–p (–precheck)` überprüft werden, bevor ein Neustart erfolgt ist. Das ist sinnvoll, um ggf. fehlerhafte Einträge zu korrigieren, ohne Nagios jeweils neu starten zu müssen.

Beim Aufruf mit der Option `-o`, der als Parameter eine Zeichenkette folgt, werden alle Hosts bzw. Services mit diesem Namen sowie die Informationen zu Performance-Daten ausgegeben. Die Zeichenkette sollte in Anführungszeichen gesetzt werden. Falls keine bzw. fehlerhafte Performance-Daten vorhanden sind, gibt es entsprechende Meldungen.

Durch das Anhängen eines Semikolons werden nur Hosts mit der angegebenen Zeichenkette untersucht, durch Voranstellen nur Services. Enthält die Zeichenkette mittendrin ein Semikolon, dann wird der erste Teil als Hostname und der zweite als Servicebeschreibung betrachtet und die Auswertung auf diesen Host mit dem entsprechenden Service beschränkt:

- Hostname/Servicebeschreibung ⇒ Zeichenkette in Hostname oder Servicebeschreibung
- Hostname; ⇒ Einschränkung auf Hostnamen
- ;Servicebeschreibung ⇒ Einschränkung auf Servicebeschreibung
- Hostname;Servicebeschreibung ⇒ Einschränkung auf Hostname und Servicebeschreibung

Ab PNP-Version 0.6 hat sich die Verzeichnisstruktur geändert, so dass alle Dateien unter einem separaten Verzeichnis liegen. Mit der Option -D (–pnpdir) kann man einen von /usr/local/pnp4nagios abweichenden Pfad für das PNP-Basisverzeichnis angeben. Diese Einstellung wirkt sich auch auf die Optionen ”-N”, ”-P” und ”-C” aus, so dass dort ggf. keine Werte angegeben werden müssen.

Im NPCD-Modus kann durch die Option `-N` (`–npcdcfg`) der Name der Konfigurationsdatei angegeben werden, falls Name oder Ort nicht dem Standard entspricht (/usr/local/pnp4nagios/etc/npcd.cfg).

Mit der Option `-P` (`–ppcfg`) wird der Name der Konfigurationsdatei für process_perfdata.pl angegeben, falls Name oder Ort vom Standard abweicht (/usr/local/pnp4nagios/etc/process_data.cfg).

Mit der Option -C (–cpcfg) wird der Name der Konfigurationsdatei config.php angegeben, falls Name oder Ort vom Standard abweicht (/usr/local/pnp4nagios/etc/config.php).

Durch die Option -M (–monitor) kann das Produkt angegeben werden, von dem PNP die Daten bekommt. Per Default ist das Nagios, inzwischen wird auch Icinga unterstützt. Teilweise müssen auch die Optionen -b, -B und -c benutzt werden.

Teilweise entstehen beim Aendern von Templates Fehler, die man in der Web-GUI nicht so schnell findet. Mit der Option -T werden die Template-Dateien auf Fehler geprüft. Als Parameter ist der Pfad zum Template-Directory anzugeben.

Normalerweise wird geprüft, ob bestimmte Pakete installiert sind. Falls es dabei Schwierigkeiten gibt (oder man sicher ist, dass alle benötigten Pakete vorhanden sind), kann man die Prüfung durch die Option -s (–skip) überspringen.

Mit der Option -n (–native) gefolgt von “es” or “de” können spanische oder deutsche Meldungen gewählt werden.

Die Option `-e` (`–english`) erzwingt die Anzeige von englischen Meldungen, selbst wenn abweichende Spracheinstellungen erkannt werden.

Durch Angabe der Option `-d` bzw. `–debug` werden zusätzliche Zeilen ausgegeben, die bei der Fehlersuche helfen können, `-q` bzw. `–quiet` unterdrückt sämtliche Ausgaben.

Die Option `-I` (`–info`) zeigt die Inhalte von Variable wie z.B. `prefix`, `datadir` und anderen Dingen, die Sie vielleicht beim Aufruf von './configure' geändert haben. In einigen Fällen möchten wir diese Werte wissen und mit Hilfe dieser Option geht es einfacher als wenn Sie verschiedene Dateien durchsuchen müßten. Diese Option gibt es seit PNP 0.6.7.

Die Ausgaben selbst beginnen mit einem Buchstaben, der genauere Informationen ueber die Art der Ausgaben gibt:

`[I]` Informationen zu Einstellungen, …
`[A]` durchzuführende Aktionen
`[W]` Warnung: beeinträchtigt nicht die Arbeitsweise von PNP
`[E]` Fehlermeldung: PNP wird nicht korrekt arbeiten, solange das Problem besteht
`[H]` Hinweis: es ist ratsam, die angegebene Dokumentation zu lesen
`[D]` Debugging-Meldung, die hoffentlich zur Fehlerbehebung führt

zurück zur Übersicht | das Web-Frontend