Prüfen auf Unterschiede zwischen VMs im Monitoring und dem ESX-Check

Wenn du Checkmk Enterprise nutzt, kannst du einen Piggyback Job anlegen, der Systeme anlegt, wenn Piggyback Informationen vom vCenter kommen, wodurch neue Systeme automatisch im Checkmk landen.

Wir haben sonst manchmal folgendes als Cronjob im Einsatz:

FILTER=/mnt/dfs/ignorierte_vms.txt
PIGGY_TMP=~/local/share/check_mk/web/htdocs/piggy_orphans
UNMONITORED_VMS=~/local/share/check_mk/web/htdocs/vms_nicht_checkmk.txt

0 * * * * ~/share/doc/check_mk/treasures/find_piggy_orphans > $PIGGY_TMP; grep -v "^$" $FILTER | grep -v -f - $PIGGY_TMP > $UNMONITORED_VMS; if ! [ -r $FILTER ]
; then echo "Filter Datei $FILTER konnte nicht gelesen werde. Wurde sie umbenannt oder gelöscht?" >> $UNMONITORED_VMS ; fi

Was passiert hier?

  1. ~/share/doc/check_mk/treasures/find_piggy_orphans

Dieses Skript, dass jede Checkmk Instanz mitbringtn, vergleicht alle vorhandenen Hosts (Quelle: Livestatus) mit den Hosts, für die das vCenter Piggyback Daten liefert (Ordner in ~/tmp/check_mk/piggyback)
Klein- und Großschreibung sollte dabei jeweils identisch sein.
(!) Achtung - hierbei werden auch Piggybackdaten anderer Systeme miteinbezogen. z.B. das Veeam-Plugin etc…

  1. grep -v “^$” $FILTER | grep -v -f - $PIGGY_TMP > $UNMONITORED_VMS

Jeder Checkmk-Nutzer hat sicher VMs, die absichtlich nicht gemonitort werden sollen, diese können in einer Textdatei hinterlegt werden.
Alle in der Datei /mnt/dfs/ignorierte_vms.txt hinterlegten Hostnamen werden dann entsprechend ignoriert und nur die verbleibenden Hosts werden in eine Textdatei im htdocs/ Verzeichnis verschoben. In der Filter-Datei ignorierte_vms.txt können Reguläre Ausdrücke oder unvollständige Hostnamen genutzt werden (so wird z.b. wenn die Datei eine Zeile mit “test_” enthält, jeder Host ignoriert, der so beginnt, siehe auch “man grep”)
Der Pfad “/mnt/dfs/” verrät evtl. schon eine weitere Idee: damit User ohne Probleme diese Datei schnell anpassen können, sollte diese nicht auf dem Checkmk selbst liegen, sondern in einem Windows-Share, der dann vom Checkmk Host nur eingebunden wird. (Das kann man natürlich auch ganz anders bauen, wir fanden es so einfacher)

Das "grep -v “^$” am Anfang sorgt dafür, dass Leerzeilen in der Filterdatei ignoriert werden. Eine Leerzeile wird sonst von “grep” in jeder Zeile des Piggyback Output gematched und führt zu einem leeren Output!!

Wichtig: ignorierte_vms.txt muss nur Linux-Zeilenumbrüche, keine Windows-Zeilenumbrüche nutzen

Um den Kunden daran zu erinnern, diese Hinweise am besten mit # in die obersten Zeilen schreiben.

  1. Was passiert mit ~/local/share/check_mk/web/htdocs/vms_nicht_checkmk.txt // $UNMONITORED_VMS?

Diese Datei kann über https://<cmk_instanz>/check_mk/vms_nicht_checkmk.txt’ abgerufen werden, so kann per HTTP Check die Dateigröße geprüft werden. Wenn die Datei größer als 304 Byte ist, enthält sie mindestens einen Host und der Check sollte auf Warning gehen. Damit weiß man, dass ggfs. eine weitere VM ins Monitoring aufgenommen werden muss.

1 Like