Tropic Host

Uptime Kuma auf einem VPS: Websites und Server überwachen

7 Min Lesezeit
Tropic
Uptime Kuma auf einem VPS: Websites und Server überwachen

Language: de

Uptime Kuma: eigene Website-Überwachung auf einem VPS einrichten

Eine Website kann ausfallen und trotzdem 200 OK zurückgeben. Auch ein Backup kann ohne offensichtliche Fehlermeldung nicht mehr laufen. Uptime Kuma erkennt beide Fälle: Es prüft Websites, APIs, Ports und Hintergrundaufgaben und sendet eine Benachrichtigung, wenn etwas nicht stimmt.

Wir zeigen, wo das Überwachungssystem gehostet werden sollte, welchen VPS es benötigt und wie Sie Uptime Kuma 2 installieren, HTTPS aktivieren, Telegram verbinden und eine Statusseite erstellen.

Uptime Kuma in sieben Schritten

  1. Stellen Sie einen kleinen VPS getrennt von den überwachten Projekten bereit.
  2. Richten Sie eine Subdomain wie monitor.example.com darauf.
  3. Installieren Sie Docker und starten Sie Uptime Kuma 2.
  4. Schließen Sie den internen Port 3001 und aktivieren Sie HTTPS.
  5. Erstellen Sie HTTP-, DNS-, TCP- oder Push-Monitore.
  6. Konfigurieren Sie Telegram und bei Bedarf eine Statusseite.
  7. Richten Sie Updates und ein externes Backup des Datenverzeichnisses ein.

Was ist Uptime Kuma?

Uptime Kuma ist ein kostenloses, quelloffenes und selbst gehostetes Tool. Sein Dashboard und der Verlauf der Prüfungen werden auf Ihrem eigenen Server gespeichert.

Es kann HTTP(S), TCP-Ports, Ping, DNS, WebSocket, Text und JSON in Antworten, Push-Signale sowie Docker-Container überwachen. Das kleinste Prüfintervall beträgt 20 Sekunden. Außerdem gibt es Dutzende Benachrichtigungskanäle, 2FA, Latenzdiagramme, TLS-Zertifikatsüberwachung und mehrere Statusseiten.

Einen hinter 200 OK versteckten Fehler erkennen

Eine einfache HTTP-Prüfung sieht nur den Antwortcode. Ein Webserver kann jedoch eine leere Seite oder eine Fehlermeldung der Anwendung anzeigen und trotzdem einen erfolgreichen Status zurückgeben.

Für eine genauere Überwachung verwenden Sie:

  • Keyword — sucht nach einer erwarteten Formulierung, etwa dem Namen der Website oder dem Text „Account dashboard“;
  • JSON Query — prüft einen Wert in einer API-Antwort, zum Beispiel status: healthy.

So bestätigt der Monitor nicht nur, dass der Port erreichbar ist, sondern auch, dass die Anwendung mindestens ein erwartetes Zeichen für den korrekten Betrieb zeigt.

Push-Monitor für Backups und Cron-Aufgaben

Ein Push-Monitor fragt einen Dienst nicht regelmäßig ab. Stattdessen wartet er auf ein regelmäßiges Signal dieses Dienstes. Ein Backup-Skript oder Cron-Job ruft nach erfolgreichem Abschluss eine eindeutige URL auf. Wenn das Signal nicht rechtzeitig eintrifft, meldet Uptime Kuma einen Fehler.

Damit lässt sich ein „stilles“ Problem erkennen: Die Website funktioniert noch, aber das tägliche Backup wurde seit mehreren Tagen nicht erstellt.

Was Uptime Kuma nicht ersetzt

Uptime Kuma überwacht hauptsächlich Verfügbarkeit und Antwortzeit. Für CPU, RAM, Festplatte, Logs und Container-Metriken ergänzen Sie es mit Prometheus, Netdata, Zabbix oder einem anderen Monitoring-System: Kuma bemerkt das Problem von außen, während Metriken bei der Ursachenanalyse helfen.

Warum das Monitoring auf einem separaten VPS laufen sollte

Wenn Uptime Kuma neben der Website installiert ist, kann ein Ausfall des VPS, des Netzwerks oder des Rechenzentrums sowohl das Projekt als auch das Monitoring lahmlegen. Die Benachrichtigung wird dann möglicherweise nie gesendet.

Hosten Sie das Dashboard auf einem separaten VPS und bei wichtigen Projekten an einem anderen Standort oder bei einem anderen Anbieter. Es ist außerdem sinnvoll, Kuma selbst mit einem externen Dienst zu überwachen: Auch das Überwachungssystem braucht jemanden, der es überwacht.

Serveranforderungen für Uptime Kuma

