71 lines
2.1 KiB
Markdown
71 lines
2.1 KiB
Markdown
# 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_<containername>` 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.
|