Eigene Script im Agent aber nicht auf dem Checkmk Server

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.

Wie kann so was sein?

Greetz
OVrld

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.

Greetz

Wie schaut die Ausgabe aus wenn der Agent ausgeführt wird? Wenn alles korrekt ist sollte es wie folgt in etwa aussehen.

<<<md>>>
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>
<<<vbox_guest>>>
<<<local>>>
cached(1584621683,300) 0 Pi-Hole - OK: Pi-Hole service is running
<<<apt:sep(0):cached(1584618998,7200)>>>
No updates pending for installation

Zu sehen ist auch nach dem Local Check kommt noch ein normales Plugin.
Wichtig ist, vor dem Local Check muss auch das “<<>>” stehen.

<<<local>>>
<<<openvpn_user>>>
0 OpenVPN - OK: Less Connections | 16 Connections
<<<test>>>
0 myservice - OK: This is my custom output

Beide werden nicht erkannt von Checkmk

Ist auch korrekt so :smiley:
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.

1 Like

Im Handbuch ist das auch schön erklärt.

1 Like

Haha es kann so einfach sein - es klappt! Danke! :slight_smile:

Eine kleine Frage hätte ich noch - ich versuch in dem einen Check Perfdata mit rein zu nehmen um mir eine grafische Auswertung anzeigen zu lassen.

echo "1 OpenVPN - WARN: Medium Connections | $VPNIN Connections"

Wenn ich das richtig verstehe, muss nun so was mit in die Ausgabe:

valuename=value;warn_lower:warn_upper;crit_lower:crit_upper
humidity=27;40:60;30:70

Allerdings will das nicht so ganz - er gibt mir lediglich die Ergebnisse aus, baut aber keinen Graphen.

Greetz

Perfdata ist im Lokal Check dort wo in deinem Output “-” sich befindet.
Siehe hier https://checkmk.de/cms_localchecks.html#perfdata
Mit Beispiel Output für mehr als einen Performance Wert

0 myservice count1=42|count2=21;23;27|count3=73 OK - This is my custom output
2 Likes

Perfekt, ich danke dir!

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