#!/bin/bash # # Checkmk Local Check: Docker Container Status # # Prueft per "docker ps -a" ob die angegebenen Container laufen. # Wird als Local Check im Checkmk-Agenten verwendet. # # Status-Mapping: # running -> OK (0) # alles andere -> CRITICAL (2) # Container nicht da -> CRITICAL (2) # # === KONFIGURATION === # Container-Namen kommagetrennt angeben: CONTAINERS="container1,container2,container3" # ====================== IFS=',' read -ra CONTAINER_LIST <<< "$CONTAINERS" for CONTAINER in "${CONTAINER_LIST[@]}"; do # Leerzeichen entfernen CONTAINER=$(echo "$CONTAINER" | xargs) SERVICE_NAME="Docker_${CONTAINER}" # Container-Status abfragen STATUS=$(docker ps -a --filter "name=^/${CONTAINER}$" --format '{{.Status}}' 2>/dev/null) if [ -z "$STATUS" ]; then echo "2 ${SERVICE_NAME} - Container \"${CONTAINER}\" nicht gefunden" elif echo "$STATUS" | grep -qi "^Up" && ! echo "$STATUS" | grep -qi "Restarting"; then echo "0 ${SERVICE_NAME} - ${STATUS}" else echo "2 ${SERVICE_NAME} - ${STATUS}" fi done