Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Monitoring 01.06.2026 · 9 min Lesezeit

Beszel Server Monitoring mit Docker einrichten: Hub und Agent installieren (Anleitung)

Beszel ist ein ressourcenschonendes Self-Hosted-Monitoring aus Hub und Agent. Diese Anleitung zeigt Schritt für Schritt, wie du Beszel mit Docker Compose einrichtest, Server hinzufügst und Alerts für CPU, RAM und Disk konfigurierst.

Realistisches Hero-Bild mit Server-Monitoring-Dashboard, Docker-Containern und kompakter Homelab-Hardware für eine Anleitung zu Beszel Server Monitoring mit Docker.

Beszel Server Monitoring mit Docker einrichten ist die schnellste Art, deine Homelab- oder VPS-Infrastruktur im Blick zu behalten, ohne dass das Monitoring selbst zum Ressourcenfresser wird. Beszel besteht aus einem zentralen Hub (Weboberfläche, Port 8090) und einem schlanken Agent, den du auf jedem zu überwachenden Server installierst. Ein Agent benötigt typischerweise nur rund 10 MB RAM. Diese Anleitung richtet sich an Admins, Homeserver-Betreiber und alle aus der Selfhosting-Szene, die ein einfaches, selbstgehostetes Dashboard für CPU, Arbeitsspeicher, Festplatte und Netzwerk wollen. Am Ende läuft dein Hub, der erste Server ist verbunden und du erhältst Alerts, wenn Schwellenwerte überschritten werden.

Kurzfassung: Hub per Docker Compose starten, im Browser Admin-Account anlegen, Server hinzufügen, den vorgeschlagenen Agent-Compose-Block auf dem Zielserver ausführen und die generierten Werte für KEY und TOKEN eintragen. Setup in unter 5 Minuten.

Was ist Beszel und warum lohnt es sich?

Beszel ist ein quelloffenes, leichtgewichtiges Monitoring-Tool, das bewusst minimalistisch aufgebaut ist. Es sammelt die wichtigsten System-Metriken (CPU-Auslastung, RAM, Disk-Nutzung und -Durchsatz, Netzwerk, Temperaturen sowie Docker-Container-Statistiken) und zeigt sie in einer aufgeräumten Weboberfläche an. Die Architektur ist bewusst zweigeteilt:

  1. Hub: Die zentrale Komponente mit Dashboard, Benutzerverwaltung und Alert-Logik. Sie basiert auf PocketBase und lauscht standardmäßig auf Port 8090.
  2. Agent: Ein winziger Dienst, der pro Server läuft und seine Metriken an den Hub liefert. Die Verbindung wird über ein Schlüssel- und Token-Paar abgesichert.

Beszel vs. Netdata: der Ressourcenvergleich

Der wichtigste Unterschied im Vergleich Beszel vs. Netdata ist der Ressourcenverbrauch. Ein Beszel-Agent kommt mit etwa 10 MB RAM aus, während Netdata je nach Konfiguration häufig 200 bis 500 MB belegt. Dafür liefert Netdata deutlich mehr Detailtiefe und tausende Metriken pro Sekunde. Beszel verfolgt den umgekehrten Ansatz: weniger Daten, dafür minimale Last und ein extrem schnelles Setup. Für ein Homelab oder mehrere kleine VPS ist leichtgewichtiges Monitoring wie Beszel oft die praktischere Wahl.


Voraussetzungen

  1. Ein Linux-Server für den Hub (z. B. VPS oder Homeserver) mit installiertem Docker und Docker Compose. Falls Docker noch fehlt, hilft unsere Anleitung zur Docker-Installation weiter.
  2. Mindestens einen weiteren (oder denselben) Server, der als Beszel-Agent überwacht werden soll.
  3. Shell-Zugriff (SSH) auf beide Maschinen.
  4. Ein freier Port 8090 für die Hub-Oberfläche (bei Bedarf hinter einem Reverse Proxy).
  5. Grundlegende Kenntnis von Docker-Compose-Dateien.

Schritt 1: Verzeichnis und Compose-Datei für den Hub anlegen

