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.

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:
- Hub: Die zentrale Komponente mit Dashboard, Benutzerverwaltung und Alert-Logik. Sie basiert auf PocketBase und lauscht standardmäßig auf Port
8090. - 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
- 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.
- Mindestens einen weiteren (oder denselben) Server, der als Beszel-Agent überwacht werden soll.
- Shell-Zugriff (SSH) auf beide Maschinen.
- Ein freier Port
8090für die Hub-Oberfläche (bei Bedarf hinter einem Reverse Proxy). - 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.
- Verzeichnis erstellen und betreten:
mkdir -p /opt/beszel
cd /opt/beszelErstelle 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_socketDas 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.
- Container ziehen und starten:
docker compose up -d- Prüfe, ob der Container läuft:
docker compose ps
docker compose logs -f beszelIn 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- Beim ersten Aufruf landest du auf der Einrichtungsseite. Lege hier deine E-Mail-Adresse und ein sicheres Passwort für den ersten Administrator an.
- 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.
- Klicke im Dashboard oben rechts auf Add System (Server hinzufügen).
- Vergib einen sprechenden Namen (z. B.
web01), trage als Host/IP die Adresse des Zielservers ein und belasse den Port bei45876(Standardport des Agents). - 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.
- Lege ein Verzeichnis an und erstelle eine eigene Compose-Datei für den Agent:
mkdir -p /opt/beszel-agent
cd /opt/beszel-agentErstelle 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"- Starte den Agent:
docker compose up -dAchte 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).
- Aktualisiere die Dashboard-Ansicht im Browser.
- Klicke auf den Servernamen, um die Detailansicht mit CPU-, RAM-, Disk- und Netzwerk-Graphen zu öffnen.
- 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 45876Stelle 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.
- Öffne in der Server-Detailansicht den Reiter Alerts.
- Aktiviere die gewünschten Regeln, etwa Status (Server offline), CPU Usage, Memory Usage, Disk Usage und Bandwidth.
- 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-topicUpdates & 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 -dAlternativ 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 -dBewahre das Archiv außerhalb des Servers auf. Die Agents selbst speichern keinen relevanten Zustand und müssen nicht gesichert werden.
Troubleshooting
- Server bleibt auf "pending": Meist stimmt
KEYoderTOKENnicht. Kopiere beide Werte komplett und ohne zusätzliches Leerzeichen aus dem Hub in die VariablenKEYundTOKEN. - Status dauerhaft "down": Port
45876ist durch eine Firewall blockiert oder der Agent läuft nicht imhost-Netzwerkmodus. - Keine Container-Statistiken: Das Docker-Socket wurde nicht ins Agent-Volume eingehängt. Prüfe die Zeile mit
/var/run/docker.sock. - Hub nicht erreichbar: Port
8090belegt oder vom Reverse Proxy nicht weitergeleitet. Mitdocker compose logs beszeldie Startmeldungen kontrollieren. - Falsche Disk-Anzeige: Für zusätzliche Laufwerke kannst du beim Agent über die Variable
EXTRA_FILESYSTEMSweitere 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.