Hallo zusammen,
ich bin neu hier und bitte um Nachsicht, falls die Antwort auf meine Frage über die “Suche” zu finden ist, für mich war sie das leider nicht ;).
Bietet Check_MK die Möglichkeit eine bestimmte .sh Datei unter Linux auf deren Berechtigungsgruppe und Datei-Berechtigung hin zu prüfen?
Eine Alarmierung sollte erfolgen wenn bspw. die Gruppe nicht “TEST” und die Berechtigung nicht “Oktal:750” ist.
Die Prüfung, ob die Datei generell vorhanden ist, habe ich bereits umgesetzt und dafür die “fileinfo.cfg” genutzt.
Eine Möglichkeit ist es hierzu einen local check zu erstellen zum Beispiel als shell script. Das script kommt dann in das $MK_LIBDIR/local Verzeichnis und muss ausführbar sein. Wenn alles richtig ist dann wird der Service nach einen Service Discover gefunden und angezeigt.
#!/bin/bash
file_path="/tmp/example.txt" # Replace with the actual file path
expected_permission="-rw-r--r--" # Replace with the desired permission pattern
expected_group="my_group" # Replace with the desired group name
# Check if file exists
if [ ! -e "$file_path" ]; then
echo "1 \"File $file_path\" - File not found: $file_path"
exit 1
fi
# Check file permissions
actual_permission=$(stat -c "%A" "$file_path")
if [ "$actual_permission" != "$expected_permission" ]; then
echo "1 \"File $file_path\" - File permission $file_path mismatch: Expected $expected_permission, found $actual_permission"
exit 1
fi
# Check file group
actual_group=$(stat -c "%G" "$file_path")
if [ "$actual_group" != "$expected_group" ]; then
echo "1 \"File $file_path\" - File group mismatch: Expected $expected_group, found $actual_group"
exit 1
fi
# Everything matches
echo "0 \"File $file_path\" - File as expected: $expected_group $expected_permission"
exit 0
Leider war es mir bis vor kurzem nicht möglich am System zu arbeiten.
$MK_LIBDIR/local → wo finde ich das Verzeichnis? Kann ich mir die Variable auf dem System anzeigen lassen?
Derzeit haben wir die anderen Checks so abgebildet, dass diese nur geprüft werden, wenn bestimmte Bedingungen (Betriebssystem = Linux & Pruefe_Service X&Y → Ja) etc. gesetzt sind.
Das Skript soll schon auf alle Linux Systeme hinterlegt werden. Einige Systeme müssen aber von der Prüfung ausgeschlossen werden können.
Nochmal der Hinweis, die Doku beschreibt das sehr gut: Local checks
Wenn die $MK Pfade nicht explizit verändert wurden ist das unter Linux /usr/lib/check_mk_agent/local/
Wenn das Script auf allen Systemen verteilt wurde dann werden die Services von CheckMK auch gefunden. Entweder auf den betroffenden Systemen das Script nicht verteilen oder z.B. dann im CheckMK die nacharbeit das man die Überprüfung des Services abschaltet.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.