pnp4Nagios zeigt keine Daten im Graph

This forum was archived to /woltlab and is now in read-only mode.
  • Hallo zusammen,


    ich versuche gerade pnp4Nagios in IcingaWeb2 zu integrieren. Soweit läuf auch alles ganz gut. Der npcd service läuft und schreibt xml bzw. rdd Dateien nach /usr/locale/pnp4nagios/var/perfdata/ und im log sind keine Fehler zu sehen. Allerdings werden mir im Web Interface keine Graphen angezeigt wie im Screenshot unten zu sehen. Irgendwelche Ideen zu diesem Fehler? Bin für jede Hilfe dankbar.


    EDIT: Habe gerade gesehen, dass die xml Dateien recht häufig neu geschrieben werden aber die rrd Dateien nicht. Hilft das evtl. weiter?


    Viele Grüße

    Cilenco

  • Bei Log Level = 0 leider nicht (offenbar tritt kein Fehler auf)


    Komischerweise bekomme ich seit gerade aber Werte im Graph angezeigt, allerdings sehr Zeitversetzt (so ca 15-20 min).

    Ist das normal bzw kann ich das irgendwo konfigurieren? Ich würde auch gerne die Daten der letzten Minute sehen.


    EDIT: Bzw. es wechselt. Jetzt gerade kommen wieder keine Daten rein (bzw das UI updatet nicht)... Komisch!!! Soll ich Log Level zu 1 ändern und npcd neustarten oder hast du andere Ideen?

    The post was edited 3 times, last by Cilenco ().

  • Ach so ne. Ich habe unter /usr/local/pnp4nagios/var/npcd.log geschaut. Im syslog findet sich folgendes:

    Code
    1. Dec 18 15:52:28 raspberrypi NPCD[2153]: ERROR: Executed command exits with return code '4'
    2. Dec 18 15:52:28 raspberrypi NPCD[2153]: ERROR: Command line was '/usr/local/pnp4nagios/libexec/process_perfdata.pl -n --bulk /var/spool/icinga2/perfdata/host-perfdata.1513608741'
    3. Dec 18 15:52:58 raspberrypi NPCD[2153]: ERROR: Executed command exits with return code '4'
    4. Dec 18 15:52:58 raspberrypi NPCD[2153]: ERROR: Command line was '/usr/local/pnp4nagios/libexec/process_perfdata.pl -n --bulk /var/spool/icinga2/perfdata/service-perfdata.1513608771'
    5. Dec 18 15:59:32 raspberrypi NPCD[2153]: ERROR: Executed command exits with return code '4'
    6. Dec 18 15:59:32 raspberrypi NPCD[2153]: ERROR: Command line was '/usr/local/pnp4nagios/libexec/process_perfdata.pl -n --bulk /var/spool/icinga2/perfdata/service-perfdata.1513609161'
    7. Dec 18 16:02:04 raspberrypi NPCD[2153]: ERROR: Executed command exits with return code '4'


    Was sagt mir Fehlercode 4?

    The post was edited 2 times, last by Cilenco ().

  • Ich google da immer nach shell exit codes und gucke in den Source Code des Scripts, was denn Exitcode 4 bedeutet. Hast du das schon gemacht?

  • Ich habe den Source code hier gefunden. Leider kenne ich mich mit bash aber nicht besonders gut aus aber immerhin ist dies die einzige Stelle mit exit 4...

    Anscheinend kann die im Aufruf angegebene Datei nicht umbenannt werden.

  • Leider kenne ich mich mit bash aber nicht besonders gut aus

    Beim Blick in den Source-Code steht am Anfang der Aufruf des Perl-Binaries.


    Kurz vor dem exit 4 gibt es mehrere Aufrufe von print_log. Wenn du den log_level in npcd.cfg auf mindestens "2" erhöst, dann solltest du genauere Hinweise auf Quell- und Zieldatei erhalten und kannst die Berechtigungen der betroffenen Verzeichnisse/Dateien prüfen.


    Edit: Sorry, nicht npcd.cfg, sondern process_perfdata.cfg :(.

  • Wenn du den log_level in process_perfdata.cfg auf mindestens "2" erhöst, dann solltest du genauere Hinweise auf Quell- und Zieldatei erhalten und kannst die Berechtigungen der betroffenen Verzeichnisse/Dateien prüfen.

    Danke, das habe ich gerade versucht. Im Syslog tauchen aber keine genaueren Informationen dazu auf.

    In der Datei /usr/local/pnp4nagios/var/perfdata.log findet sich hingegen folgendes:


    Code
    1. 2017-12-18 19:25:01 [15363] [1] process_perfdata.pl-0.6.26 starting in BULK Mode called by NPCD
    2. 2017-12-18 19:25:01 [15363] [2] searching for /var/spool/icinga2/perfdata/service-perfdata.1513621491
    3. 2017-12-18 19:25:01 [15363] [1] ERROR: File /var/spool/icinga2/perfdata/service-perfdata.1513621491 not found
    4. 2017-12-18 19:25:01 [15363] [1] PNP exiting (runtime 0.000385s) ...

    Es wird also nach einer Datei gesucht die es nicht mehr gibt. Hast du Ideen warum es dazu kommt?

  • Laufen da vielleicht mehrere tote Prozesse die sich gegenseitig in die Quere kommen? Gibt es einen Cronjob der da Dateien wegräumt?

  • Vermutlich war es wirklich ein toter Prozess. Ich habe die Maschine mal neugestartet und nun kommt es zu keinen Fehlern mehr im log (bzw. zu npcd steht [bis auf den Start] gar nicht mehr im syslog was ich als gut ansehe). Allerdings sind die Graphen immer noch nicht aktuell. Auch im /usr/local/pnp4nagios/var/perfdata.log lassen sich keine Fehler mehr finden! Hier ist ein Ausschnitt aus /usr/local/pnp4nagios/var/perfdata/host:

    Code
    1. -rw-rw-r-- 1 nagios nagios 1151336 Dez 18 20:20 Check_Load.rrd
    2. -rw-rw-r-- 1 nagios nagios 3270 Dez 18 21:34 Check_Load.xml
    3. -rw-rw-r-- 1 nagios nagios 1151336 Dez 18 20:11 Check_Storage.rrd
    4. -rw-rw-r-- 1 nagios nagios 3308 Dez 18 21:35 Check_Storage.xml

    Warum werden die rrd Dateien nicht aktuallisiert? Die jeweiligen xml Dateien sind immer aktuell! Der Graph wird vermutlich aus den rrd Dateien erstellt?

    The post was edited 3 times, last by Cilenco ().

  • Ich fühle mich etwas verarscht von dem Programm :D

    Code
    1. <RC>0</RC>
    2. <TXT>successful updated</TXT>

    Diese Zeilen gehören zu folgenden zwei Dateien (ls -l):

    Code
    1. -rw-rw-r-- 1 nagios nagios 1151336 Dez 18 22:29 Check_Storage.rrd
    2. -rw-rw-r-- 1 nagios nagios 3308 Dez 18 22:49 Check_Storage.xml
  • Das ist in der Tat ungewöhnlich. Außer den angesprochenen Fehlern fällt mir im Moment nichts ein, warum rrd- und xml-Datei ungleiche Zeitstempel haben sollten.


    Edit: gibt es an anderer Stelle im File-System eine weitere Check_Storage.rrd-Datei?

  • Naja die gibt es schon - halt für jeden Host eine eigene Datei:

    Mein /usr/local/pnp4nagios/var/perfdata/ Verzeichniss sieht in etwas so aus:

    Code
    1. /usr/local/pnp4nagios/var/perfdata/
    2. - host1
    3. - Check_Storage.rrd
    4. - Check_Storage.xml
    5. ... weitere rrd und xml Dateien
    6. - host2
    7. - Check_Storage.rrd
    8. - Check_Storage.xml
    9. ... weitere rrd und xml Dateien
    10. ... weitere Hosts

    Ich unterscheide in Icinga zwei verschiedene Hosttypen (als Templates) auf denen dann immer die gleichen Commands ausgeführt werden.

    Jedes Unterverzeichnis (der gleichen Typen) hat also auch immer Dateien mit dem gleichen Namen. Kann das die Probleme verursachen?


    Eine globale Check_Storage.rrd Datei für alle Hosts gibt es nicht.

  • Naja die gibt es schon - halt für jeden Host eine eigene Datei:

    Sorry, die Frage war unklar gestellt :-(. Wie erwähnt habe ich keine Erklärung dafür, daß eine xml-Datei ohne Fehler (<RC>0) vorhanden ist, aber keine dazu passende rrd-Datei. Die Vermutung war nun, daß es eine weitere rrd-Datei an anderer Stelle gibt, die stattdessen aktualisiert wird.

    Nach Blick in die xml-Datei habe ich gerade festgestellt, daß dort jeweils die Position der rrd-Datei angegeben ist.


    Ist bei dir ggf. rrdcached aktiv?

  • Gute Idee, danke dafür :love:

    Ja, rrdcached läuft bei mir. Ich habe gerade in /etc/defaults/rrdcached geschaut und da steht:

    OPTS="-w 1800 -z 1800 -j /var/cache/rrdcached -s nagios -m 0660 -l unix:/var/run/rrdcached.sock"


    Das erklärt natürlich einiges! Ich habe die -w und -z Werte jetzt mal beide auf 60 gestellt. Gibt es evtl. Richtwerte die sich als sehr praktikabel herausgestellt haben? Ich habe so um die 10 Hosts die ich überwache. Hast du evtl. Vorschläge für gute Werte?

    The post was edited 2 times, last by Cilenco ().

  • Ich habe so um die 10 Hosts die ich überwache.

    Dann würde ich rrdcached abschalten...


    Ansonsten kann man keine generelle Aussage nur anhand der Anzahl der Objekte machen, denn ob du nun 100 Objekte alle fünf Minuten prüfst oder jede Sekunde ist halt schon ein Unterschied.

  • Okay danke für diesen Rat. Reicht es dafür einfach den systemd service zu beenden (bzw. dann würde ich rrdcached auch direkt deinstallieren) oder muss ich dafür noch was in der npcd.cfg bzw. process_perfdata.cfg anpassen?


    Außerdem noch mal ein ganz herzliches Dankeschön für deine großartige Hilfe! Alleine hätte ich das niemals so hinbekommen wie es jetzt läuft!