Im Nagios Portal hat Jörg Linge ein recht Nettes Script gezeigt mit welchem er einen WordPress blog darauf überwacht, ob Manipulationen stattgefunden haben. Als Basis benutzt er hierzu Git und checkt dann ob das Repository sauber ist (working directory clean). Das ist es nämlich immer dann nicht, wenn Dateien veränder oder hinzugefügt wurden ohne dies zu commite.
Für mein Monitoring habe ich das ganze nun etwas angepasst, so das es einerseits als Check_MK local Check funktioniert, andererseits dann noch über ein Konfigurationsfile eingestellt werden kann und zuletzt noch die neue Piggybag Funktion aus Check_MK (ab 1.2.3i1) nutzt, welche es ermöglicht in der Agenten Ausgabe eines Hosts Huckepack Daten für einen mitzubringen.
Also zuerst mal die Konfigurationsfile, welche nach /etc/check_mk/git.cfg muss:
nagios_host1 service_name pfad-zum-git anderer_host service_name anderer_pfad_zum_git
Diese Konfiguration setzt nun voraus das es im Monitoring Hosts mit den Namen nagios_host1 sowie anderer_host gibt. Ansonsten folgt ein (pro host eindeutiger) Servicenamen und der Pfad zur Seite mit dem Git welche überwacht werden soll.
Der Check selbst muss nach /usr/lib/check_mk_agent/local
#!/bin/bash grep -Ev '^(A-Za-z) (A-Za-z) (.*)' "$MK_CONFDIR/git.cfg" | \ while read SITE NAME BASE do echo "<<<<$SITE>>>>" echo "<<<local>>>" if [ ! -e $BASE/.git ];then echo " 3 $NAME - UKN - is not a GIT Repository" continue fi cd $BASE REPO_STATE=$(git status --porcelain|wc -l) if [ $REPO_STATE -gt 0 ];then echo "2 $NAME - CRIT - Repository $BASE is NOT clean. $REPO_STATE files changed" else echo "0 $NAME - OK - Repository $BASE is clean." fi done echo "<<<<>>>>"
Und einfach ausführbar sein.
Jetzt Inventarisiert man erst den Host welcher den Agenten ausführt, dann nagios_host1 und anderer_host und schon haben die beiden im Blick ob etwas manipuliert wurde.
Nice. Ich mache so etwas ähnliches zwar schon länger mit AIDE. Die Methode hat natürlich den Vorteil, dass man geänderte Dateien sofort wieder aus dem GIT wiederherstellen kann…