Das Projekt legt kein strenges offizielles Minimum für CPU und RAM fest. Eine praktische Ausgangskonfiguration für eine kleine Installation ist:

  • 1 vCPU;
  • 1 GB RAM;
  • 10 GB SSD;
  • Ubuntu 24.04 LTS;
  • IPv4;
  • eine Domain oder Subdomain für HTTPS.

Diese Konfiguration reicht normalerweise für mehrere Dutzend einfache Prüfungen. Für Hunderte Monitore, eine lange Historie oder browserbasierte Prüfungen wählen Sie 2 GB RAM oder mehr.

Uptime Kuma auf einem VPS installieren

Dieses Beispiel verwendet Ubuntu 24.04 und die Subdomain monitor.example.com.

1. DNS und Firewall konfigurieren

Erstellen Sie einen A-DNS-Eintrag, der auf die IPv4-Adresse des VPS zeigt. Verbinden Sie sich per SSH und öffnen Sie die erforderlichen Ports:

ssh root@SERVER_IP
apt update && apt upgrade -y

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enable

Schließen Sie die aktuelle SSH-Sitzung erst, wenn Sie eine neue Verbindung getestet haben.

2. Docker und Docker Compose installieren

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

docker compose version

3. Uptime Kuma 2 starten

mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma

cat > compose.yaml <<'EOF'
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    restart: unless-stopped
    ports:
      - "127.0.0.1:3001:3001"
    volumes:
      - ./data:/app/data
EOF

docker compose up -d
docker compose ps

Verwenden Sie den Tag :2: latest zeigt weiterhin auf den veralteten v1-Zweig. Das Verzeichnis /app/data muss auf einer lokalen Festplatte oder in einem normalen Docker-Volume liegen. NFS und Speichersysteme ohne korrektes File-Locking können die Datenbank beschädigen.

Port 3001 ist nur unter 127.0.0.1 erreichbar. Ein Reverse Proxy mit HTTPS veröffentlicht das Dashboard nach außen.

