Monitoring mit Uptime Kuma
Du willst wissen ob deine Services laufen? Uptime Kuma ist die einfachste Lösung.
Was ist Uptime Kuma?
- Self-hosted Monitoring
- Schicke Status-Page
- Benachrichtigungen (Telegram, Discord, Slack, Mail...)
- Keine Abhängigkeiten zu externen Services
Installation
Docker (empfohlen)
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
volumes:
- uptime-kuma:/app/data
ports:
- "3001:3001"
volumes:
uptime-kuma:
docker compose up -d
Fertig. Öffne http://server-ip:3001.
Mit Traefik
services:
uptime-kuma:
image: louislam/uptime-kuma:1
restart: unless-stopped
volumes:
- uptime-kuma:/app/data
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.uptime.rule=Host(`status.example.com`)"
- "traefik.http.routers.uptime.tls.certresolver=letsencrypt"
- "traefik.http.services.uptime.loadbalancer.server.port=3001"
networks:
proxy:
external: true
Ersten Monitor erstellen
- Öffne das Dashboard
- "Add New Monitor"
- Wähle Monitor-Typ
HTTP(s) Monitor
Für Webseiten und APIs:
- URL:
https://example.com - Interval: 60 Sekunden
- Expected Status Code: 200
TCP Port Monitor
Für Services die kein HTTP sprechen:
- Hostname:
db.example.com - Port: 5432
Docker Container
Uptime Kuma kann Docker Container überwachen:
services:
uptime-kuma:
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
Dann Monitor-Typ "Docker Container" wählen.
DNS Monitor
Prüft ob DNS-Records korrekt sind:
- Hostname:
example.com - Record Type: A
- Expected Value:
1.2.3.4
Benachrichtigungen einrichten
Telegram
- Bot erstellen via @BotFather
- Chat-ID ermitteln (Nachricht an Bot, dann
https://api.telegram.org/bot<TOKEN>/getUpdates) - In Uptime Kuma: Settings → Notifications → Telegram
Discord
- Server Settings → Integrations → Webhooks
- Webhook URL kopieren
- In Uptime Kuma: Settings → Notifications → Discord
Mehrere Benachrichtigungen
Du kannst pro Monitor verschiedene Notifications setzen:
- Kritische Services: Telegram + SMS
- Interne Tools: Nur Discord
- Dev-Umgebung: Nur im Dashboard
Status Page
Das Killer-Feature: Öffentliche Status-Seite.
- Status Pages → New Status Page
- Slug wählen (z.B.
status) - Monitore hinzufügen
- Design anpassen
Erreichbar unter https://status.example.com/status
Incident Management
Bei Problemen:
- Status Page → "Post Incident"
- Beschreibung hinzufügen
- Wird auf der Status Page angezeigt
Maintenance Windows
Geplante Wartung ohne False Alarms:
- Maintenance → Schedule
- Zeitraum wählen
- Betroffene Monitore auswählen
Während der Maintenance: Keine Alerts.
API & Badges
Status Badge
Für dein README:

Push Monitor
Für Cronjobs und Scripts:
- Monitor erstellen mit Typ "Push"
- URL kopieren
- Am Ende deines Scripts:
curl -fsS "https://status.example.com/api/push/xxxxx?status=up&msg=OK"
Wenn der Push ausbleibt → Alert.
Backup
Wichtig: Die SQLite-Datenbank sichern!
# Im Container
docker exec uptime-kuma sqlite3 /app/data/kuma.db ".backup '/app/data/kuma-backup.db'"
# Oder Volume sichern
docker run --rm \
-v uptime-kuma:/data \
-v $(pwd):/backup \
alpine tar -czf /backup/uptime-kuma.tar.gz /data
Tipps
- Interval nicht zu kurz: 60s reicht meist
- Retries: 2-3 Retries bevor Alert (gegen Flapping)
- Timeout: Anpassen für langsame Endpoints
- Tags nutzen: Monitore gruppieren
- Backup nicht vergessen: Alle Monitore sind in der DB
Alternativen
- Gatus: Auch gut, config-file basiert
- Healthchecks.io: Für Cronjob-Monitoring (auch self-hosted)
- Prometheus + Grafana: Für komplexeres Monitoring
Fazit
Uptime Kuma ist in 5 Minuten aufgesetzt und macht genau was es soll. Schicke Status-Page, flexible Alerts, keine Kosten. Perfekt für kleine bis mittlere Setups.