Zum Hauptinhalt springen
Zurück zur Kategorie

Uptime Kuma Installation: Self-Hosted Uptime-Monitoring

Uptime Kuma Installation mit Docker, HTTP/TCP/DNS/Ping-Monitoring, Benachrichtigungsintegrationen (Telegram, Discord, E-Mail), Status-Page-Erstellung und Alert-Konfiguration.

Lesezeit: 12 Min Self-Hosting
uptime-kumamonitoringuptimeself-hostingdockerbenachrichtigungenstatus-page

Inhaltsverzeichnis

Uptime Kuma Installation: Self-Hosted Uptime-Monitoring

Uptime Kuma ist ein Self-Hosted Uptime-Monitoring-Tool, das den Betriebsstatus Ihrer Dienste und Websites überwacht. Mit einer schönen Weboberfläche, verschiedenen Monitor-Typen und umfangreichen Benachrichtigungsintegrationen bietet es eine großartige Alternative zu Uptime Robot.

Was ist Uptime Kuma?

Herausragende Merkmale von Uptime Kuma:

  • Monitor-Typen: HTTP(S), TCP, DNS, Ping, Docker Container, Steam Game Server
  • Benachrichtigungskanäle: Telegram, Discord, Slack, E-Mail, PagerDuty, Webhook und 90+ Integrationen
  • Status-Page: Anpassbare Statusseite
  • SSL-Überwachung: Verfolgung des Ablaufdatums von Zertifikaten
  • Wartungsfenster: Geplante Wartungsfenster definieren
  • 2FA-Unterstützung: Zwei-Faktor-Authentifizierung
  • Mehrsprachig: 40+ Sprachen

Installation

Installation mit Docker (Empfohlen)

hljs bash
docker run -d \
  --name uptime-kuma \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  louislam/uptime-kuma:latest

Nach der Installation:

http://SERVER_IP:3001

Installation mit Docker Compose

hljs yaml
# docker-compose.yml
version: '3.8'
services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - uptime-kuma:/app/data
    security_opt:
      - no-new-privileges:true

volumes:
  uptime-kuma:
hljs bash
docker compose up -d

HTTPS mit Nginx Reverse Proxy

hljs nginx
server {
    listen 80;
    server_name uptime.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name uptime.example.com;

    ssl_certificate /etc/letsencrypt/live/uptime.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/uptime.example.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_cache_bypass $http_upgrade;
    }
}

Monitor-Typen

HTTP(S)-Monitor

Monitor Type: HTTP(S)
Friendly Name: Startseite
URL: https://example.com
Heartbeat Interval: 60 Sekunden
Retries: 3
Accepted Status Codes: 200-299

TCP-Port-Monitor

Monitor Type: TCP Port
Friendly Name: MySQL-Datenbank
Hostname: db.example.com
Port: 3306
Heartbeat Interval: 120 Sekunden

DNS-Monitor

Monitor Type: DNS
Friendly Name: DNS-Prüfung
Hostname: example.com
Resolver Server: 8.8.8.8
DNS Resolve Type: A
Expected Value: 1.2.3.4

SSL-Zertifikat-Überwachung

Monitor Type: HTTP(S)
URL: https://example.com
# Im SSL-Tab:
Enable SSL Certificate Expiry Notification: AN
Notify Before (days): 30

Benachrichtigungsintegrationen

Telegram-Benachrichtigung

hljs bash
# 1. Bot über BotFather erstellen
# Bot-Token erhalten: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ

# 2. Chat-ID ermitteln
curl https://api.telegram.org/bot<TOKEN>/getUpdates
# Wert "chat":{"id":123456789} notieren
Notification Type: Telegram
Bot Token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
Chat ID: 123456789

Discord-Benachrichtigung

hljs bash
# Webhook in Discord erstellen:
# Server-Einstellungen → Integrationen → Webhooks → Neuer Webhook
# Webhook-URL kopieren
Notification Type: Discord
Discord Webhook URL: https://discord.com/api/webhooks/...
Username: Uptime Kuma

E-Mail (SMTP)-Benachrichtigung

Notification Type: Email (SMTP)
From Email: alerts@example.com
To Email: admin@example.com
SMTP Host: smtp.gmail.com
SMTP Port: 587
SMTP Username: alerts@example.com
SMTP Password: app-passwort
Security: STARTTLS

Status-Page erstellen

Neue Status-Page

  1. Status PagesNew Status Page
  2. Seitenname und Slug festlegen: status.example.com
  3. Logo und Titel hinzufügen
  4. Monitore zu Gruppen hinzufügen
  5. Mit Save speichern
hljs bash
# Status-Page-Einstellungen:
Title: Dienststatus
Description: Echtzeit-Status aller unserer Dienste
Theme: Auto (Hell/Dunkel)
Custom Domain: status.example.com

Wartungsfenster

Maintenance → Add Maintenance
Title: Wöchentliche Wartung
Strategy: Recurring
Start Time: Sonntag 02:00
End Time: Sonntag 04:00
Timezone: Europe/Berlin
Affected Monitors: Alle Monitore

Uptime Kuma aktualisieren

hljs bash
docker stop uptime-kuma
docker rm uptime-kuma
docker pull louislam/uptime-kuma:latest

docker run -d \
  --name uptime-kuma \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  louislam/uptime-kuma:latest

Datensicherung

hljs bash
# Uptime Kuma-Daten sichern
docker exec uptime-kuma tar -czf /tmp/backup.tar.gz /app/data
docker cp uptime-kuma:/tmp/backup.tar.gz ./uptime-kuma-backup-$(date +%Y%m%d).tar.gz

Sie können alle auf Ihren REXE-Servern laufenden Dienste mit Uptime Kuma überwachen. Mit Telegram-Benachrichtigungen werden Sie sofort über Dienstausfälle informiert.