4. HTTPS mit Caddy aktivieren

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
monitor.example.com {
    reverse_proxy 127.0.0.1:3001
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

Wenn DNS auf den VPS zeigt, fordert Caddy automatisch ein TLS-Zertifikat an und proxyt WebSocket-Verbindungen. Hosten Sie das Dashboard am Stammverzeichnis einer Domain oder Subdomain: Eine Adresse wie example.com/kuma wird nicht unterstützt.

5. Administratorkonto erstellen

Öffnen Sie https://monitor.example.com, erstellen Sie ein Konto mit einem langen, einzigartigen Passwort und aktivieren Sie die Zwei-Faktor-Authentifizierung.

Den ersten Monitor hinzufügen

Klicken Sie auf Add New Monitor und wählen Sie HTTP(s):

  1. Geben Sie einen Namen und die vollständige URL ein.
  2. Legen Sie ein Intervall fest, zum Beispiel 60 Sekunden.
  3. Fügen Sie zwei Wiederholungen hinzu, um gelegentliche Netzwerkfehler abzufangen.
  4. Wählen Sie einen Benachrichtigungskanal.
  5. Speichern Sie den Monitor und prüfen Sie, ob erfolgreiche Prüfungen angezeigt werden.

Für die Hauptwebsite sind HTTP- und Keyword-Prüfungen nützlich. Für eine API verwenden Sie einen Health-Endpunkt und eine JSON Query. Setzen Sie Datenbanken oder Administrationsports nicht nur für das Monitoring dem Internet aus; verwenden Sie ein vertrauenswürdiges Netzwerk oder ein VPN.

Beispiel: Push-Monitor für ein Backup

Nachdem Sie einen Push-Monitor erstellt haben, fügen Sie seine eindeutige URL am Ende des Skripts ein:

backup-command && \
  curl -fsS "https://monitor.example.com/api/push/SECRET_TOKEN?status=up&msg=backup-ok"

Die Anfrage wird nur nach einem erfolgreichen Backup ausgeführt. Behandeln Sie das Push-Token wie ein Passwort: Jeder, der die URL kennt, kann ein falsches Signal senden.

Telegram verbinden

Erstellen Sie über @BotFather einen Bot, senden Sie ihm eine Nachricht und öffnen Sie anschließend Settings → Notifications → Telegram. Geben Sie Bot Token und Chat ID ein, klicken Sie auf Test und weisen Sie den Kanal Ihren Monitoren zu. Für kritische Dienste fügen Sie einen zweiten Kanal wie E-Mail hinzu.

Eine Statusseite erstellen

Unter Status Pages können Sie Monitore gruppieren, den aktuellen Status und den Verlauf der Verfügbarkeit anzeigen, eine Domain zuweisen und geplante Arbeiten über Maintenance melden. Veröffentlichen Sie keine internen IP-Adressen oder technischen URLs: Kunden benötigen nur Komponenten wie „Website“, „API“, „Account dashboard“ und „Payments“.

Uptime Kuma aktualisieren und sichern

Vor einem größeren Update stoppen Sie den Container und speichern das Datenverzeichnis:

cd /opt/uptime-kuma
docker compose down

tar -czf /root/uptime-kuma-$(date +%F).tar.gz \
  data compose.yaml

docker compose up -d

Verschieben Sie das Archiv auf ein anderes Gerät oder in einen externen Speicher. Eine Kopie auf demselben VPS schützt nicht vor der Löschung des Servers oder einem Festplattenausfall.

Für ein reguläres Update:

cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreate

Prüfen Sie nach dem Start docker compose ps, öffnen Sie das Dashboard und senden Sie eine Testbenachrichtigung.

Welchen VPS für Uptime Kuma wählen?

Eine kleine Installation benötigt nur einen Linux-VPS mit 1 vCPU und 1 GB RAM. Unabhängigkeit ist wichtiger als Rohleistung: Der Monitor muss weiterlaufen, wenn das Hauptprojekt nicht verfügbar ist.

Sie können Uptime Kuma auf einem VPS von tropic.host hosten, wenn die überwachten Dienste auf einer anderen Plattform oder einem unabhängigen Node laufen. Ubuntu, Docker und eine statische IP machen den Start des Dashboards schnell, während sich die Ressourcen mit wachsender Zahl der Prüfungen erhöhen lassen.

Wenn die Produktion bereits in derselben Infrastruktur läuft, wählen Sie einen anderen Node oder fügen Sie einen externen Backup-Monitor hinzu. Getrennte Fehlerdomänen sind nützlicher als ein zusätzlicher CPU-Kern.

Häufige Fehler

FehlerWarum es ein Problem istBesserer Ansatz
Monitoring läuft neben dem ProjektEin gemeinsamer Ausfall legt Dienst und Benachrichtigungen lahmSeparaten VPS oder Standort verwenden
Port 3001 ist öffentlich erreichbarDas Dashboard ist ohne Reverse Proxy oder HTTPS zugänglichPort an 127.0.0.1 binden
Nur der Statuscode 200 wird geprüftEin Anwendungsfehler kann wie Erfolg aussehenKeyword oder JSON Query hinzufügen
Der Tag latest wird verwendetEr zeigt auf den veralteten v1-Zweiglouislam/uptime-kuma:2 verwenden
Das Backup liegt auf demselben VPSEs verschwindet zusammen mit dem ServerDas Verzeichnis data an einen anderen Ort kopieren

Zusammenfassung

Uptime Kuma verwandelt einen kleinen VPS in ein eigenes Überwachungszentrum für Websites, APIs, DNS, Ports, Zertifikate und Hintergrundaufgaben. Keyword erkennt eine beschädigte Seite, JSON Query eine fehlerhafte API-Antwort und Push ein ausgebliebenes Backup oder einen gestoppten Cron-Job.

Für eine zuverlässige Einrichtung hosten Sie das Monitoring getrennt von der Produktion, schließen Sie Port 3001, aktivieren Sie HTTPS und 2FA und konfigurieren Sie zwei Benachrichtigungskanäle. Richten Sie anschließend ein externes Backup des Datenverzeichnisses und eine unabhängige Prüfung von Uptime Kuma selbst ein.

FAQ

Ist Uptime Kuma kostenlos?

Ja. Das Projekt ist quelloffen und wird unter der MIT-Lizenz veröffentlicht. Sie zahlen nur für Infrastruktur, Domain und externe Backups.

Wie viel RAM benötigt Uptime Kuma?

Für eine kleine Installation ist 1 GB RAM ein sinnvoller Start. Für Hunderte Prüfungen, eine lange Historie oder die Browser Engine sollten Sie 2 GB oder mehr einplanen.

Kann Uptime Kuma ohne Docker installiert werden?

Ja, mit Node.js und PM2. Docker Compose lässt sich auf einem VPS jedoch meist leichter aktualisieren, migrieren und wiederherstellen.

Kann Uptime Kuma ohne Domain verwendet werden?

Technisch ja — über die IP-Adresse oder einen SSH-Tunnel. Für einen dauerhaften Internetzugriff ist eine Subdomain mit HTTPS sicherer.

Zeigt Uptime Kuma CPU-, RAM- und Festplattenauslastung an?

Nicht als vollständiges Server-Metriksystem. Für die Überwachung von Serverressourcen ergänzen Sie es mit Prometheus, Netdata, Zabbix oder einem anderen spezialisierten Tool.