Ein neues openITCOCKPIT Check Plugin erstellen¶
openITCOCKPIT nutzt ein Plugin basiertes system um den Status von Hosts und Services zu überprüfen. Die Plugin API ist zu 100 % kompatibel mit der Nagios , Naemon , Shinken und Icinga 1.x Plugin API. Standardmäßig wird openITCOCKPIT mit einem standardset an Plugins zum grundlegenden Überprüfen von Netzwerk features wie Ports, laufende Prozesse, CPU Auslastung und so weiter.
In manchen Fällen ist es praktikabel ein eigenes, spezialisiertes Plugin für tiefgreifendes Monitoring zu schreiben.
Plugins für openITCOCKPIT können in allen Programmiersprachen entwickelt werden. Angefangen von einem einfachen bash skript bis hin zur komplexen Python oder C Binary - alles ist möglich. Für manche Sprachen wie Perl oder Python existieren sogar helper Klassen, welche die Entwicklung beschleunigen und vereinfachen.
Plugin Übersicht¶
Ein Plugin hat, um kompatibel mit openITCOCKPIT zu sein, folgende Mindestvoraussetzungen:
- Das Skript oder Binary muss ausführbar sein
- "Exit" mit einem validen Rückgabewert (siehe Return Codes)
- Muss mindestens eine Zeile Text (plugin output) an STDOUT zurückgeben.
Plugin Pfade¶
Die Standard-Plugins, welche mit openITCOCKPIT ausgeliefert werden, befinden sich im
Ordner /opt/openitc/nagios/libexec
. Es wird empfohlen (jedoch nicht notwendig) einen eigenen, separaten Ordner für
eigene Plugins, beispielsweise /opt/openitc/my_checks/
, zu erstellen.
Return Codes¶
Hosts¶
Plugin Return Code | Host State |
---|---|
0 | UP |
1 | DOWN |
2 | UNREACHABLE |
Services¶
Plugin Return Code | Service State |
---|---|
0 | OK |
1 | WARNING |
2 | CRITICAL |
3 | UNKNOWN |
Plugin Output¶
Standardmäßig muss der "Plugin Output" eine Zeile Text nach STDOUT, wie in diesem Beispiel, betragen.
#!/bin/bash
echo "This is the minimum plugin output"
# Return with status UP or OK
exit 0
openITCOCKPIT unterstützt BBCode für das Styling von eingebetteten Hyperlinks im Plugin Output.
echo "This is [b]bold text[/b]"
Performance Daten (Metriken)¶
Performance Daten werden von openITCOCKPIT genutzt um Graphen für das Interface, Benachrichtigungen und Grafana zu erstellen.
Performance Daten werden durch ein "pipe" Symbol |
vom Plugin Output separiert. Dies ist optional da nicht jedes
Plugin Performance daten liefert.
Das format der Performance daten ist wie folgt:
'label'=value[UOM];[warn];[crit];[min];[max]
- Eine durch Leerzeichen separierte Liste von Label/Werte Paaren
- Enthält das Label ein Leerzeichen, muss das Label innerhalb von einfachen anführungszeichen stehen (
'
) - Numerische werte müssen im US-Format angegeben werden (
10.5
anstatt10,5
) - Optionale Maßeinheit (bspw.:
s
,ms
,kg
etc.)- Optionaler WARNING Schwellwert
- Optionaler CRITICAL Schwellwert
- Optionaler minimum Schwellwert
- Optionaler maximum Schwellwert
Beispiel Plugin Output | Legende |
---|---|
PING OK - Packet loss = 0%, RTA = 17.30 ms|rta=17.302000ms;100.000000;500.000000;0.000000 pl=0%;20;60;0 | Plugin Output Performance Daten |