Nagvis: ab 2 Geräten wird bei einem Host immer der falsche Gesamtstatus berechnet

This forum was archived to /woltlab and is now in read-only mode. Please register a new account on our new community platform.

You can create a thread on the new site and link to an archived thread. This archive is available as knowledge base, safe and secured.

More details here.
  • Hallo,


    wir haben Nagvis 1.8.5 im Einsatz und als Modul (von "divetoh") in Icingaweb2 eingebunden.


    Dabei ist uns nun folgendes aufgefallen:


    Legt man zwei (oder mehr) Geräte-Icons an, dann wird der Status bei EINEM der Hosts "immer" aus ALLEN Services auf der gesamten Karte berechnet.
    Beispiel: Zwei Hosts mit je 7 Services => ein Host zeigt den (richtigen) Gesamtstatus seiner sieben Services, der andere Host zeigt als Summe vierzehn Services an.


    Bei mehreren Geräten erhält man im Endeffekt immer an EINEM Icon den Gesamtstatus über ALLE Services auf dieser Map, die anderen Icons werden richtig angezeigt.


    "Gelegentlich" (wenn man die Objekte sperrt und wieder freigibt), wird das kurzzeitig bereinigt, bis man die Karte wieder schließt und neu öffnet.


    Kennt Ihr das vielleicht? Könnt Ihr helfen?
    Vielen Dank


    Beispielhaft haben wir zwei verschiedene Hosts mit jeweils sieben Test-Checks eingerichtet. Folge: einer der beiden zeigt als Gesamtstatus 14 Services an

  • Hallo Michi,


    danke für die Antwort.


    Ja, haben wir:

    Code
    1. [backend_2]
    2. backendid=2
    3. backendtype="ndomy"
    4. dbhost="<ip_icingaserver>"
    5. dbport=3306
    6. dbname="icinga"
    7. dbuser="<user>"
    8. dbpass="<pass>"
    9. dbprefix="<prefix>"
    10. dbinstancename="default"

    Gruß
    Thomas


    PS: Wir haben 2 Master (HA-Cluster).

  • Ok, das hat mir noch gefehlt zum Verständnis wie das gebaut ist. Dann ist das Problem isolierbar auf einen der Knoten.


    Hast du bei dir dann auch Host-Objekte die gelöscht werden beim Reload, und damit eigentlich nicht mehr in Gruppe auftauchen?

  • ähm.. entschuldige. Diese Frage habe ich womöglich nicht richtig verstanden.
    Ich habe jedenfalls kein Problem damit, dass HostObjekte beim Reload plötzlich "verschwinden". Hast Du das gemeint?

  • Nein, ich meine ob du per Konfiguration Host-Objekte löscht, dann einen Reload machst und dann zu diesem Phänomen in NagVis kommst.

  • Die Pflege (Löschen/Hinzunehmen/Ändern) der Hosts mache ich genau wie von Dir beschrieben über die Konfig und einem anschließenden Reload oder Restart von Icinga2.
    Ich kann aber leider nicht sagen, ob Nagvis sich schon immer so verhalten hat. Aufgefallen ist es erst am Dienstag.


    Die in den jeweiligen Maps definierten Hosts, sind allerdings aktuell alle vorhanden.

  • Kannst du dir mal die Queries rausziehen, die NagVis hierbei abfeuert? Ich vermute mal sehr stark dass du da Objekte in der icinga_objects Tabelle hast, die is_active=0 gesetzt haben (den Patch dazu gibts in einer 1.9 Beta).

  • Hallo Michi,


    vielen lieben Dank erstmal für Deine ganzen Mühen. Ich kämpfe mich seit Deiner letzten Antworten durch die Sourcen, bin aber sehr unerfahren in der PHP-Programmierung. Es gibt jedenfalls ungeheuer viele "is_active=0"-Objekte bei uns.

    Code
    1. select count(*) from icinga_objects where is_active = 0;
    2. +----------+
    3. | count(*) |
    4. +----------+
    5. | 915 |
    6. +----------+



    Zwischenstand meiner Suchen:


    In der Datei
    /usr/share/nagvis/share/server/core/classes/objects/NagVisHost.php
    gibt es zwei unterschiedliche Abschnitte:


    fetchSummaryOutputFromCounts




    fetchSummaryOutput


    Dort, wo er auf der NAGVIS-Map die Auswertung richtig macht, befindet er sich im zweiten Teil.


    Die falschen Anzeigen kommen dann, wenn er sich in der Funktion "...FromCounts" befindet.


    Warum er da reinspringt, kann ich aber (noch) nicht sagen.



    Ich werde da mal weitersuchen und Dich auf dem Laufenden halten.


    Viele Grüße

  • Hallo Michi,


    wir haben uns heute die ganze Problematik nochmal angeschaut und an einem Testsystem (mit 2 Mastern) nachgestellt und sind nun einige Schritte weiter.


    Vorweg: Ich hatte einen ganz wesentlichen Eintrag übersehen: Unsere Konfigeinstellungen für das ndomy-Backend waren alle gemacht, aber die Zuweisung (backend=2) hat gefehlt *schäm*
    Mit anderen Worten: wir haben unbewusst NICHT NDO, sondern das LIVE-Backend genutzt.


    Nachdem wir das jetzt richtig gestellt haben, haben wir den von Dir bereits beschriebenen Fehler:
    Die Services, die in der DB mit "is_active = 0" eingetragen sind, werden zusätzlich angezeigt.


    Das oben beschriebene Problem tritt dann NICHT mehr auf. Es handelt sich dabei offensichtlich um ein Problem bei der Verwendung von LIVESTATUS-Backends.


    Wir wollen aber NDO-Backends einsetzen. Deshalb haben wir auf unserem Testsystem nun Nagvis V1.9b10 installiert und dort die NDO-Backend-Verbindung RICHTIG eingerichtet.
    und siehe da: wie Du vorher gesagt hast: da ist jetzt auch das "is_active=0"-Problem gelöst und alles ist in Ordnung.


    Aber stellt man das Livestatus-Backend ein, dann hat man das oben beschriebene Problem auch mit der aktuellsten V1.9-Beta-Version.


    Für uns ist es jetzt eigentlich erledigt, weil wir NDO einsetzen wollen und an den Produktiv-Rechnern die V1.8.5 durch die neueste V1.9-Beta-Version ersetzen werden.


    Darf ich dich noch um einen kleinen Tipp bitten:
    Kannst Du mir vielleicht noch sagen, ob ich dem Entwickler den Bug melden sollte?
    Ich würde das über einen "issue"-Eintrag auf github.com machen?
    Oder glaubst Du eher, dass es gar kein Bug, sondern ein Konfigfehler ist?


    Danke nochmal und viele liebe Grüße
    Thomas

  • U.a. deswegen wollte ich das Backend wissen. Bei Livestatus gibt es einen Bug in Icinga 2, welcher die Stats-Counts beeinflusst. Da du aber gesagt hast, dass du das IDO-Backend verwendest, dachte ich gleich an die is_active-Problematik. Die kam bei Kollegen und Kunden immer wieder hoch, weswegen ich da dem Lars einen Patch geschickt habe, den er dankenswerterweise angenommen hat. Der sollte sich auch auf die 1.8.5 applien lassen. Den Livestatus-Bug sollten wir irgendwann fixen, das hat aber gegenüber Problemen mit Notifications usw. weniger Priorität. Ich persönlich denke da eher an ein Icinga 2 API Backend für NagVis, das sollte wesentlich einfacher zu programmieren sein in PHP. Heisst ja auch ned dass wir alles machen müssen ;)

  • Hallo Michi,


    danke nochmal für die Geduld und die (wie immer) kompetente Hilfe!


    Ob wir V1.9b oder den Patch einsetzen, werden wir intern besprechen.
    Auf jeden Fall ist das Problem damit gelöst.


    viele liebe Grüße und ein schönes Wochenende
    Thomas