Hallo Leute
Ich hab mal eine Frage zur Verständlichkeit. Ich hab für Powershell und für Bash jeweils Scripte geschrieben die auch im Agent auftauchen, aber in der Discovery nicht automatisch erkannt werden.
Dann hab ich aber z.B. Scripte die ähnlich meinem sind und bei denen funktioniert das - ohne Voreinstellung am Checkmk Server. z. B. dieses Script für PiHole: https://pastebin.com/gwLbrvua
Das wird automatisch erkannt, wenn es auf dem Client im plugin Ordner liegt (komischerweise aber nicht mehr, wenn es z.B. unter plugin/7200 liegt.
Wenn ich es unter local lege, wird weder das PiHole Plugin noch mein eigenes erkannt.
`#!/bin/sh
echo "0 myservice - OK: This is my custom output"`
Wird zwar auch per Agent übermittelt, aber nicht automatisch erkannt.
Deine ganzen Beispiele sind alles Local Checks und sollten damit nie unter /plugins abgelegt werden.
Das Pi-Hole Script habe ich mal getestet als ganz normaler Local Check und es funktioniert auch wie gewünscht wenn innerhalb von /local abgelegt.
Es funktioniert ebenfalls ohne Probleme wenn das Pi-Hole Script in einem Unterverzeichnis wie local/300 liegt und damit nur noch alle 5 Minuten ausgeführt wird.
Wenn deine Scripte sich an die Vorgaben für Local Checks halten und im richtigen Verzeichnis liegen so sollte es zu keinen Problemen kommen.
Hallo Andreas
Danke für den Feedback - wenn ich das Pihole unter local packe, wird es nicht mehr von der Checkmk Discovery erfasst. Nur unter Plugins und auch nur wenn es nicht unter einem Sonderordner ist.
Und dasselbe auch mit dem Testcheck von Checkmk - egal ob unter Local oder unter Plugins - es taucht auf dem checkmk im Agent auf, wird aber per Discovery nicht erfasst. Sonstige Checks erkennt er aber immer problemlos.
Ist auch korrekt so
Deine beiden Local Checks geben eigene Header aus das ist nicht erlaubt oder besser gesagt vorgesehen. Damit wird jedes deiner Scripte wie ein Plugin behandelt und nicht wie ein Local Check.
Entferne bitte einfach in deinem Script die Ausgabe für
und
Wenn beide Scripte nun im /local sich befinden so werden diese nun auch ganz korrekt erkannt.
echo "1 OpenVPN Connections=$VPNIN WARN: Medium Connection | $VPNIN Connections"
Klappt! Am Anfang hat er sogar mal kurz den “Perf-O-Meter” angezeigt - was muss ich tun damit er den Graphen in pnp4nagios und im Perf-O-Meter anzeigt? Hatte ein wenig mit den Werten gespielt, aber hab es nicht mehr hinbekommen, dass er den wieder angezeigt hat.
Dachte durch Übermittlungs eines Max Wertes klappt es - leider aber nicht:
echo "1 OpenVPN Connections=$VPNIN;;41 WARN: Medium Connection | $VPNIN Connections"
PNP4Nagios Graph sollte ohne was zu tun funktionieren wenn der Check immer ordentliche Perf Daten liefert.
Ein Perf-O-Meter erscheint nur wenn es für deinen Performance Wert schon eine Definition gibt.
Falls kein PNP4Nagios Graph erscheint musst mal schauen ob auch wirklich immer valide Daten geliefert werden. Es geht natürlich nicht nur manchmal Perf-Daten zu liefern und meist nicht.
Ah stimmt, hatte dazu mal was gelesen. Pnp4 Nagios klappt - er zeigt mir die Linie an. Hatte statt “Connections” vorher testweise, glaube ich, Count drin - dazu gibt es dann vermutlich einen Perf-O-Meter".
Gibt es eine Möglichkeit die Berechnung bei dem Graphen noch anzupassen? Er gibt Werte mit Nachkommastellen aus. Bei Average ist das ja noch klar, aber bei Current oder Max nicht. Das Plugin gibt Werte ohne Nachkommastellen aus.
Du kannst natürlich eine eigene Graphendefinition erstellen.
Das ist etwas Arbeit und man sollte das schon mal gemacht haben.
Wenn die Namen der Einheiten zu keinen bereits definierten Größen passen so werden einfach Default Graphen benutzt und die sehen halt nicht unbedingt schön aus.
Ich würde mir einfach mal anschauen was schon alles definiert ist und danach entscheiden ob ich vielleicht meine Werte so benenne, dass diese zu bereits bestehenden Units passen.
Die relevante Datei mit allen enthaltenen Definitionen ist.
~/lib/python/cmk/gui/plugins/metrics/check_mk.py