# Checkmk Local Check: Docker File/Directory Check Checkmk Local Check zur Prüfung ob Dateien oder Verzeichnisse in Docker-Containern existieren. ## Funktionsweise Das Script prüft per `docker exec ... test -e` ob ein Pfad im Container vorhanden ist. Es erkennt automatisch ob es sich um eine Datei oder ein Verzeichnis handelt. | Status | Checkmk-Status | |---|---| | Pfad existiert (Datei oder Verzeichnis) | OK (0) | | Pfad fehlt | CRITICAL (2) | | Container läuft nicht | CRITICAL (2) | | Keine Docker-Berechtigung | CRITICAL (2) | ## Konfiguration In der Datei `docker_file_check.sh` das Array `CHECKS` anpassen. Format pro Zeile: ``` CONTAINER_NAME:PFAD1,PFAD2,PFAD3 ``` Beispiel: ```bash CHECKS=( "webserver:/etc/nginx/nginx.conf,/var/log/nginx,/usr/share/nginx/html/index.html" "database:/var/lib/mysql/data,/etc/my.cnf" "app:/root/db.sql,/data,/root/config.yml" ) ``` - Vor dem Doppelpunkt steht der Container-Name - Nach dem Doppelpunkt die zu prüfenden Pfade, kommagetrennt - Jeder Container bekommt eine eigene Zeile - Dateien und Verzeichnisse können gemischt angegeben werden ## Installation 1. Script auf den Zielhost kopieren: ```bash scp docker_file_check.sh user@host:/usr/lib/check_mk_agent/local/ ``` 2. Ausführbar machen: ```bash chmod +x /usr/lib/check_mk_agent/local/docker_file_check.sh ``` 3. In Checkmk eine Service-Erkennung auf dem Host durchführen. ## Test Manuell auf dem Host ausführen: ```bash /usr/lib/check_mk_agent/local/docker_file_check.sh ``` Erwartete Ausgabe: ``` 0 Docker_File_webserver__etc_nginx_nginx_conf - Datei /etc/nginx/nginx.conf existiert in webserver 0 Docker_File_webserver__var_log_nginx - Verzeichnis /var/log/nginx existiert in webserver 2 Docker_File_app__root_db_sql - /root/db.sql fehlt in app ``` ## Hinweise - Der Container muss **laufen**, damit `docker exec` funktioniert. Gestoppte Container werden als CRITICAL gemeldet. - Das Script prüft vor der Ausführung ob Docker-Rechte vorhanden sind. - Der Plugin-Pfad kann je nach Installation variieren (`/usr/lib/check_mk_agent/local/` oder `/usr/local/lib/check_mk_agent/local/`).