Lege auf dem Server, der das Dashboard hosten soll, ein Arbeitsverzeichnis an und wechsle hinein.

  1. Verzeichnis erstellen und betreten:
mkdir -p /opt/beszel
cd /opt/beszel

Erstelle nun die Datei docker-compose.yml für den Hub. Sie definiert einen einzigen Service mit persistentem Volume für die Datenbank und einem Socket-Verzeichnis:

services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    ports:
      - "8090:8090"
    volumes:
      - ./beszel_data:/beszel_data
      - ./beszel_socket:/beszel_socket

Das Verzeichnis beszel_data enthält die PocketBase-Datenbank sowie alle Server- und Alert-Konfigurationen. Sichere genau dieses Verzeichnis später regelmäßig.

Schritt 2: Den Beszel-Hub starten

Starte den Hub im Hintergrund mit Docker Compose.

  1. Container ziehen und starten:
docker compose up -d
  1. Prüfe, ob der Container läuft:
docker compose ps
docker compose logs -f beszel

In den Logs sollte eine Zeile erscheinen, die anzeigt, dass der Server auf 0.0.0.0:8090 lauscht. Mit Strg + C verlässt du die Log-Ansicht wieder, ohne den Container zu stoppen.

Schritt 3: Admin-Account im Hub anlegen

Öffne den Hub jetzt im Browser. Ersetze SERVER-IP durch die IP-Adresse oder den Hostnamen deines Hub-Servers.

http://SERVER-IP:8090
  1. Beim ersten Aufruf landest du auf der Einrichtungsseite. Lege hier deine E-Mail-Adresse und ein sicheres Passwort für den ersten Administrator an.
  2. Nach dem Speichern wirst du automatisch eingeloggt und siehst das noch leere Dashboard.

Dieser erste Account ist der Superuser. Über die Einstellungen kannst du später weitere Benutzer mit eingeschränkten Rechten anlegen.

Schritt 4: Ersten Server hinzufügen und Agent-Daten erzeugen

Jetzt verbindest du den ersten zu überwachenden Server. Der Hub generiert dabei die passenden Verbindungsdaten und einen fertigen Agent-Befehl.

  1. Klicke im Dashboard oben rechts auf Add System (Server hinzufügen).
  2. Vergib einen sprechenden Namen (z. B. web01), trage als Host/IP die Adresse des Zielservers ein und belasse den Port bei 45876 (Standardport des Agents).
  3. Beszel zeigt dir nun einen öffentlichen Schlüssel (KEY), einen Token (TOKEN) sowie einen vorgefertigten Docker-Compose-Block für den Agent an. Kopiere diesen Block, er enthält bereits beide Werte.

Der öffentliche Schlüssel beginnt mit ssh-ed25519, der Token ist eine zufällige Zeichenkette. Beide Werte werden im nächsten Schritt als Umgebungsvariablen beim Agent hinterlegt und stellen sicher, dass sich Hub und Agent gegenseitig korrekt authentifizieren.

Schritt 5: Den Beszel-Agent auf dem Zielserver installieren

Wechsle per SSH auf den Server, den du überwachen willst. Du kannst den Agent als Docker-Container oder als natives Binary betreiben. Hier nutzen wir Docker Compose, weil es sich gut in bestehende Setups einfügt.

  1. Lege ein Verzeichnis an und erstelle eine eigene Compose-Datei für den Agent:
mkdir -p /opt/beszel-agent
cd /opt/beszel-agent

Erstelle die docker-compose.yml für den Agent. Übernimm am einfachsten den im Hub angezeigten Block und ersetze die Platzhalter bei KEY, TOKEN und HUB_URL durch deine Werte:

services:
  beszel-agent:
    image: henrygd/beszel-agent:latest
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./beszel_agent_data:/var/lib/beszel-agent
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      LISTEN: 45876
      KEY: "ssh-ed25519 AAAA...DEIN_KEY_AUS_DEM_HUB"
      TOKEN: "DEIN_TOKEN_AUS_DEM_HUB"
      HUB_URL: "http://SERVER-IP:8090"
  1. Starte den Agent:
docker compose up -d

