Nagvis - Weatherlines falsche Anzeige werte

Hi Zusammen,

evtl kann mir ja einer helfen:

Auf unserem alten system mit NAGVIS 1.9.5 werden die Werte der Weatherline richtig dargestellt

in der neuen Version 1.9.17 nicht mehr (siehe Bild)

Hi,
falsch sind die ja nicht, die werden jetzt einfach in Byte/s statt Bit/s angezeigt (Faktor 8)

da gebe ich dir recht habe es aber explicit im Host auch nochmals auf Bit/s umgestellt aber auf die Weatherline wirk sich das nicht aus … brauche die Anzeige aber in MBit/s
Habe die Einstellungen aus dem alten System 1:1 ins neue ĂĽbertragen

GruĂź Bernd

Hallo Bernd,

das Problem ist hier nicht NagVis sondern liegt bei CheckMK.
Dieses speichert die Werte immer in Bytes ab und liefert die Performance Daten auch immer in Bytes aus. Das in der Oberfläche das als Bits angezeigt wird liegt hier nur an der Konfiguration für dieses Interface.
Im NagVis gibt es eine krude Logik zur Erkennung ob Bits oder Bytes geliefert werden. Original Kommentar im Code :slight_smile:

    // Check_MK if/if64 checks support switching between bytes/bits. The detection
    // can be made by some curios hack. The most hackish hack I've ever seen. From hell.
    // Well, let's deal with it.

Der Hack scheint aber mit der aktuellen CheckMK Version zusammen nicht mehr zu funktionieren.

GruĂź
Andreas

Hi Andreas,

wäre evtl der check_iftraffic3 eine Lösung habe ihn noch nie in Verwendung gehabt.

GruĂź Bernd

oder eben check_iftraffic64

wenn ich es heute noch schaffe probier ich mal die 2 aus und gebe mal RĂĽckmeldung.

GruĂź Bernd

Ich würde abraten von “klassischen” Checks für den Traffic von Interfaces.
Wegen aufwendig und langsam vom SNMP her.

Hier wäre es besser mal zu schauen ob man im NagVis nicht einen Workaround finden kann. Wenn du im NagVis immer alles in Bits sehen willst kannst das auch einfach dort hard codieren.
Ist zwar nicht der schönste Weg aber einer der einfachen.

Hi Andreas,

dann bitte erleuchte mich :wink:

HowTo set NAGVIS permanent to Bits ???

glG
Bernd

Hi Bernd,

die relevante Datei ist /frontend/nagvis-js/js/ElementLine.js innerhalb von NagVis.
Dort findest du die folgenden Zeilen.

    // Check_MK if/if64 checks support switching between bytes/bits. The detection
    // can be made by some curios hack. The most hackish hack I've ever seen. From hell.
    // Well, let's deal with it.
    var display_bits = false;
    if(oldPerfdata.length >= 11 && oldPerfdata[10][5] == '0.0')
        display_bits = true;

Hier sollte es reichen die Zeile

    var display_bits = false;

in

    var display_bits = true;

zu ändern.
Die Ă„nderung kann meines Wissens nach nur global erfolgen. Das sollte hier klar sein :slight_smile:

GruĂź
Andreas

Hi Andreas,

leider hat es nicht gefruchtet habe auch weiter unten die Berechnungen mal geändert unter

    /**
 * Transform bytes in a perfdata set to a human readable value
 */
perfdataCalcBytesReadable: function(set) {

und noch an verschieden anderen Stellen hat leider nicht den gewünschten Erfolg gezeigt …

Ich suche mal weiter … falls aber noch jemand eine Idee hat gerne her damit …

GruĂź Bernd

Habe auch nochmal explizit geschaut welcher check verwendet wird und wie der long Output aussieht:

in=17838.607392;;;0;1875000 inucast=154.10004;;;; innucast=0.97448;;;; indisc=0;;;; inerr=0;0.01;0.1;; out=48.492789;;;0;1875000 outucast=0.264266;;;; outnucast=0.445949;;;; outdisc=0;;;; outerr=0;0.01;0.1;; outqlen=0;;;;

check_mk-if64

Also bis auf aufhängen habe ich soweit alles durch

in ./share/nagvis/htdocs/frontend/nagvis-js/js/ElementLine.js auf bits umgestellt:

    // Check_MK if/if64 checks support switching between bytes/bits. The detection
    // can be made by some curios hack. The most hackish hack I've ever seen. From hell.
    // Well, let's deal with it.
    var display_bits = true;
    if(oldPerfdata.length >= 11 && oldPerfdata[10][5] == '0.0')
        display_bits = true;

die Regel: Hosts forced to use if instead of if64 gesetzt

Der Host zieht auch die Regel und check_mk-if wird stat dem 64er verwendet

Die Performenc Graphen und auch der Output sind in Bit/s

Service performance data (source code)
in=54943.18723;;;0;1250000 inucast=179.4673;;;; innucast=0;;;; indisc=0;;;; inerr=0;0.01;0.1;; out=94851.916021;;;0;1250000 outucast=481.715832;;;; outnucast=0;;;; outdisc=0;;;; outerr=0;0.01;0.1;; outqlen=0;;;;

trotz allem das:

:triumph:

weis der Teufel wo hier der BUG sitzt …

GruĂź Bernd

Problem gefunden :slight_smile:
Es existiert in dem gleichen Verzeichnis noch die Datei “NagVisCompressed.js” diese enthält alle js Files nochmal als ein dicker Brocken.
Mal im Editor öffnen und einfach nach “bits” suchen. Fundstelle “var display_bits=false;” nach true ändern. Speichern, Apache durchstarten und deinen Browser einmal mit Shift+F5 sauberen reload machen danach sollte es funktionieren.

Beispiel von mir nach der Ă„nderung.

1 Like

Hi Andreas,

fĂĽr mich bist du der HERO of the week !!!

Funktioniert bestens …

Wäre evtl für Nagvis ein Feature Request, das man das direkt in der GUI festsetzen kann wobei es ja auch kein Problem ist die Conf mal schnell anzupassen.

Einzig nach jedem Update muss man eben dran denken …

Frohes Fest
Bernd

Naja da sollte im NagVis dann im Endeffekt ein Schalter vorhanden sein Bits oder Bytes.
Also ordentlich konfigurierbar fĂĽr jedes Objekt. Was wir gemacht haben ist halt nur ein Workaround.
Vielleicht liest Lars das selbst :slight_smile:

Ja das wäre der richtige Weg,

aber mal schauen in welche Richtung es im generellen mit NAGVIS geht …

:wave: LaMi