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:\1
for /f %%i in ('cat d:\1') 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

Am Anfang war der C-64 des großen Bruders des besten Freundes in der Grundschule …

Der echte Technikwahn kam dann mit einer Ausbildung bei Saturn – als Computer noch erklärt werden mussten, Soundkarten benötigten, ein gutes Monatsgehalt kosteten und das Internet nur bei Nerds und mit 38 kbp/s lief, bestenfalls.

Ein Studium der Informationswirtschaft und ein paar Jahre als Redakteur bei Data Becker später, sitzt hier ein freier Journalist, der auf Old-School-Computing (cli ftw!), Free Software, Frickelei, Kodi und „Hundedinger“ steht – und Grauseligkeiten wie Bild und Heftig.co zutiefst verabscheut.

Und sonst so? Sauerländer, Ex-BSI’ler, untalentierter Musikinstrumentebesitzer und seit 26 Jahren Skateboarder, ein ziemlich alter. Und manchmal kommt das abgebrochene Philo-Studium wieder durch …

Artikel kommentieren:

Close