# Checkmk Local Check: Docker Container Status Checkmk Local Check zur Überwachung von Docker-Containern per `docker ps`. ## Funktionsweise Das Script prüft für jeden konfigurierten Container den Status: | Container-Status | Checkmk-Status | |---|---| | `Up ...` (running) | OK (0) | | `Exited ...` | CRITICAL (2) | | `Restarting ...` | CRITICAL (2) | | Container nicht gefunden | CRITICAL (2) | | Keine Docker-Berechtigung | CRITICAL (2) | ## Konfiguration In der Datei `docker_container_check.sh` gibt es zwei Variablen. Je nachdem ob der Container-Name oder die Container-ID bekannt ist, die passende Variable befüllen (oder beide): ```bash # Ueberwachung per Container-Name: CONTAINER_NAMES="webserver,database,redis" # Ueberwachung per Container-ID: CONTAINER_IDS="a1b2c3d4e5f6,f6e5d4c3b2a1" ``` Die Container-ID findet man per `docker ps -a --format '{{.ID}} {{.Names}}'`. Beide Variablen können gleichzeitig genutzt werden. ## Installation 1. Script auf den Zielhost kopieren: ```bash scp docker_container_check.sh user@host:/usr/lib/check_mk_agent/local/ ``` 2. Ausführbar machen: ```bash chmod +x /usr/lib/check_mk_agent/local/docker_container_check.sh ``` 3. Sicherstellen, dass der Checkmk-Agent-Benutzer Docker-Befehle ausführen darf (Mitglied der Gruppe `docker` oder Ausführung via `sudo`). 4. In Checkmk eine Service-Erkennung auf dem Host durchführen — die neuen Services `Docker_` erscheinen automatisch. ## Test Manuell auf dem Host ausführen: ```bash /usr/lib/check_mk_agent/local/docker_container_check.sh ``` Erwartete Ausgabe: ``` 0 Docker_webserver - Up 3 hours 0 Docker_database - Up 3 hours 2 Docker_redis - Exited (1) 5 minutes ago ``` ## Hinweise - Das Script prüft vor der Ausführung ob Docker-Rechte vorhanden sind. Falls nicht, wird ein CRITICAL-Service `Docker_Check` mit dem Hinweis "Keine Berechtigung" erzeugt. - Der Plugin-Pfad kann je nach Installation variieren (`/usr/lib/check_mk_agent/local/` oder `/usr/local/lib/check_mk_agent/local/`). - Falls der Agent als `root` läuft, funktioniert `docker ps` direkt. Andernfalls muss der Agent-Benutzer in der Gruppe `docker` sein.