Achte darauf, dass KEY und TOKEN exakt mit den im Hub angezeigten Werten übereinstimmen, bereits ein einzelnes zusätzliches Leerzeichen verhindert die Verbindung. Der Modus network_mode: host sorgt dafür, dass der Agent korrekte Netzwerk- und Hostmetriken liefert. Das schreibgeschützt eingebundene Docker-Socket erlaubt es Beszel, zusätzlich die Statistiken der laufenden Container anzuzeigen.

Alternative: Agent als natives Binary

Möchtest du auf dem Zielserver kein Docker betreiben, installiert das offizielle Skript den Agent direkt als systemd-Dienst. Übergib Schlüssel, Token und Hub-URL als Parameter:

curl -sL https://get.beszel.dev -o install-agent.sh
chmod +x install-agent.sh
sudo ./install-agent.sh -k "ssh-ed25519 AAAA...DEIN_KEY" -t "DEIN_TOKEN" -url "http://SERVER-IP:8090"

Das Skript legt einen eigenen Benutzer an und richtet den Dienst so ein, dass er beim Booten automatisch startet. Ohne Parameter fragt es die Werte interaktiv ab.

Schritt 6: Verbindung herstellen und ersten Test durchführen

Zurück im Hub wechselt der gerade hinzugefügte Server nach wenigen Sekunden von pending auf up (grüner Status).

  1. Aktualisiere die Dashboard-Ansicht im Browser.
  2. Klicke auf den Servernamen, um die Detailansicht mit CPU-, RAM-, Disk- und Netzwerk-Graphen zu öffnen.
  3. Erscheint der Server dauerhaft als down oder bleibt pending, prüfe auf dem Zielserver die Logs und ob der Agent-Port lauscht:
docker logs beszel-agent
ss -tlnp | grep 45876

Stelle außerdem sicher, dass eine eventuelle Firewall den Port 45876 zwischen Hub und Agent durchlässt.

Schritt 7: Alerts für CPU, RAM, Disk und Netzwerk einrichten

Der eigentliche Mehrwert entsteht durch Benachrichtigungen. Beszel kann dich warnen, sobald ein System ausfällt oder Schwellenwerte überschreitet.

  1. Öffne in der Server-Detailansicht den Reiter Alerts.
  2. Aktiviere die gewünschten Regeln, etwa Status (Server offline), CPU Usage, Memory Usage, Disk Usage und Bandwidth.
  3. Lege je Regel einen Schwellenwert (z. B. 85 % CPU) und eine Mindestdauer (z. B. 10 Minuten) fest, um Fehlalarme bei kurzen Spitzen zu vermeiden.

Damit Benachrichtigungen auch ankommen, hinterlege unter Settings → Notifications einen Kanal. Beszel nutzt im Hintergrund Shoutrrr-kompatible URLs und unterstützt damit u. a. E-Mail (SMTP), Telegram, Discord, Gotify und Ntfy. Eine Ntfy-URL sieht beispielsweise so aus:

ntfy://ntfy.sh/mein-beszel-topic

Updates & Wartung

Beide Komponenten lassen sich unabhängig voneinander aktualisieren. Ziehe dazu im jeweiligen Verzeichnis das aktuelle Image und starte den Container neu.

# Auf dem Hub-Server
cd /opt/beszel
docker compose pull
docker compose up -d

# Auf jedem Agent-Server
cd /opt/beszel-agent
docker compose pull
docker compose up -d

Alternativ kannst du Updates mit einem Tool wie Watchtower automatisieren. Plane Updates des Hubs idealerweise in einem Wartungsfenster, da währenddessen kurz keine Metriken erfasst werden.

Backup-Hinweis

Der gesamte Zustand des Hubs (Datenbank, Server, Alerts, Benutzer) liegt im Verzeichnis beszel_data. Sichere es regelmäßig, am besten bei gestopptem Container, damit die SQLite-Datenbank konsistent ist:

cd /opt/beszel
docker compose down
tar czf beszel_data_$(date +%F).tar.gz beszel_data
docker compose up -d

Bewahre das Archiv außerhalb des Servers auf. Die Agents selbst speichern keinen relevanten Zustand und müssen nicht gesichert werden.

Troubleshooting

  1. Server bleibt auf "pending": Meist stimmt KEY oder TOKEN nicht. Kopiere beide Werte komplett und ohne zusätzliches Leerzeichen aus dem Hub in die Variablen KEY und TOKEN.
  2. Status dauerhaft "down": Port 45876 ist durch eine Firewall blockiert oder der Agent läuft nicht im host-Netzwerkmodus.
  3. Keine Container-Statistiken: Das Docker-Socket wurde nicht ins Agent-Volume eingehängt. Prüfe die Zeile mit /var/run/docker.sock.
  4. Hub nicht erreichbar: Port 8090 belegt oder vom Reverse Proxy nicht weitergeleitet. Mit docker compose logs beszel die Startmeldungen kontrollieren.
  5. Falsche Disk-Anzeige: Für zusätzliche Laufwerke kannst du beim Agent über die Variable EXTRA_FILESYSTEMS weitere Mountpoints angeben.

Häufige Fragen

Wie viel RAM benötigt ein Beszel-Agent?

Ein Beszel-Agent verbraucht im Normalbetrieb nur etwa 10 MB Arbeitsspeicher. Das ist deutlich weniger als bei vielen Alternativen und macht Beszel ideal für kleine VPS und Homeserver, auf denen Ressourcen knapp sind.

Beszel vs. Netdata: Was ist besser?

Das hängt vom Anwendungsfall ab. Netdata bietet sehr detaillierte Echtzeit-Metriken, belegt dafür aber 200 bis 500 MB RAM pro Instanz. Beszel ist mit rund 10 MB pro Agent extrem schlank und in unter 5 Minuten eingerichtet, liefert dafür nur die wichtigsten Kernmetriken. Für leichtgewichtiges Monitoring mehrerer Server ist Beszel meist die bessere Wahl.

Kann ein Server gleichzeitig Hub und Agent sein?

Ja. Du kannst auf demselben Host sowohl den Hub als auch einen Agent-Container betreiben, um die Maschine selbst zu überwachen. Achte lediglich darauf, dass sich die Ports 8090 (Hub) und 45876 (Agent) nicht überschneiden.

Ist die Verbindung zwischen Hub und Agent abgesichert?

Ja. Hub und Agent authentifizieren sich über ein Paar aus öffentlichem Schlüssel (KEY) und Token (TOKEN). Nur ein Agent mit den vom Hub erzeugten, passenden Werten wird akzeptiert. So kann sich kein fremder Hub mit deinem Agent verbinden und umgekehrt.

Wie überwache ich mehrere Server mit Beszel?

Du installierst nur einmal den Hub und danach pro Server einen Agent. Im Dashboard fügst du jeden Server über Add System hinzu, wobei für jeden eigene Verbindungsdaten erzeugt werden. So skaliert ein einziges Dashboard auf beliebig viele überwachte Systeme.

Fazit

Mit Beszel hast du in wenigen Minuten ein selbstgehostetes, ressourcenschonendes Monitoring aufgebaut, das deine Server zuverlässig im Blick behält. Der Hub liefert ein klares Dashboard, die Agents belasten die überwachten Systeme kaum, und die Alerts warnen dich rechtzeitig bei Engpässen. Für Homelab und VPS ist das ein nahezu ideales Verhältnis aus Aufwand und Nutzen. Wer es noch detaillierter braucht, kann Beszel jederzeit um spezialisierte Tools ergänzen.

Weiterführende Anleitungen

Beszel ergänzt sich gut mit anderen Selfhosting-Bausteinen. Wenn du Docker noch nicht installiert hast, beginne mit unserer Schritt-für-Schritt-Anleitung zur Docker-Installation. Möchtest du zusätzlich die Erreichbarkeit deiner Dienste von außen prüfen, ist Uptime Kuma mit Docker und Nginx Proxy Manager die perfekte Ergänzung zum systeminternen Monitoring von Beszel. Weitere Tutorials findest du in der Kategorie Docker.

Quellen

Offizielle Dokumentation und Projektquellen: Beszel Projektseite und Dokumentation sowie das Beszel GitHub-Repository.