Als NETWAYS schreiben wir uns selbst ein sehr hohes Icinga/Nagios KnowHow auf die eigene Fahne. Aber auch wir haben, wie 99,99% aller Icinga/Nagios Anwender, immer wieder den ein oder anderen Fallstrick zu bewältigen.
Ein Problem, welches sehr häufig Auftritt, das richtige maskieren von Sonderzeichen in Check-Definitionen.
Ein ganz simples Beispiel: Mit wie vielen Backslashes (\) muss man die Pfadangaben eines Shares maskieren, damit Icinga/Nagios diese richtig interpretiert?
Wie ist das vorgehen in einem solchen Szenario? Richtig, man ändert so lange und so oft die Definition, führt jedes mal einen Icinga/Nagios Reload aus und führt den Check neu aus bis man irgenwann das gewünschte Ergebnis hat… Das dies mitunter längere Zeitspannen in Anspruch nimmt ist vielen durchaus bewusst, uns auch!
Icinga/Nagios besitzt im Core ca. 10 Zeilen, welche für das maskieren von Sonderzeichen verantwortlich sind. Dieses kleine Snippet/Wrapperplugin hilft uns nun dabei unsere Checks im vorhinein schon richtig zu bauen und zu testen, um sie anschließend in die jeweilige Definition zu übernehmen.
Ein Aufruf des Wrapperplugins sieht wie folgt aus:

# ./check_executor /opt/icinga/libexec/check_http -H icinga -u "/icinga-web"
Executing command /opt/icinga/libexec/check_http -H icinga -u /icinga-web
Check output: HTTP OK: HTTP/1.1 301 Moved Permanently - 305 bytes in 0.001 second response time |time=0.001075s;;;0.000000 size=305B;;;0

Executing command gibt den eigentlichen Pluginaufruf aus, wie er duch Nagios/Icinga ausgeführt wird.
Check output beschreibt die eigentliche Ausgabe, wie sie u.a. auch in der Weboberfläche sichtbar wäre.
Zu finden ist das ganze in unserem GIT: https://git.netways.org/plugins/collection/trees/master/plugins/check_executor
Um Verwechslungen grundsätzlich aus dem Weg zu gehen: “Der Checker” kümmert sich natürlich um schöne Autos, unser “Checker” um Icinga/Nagios Plugins.