Check_MK-Serie Teil 5: Eigene Check-Plugins sind beliebige Skripte, die nur in einem bestimmten Ordner liegen müssen. Und das Output-Format muss stimmen.

Über eigene Skripte könnt Ihr Check_MK mit so ziemlich jeder Information versorgen. Und die Netzwerküberwachung macht es Euch an dieser Stelle wirklich extrem einfach: Skripte müssen lediglich in einem Ordner abgelegt werden und Output in einem bestimmten Format liefern.

Alle Links zur Check_MK-Serie findet Ihr im Übersichtsartikel, der stets aktuell ist.

1. Das Ergebnis zuerst

Hier mal das berühmte von hinten aufgezäumte Pferd: Für den Bau des Skripts, solltet Ihr erst einmal sehen, wie das Ergebnis in Check_MK aussieht. Euer Skript taucht wie jeder andere Service auch beim zugehörigen Host auf und wird wie in Teil 1 der Serie beschrieben zum Monitoring hinzugefügt. Wichtig ist der Output: Zunächst das OK-Zeichen, dann der Service-Name, dann die Beschreibung – und ganz rechts könnten optional noch Performance-Daten als Graph dargestellt werden. Und das Skript, hier „myservice“; muss eben diese vier Elemente ausgeben, in der Art 1 myservice – Eine Beschreibung. Statt Performance-Daten steht hier der , brauchen wir nicht.

Das Windows-Batch-Skript soll prüfen, ob der Prozess chrome.exe läuft. Wie das mit eingebauten Check_MK-Mitteln funktioniert, könnt Ihr in Teil 7 nachlesen.

check_mk eigene skripte

Wenn der Output richtig formatiert ist, taucht er als Service auf.

2. Skript schreiben

Zunächst das Wichtigste: Das Skript speichert Ihr unter Windows, bei Standard-Installation des Check_MK-Agents, einfach unter C:\Program Files (x86)\check_mk\local – entsprechend heißen diese Checks auch Local Checks. Als Beispiel ein möglichst simpler Code:

@echo off
tasklist|grep chrome|wc -l|cut -c6- > d:
for /f %%i in ('cat d:') do set a=%%i
if %a% GTR 0 (echo 1 myservice - Vorsicht: Chrome ist aktiv) else (echo 0 myservice - Alles gut: Chrome ist nicht aktiv)

Erstmal `tschuldigung für das grausige Skript …, natürlich sollte man Textdateien nicht als Puffer missbrauchen, aber das war schneller getippt und Scripting unter Windows ist doof – ist ja nur ein Beispiel :) Und wer sich über die Befehle wundert: grep, wc, cut und Konsorten stammen aus dem Projekt UnxUtils, das die meisten Gnu-Tools als native Win32-Programme liefert. Sehr empfehlenswert! Was macht das Skript: Über tasklist werden die laufenden Windows-Tasks ausgelesen, nach „chrome“ durchsucht, die Treffer gezählt und wenn es Treffer gibt, wird „1 myservice …“ ausgegeben, oder eben „0 myservice …“. Dabei stehen die Ziffern für die Status, also 0 für OK und 1 für WARN.

check_mk eigene skripte

Ein simples Batch-Skript im richtigen Ordner genügt.

Ein Linux-Beispiel: Das Skript landet hier unter /usr/lib/check_mk_agent/local/. Ihr könntet etwa melden lassen, wenn auf Spiegel Online das Wort „Berlin“ vorkommt:

a=$(curl www.spiegel.de | grep -ci berlin) 
if [ $(echo $a) -gt 1 ] 
 then echo "0 BerlinCheck - Berlin wird bei SPON erwähnt, alles gut ..." 
 fi

Auf gleiche Weise ließen sich natürlich beliebige Quellen anzapfen, Security-Boards, CERTs, Twitter-Channel, das eigene Intranet und so weiter.

Über den Autor

Mirco Lang

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Stichwortschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler.

Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds.

Wenn ich Dir helfen konnte und/oder Du hier mehr über Open Source, Linux, Bastelkram oder auch Windows-Basics lesen möchtest:
Spendier mir einen Kaffee via Paypal.

Kommentieren:

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere