Zum Inhalt

Server mit Beszel und Docker überwachen

Veröffentlicht am 7. August 2026 · Geschätzte Lesezeit: 4 Minuten

Beszel zeigt Prozessor-, Arbeitsspeicher-, Festplatten- und Netzwerkdaten deines Servers übersichtlich im Browser an. Der Hub speichert die Messwerte, während ein kleiner Agent die System- und Docker-Daten sammelt. Für die Einrichtung auf einem einzelnen Linux-Server brauchst du ungefähr 15 Minuten.

Voraussetzungen

  • Ein Linux-Server mit Docker und Docker Compose
  • Eine feste private IP-Adresse für den Server
  • Port 8090/TCP ist im Heimnetz frei
  • SSH-Zugriff und ein Benutzer mit sudo-Rechten

1. Arbeitsordner anlegen

Führe die Befehle auf dem Server aus. Sie erstellen den Ordner für Beszel und wechseln direkt hinein:

sudo mkdir -p /opt/beszel
sudo chown -R "$USER":"$USER" /opt/beszel
cd /opt/beszel

2. Compose-Datei erstellen

Erstelle in /opt/beszel die Datei compose.yaml. Ersetze <server-ip> durch die private IP des Servers, zum Beispiel 192.168.1.20. <token> und <public-key> bleiben zunächst unverändert; diese Werte erzeugt Beszel später.

services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    environment:
      APP_URL: "http://<server-ip>:8090"
    ports:
      - "<server-ip>:8090:8090"
    volumes:
      - ./beszel_data:/beszel_data
      - ./beszel_socket:/beszel_socket

  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
      - ./beszel_socket:/beszel_socket
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      LISTEN: /beszel_socket/beszel.sock
      HUB_URL: "http://localhost:8090"
      TOKEN: "<token>"
      KEY: "<public-key>"

Die Bindung an <server-ip> sorgt dafür, dass die Weboberfläche nur über die private Netzwerkschnittstelle erreichbar ist.

Docker-Socket besonders schützen

Der Agent liest Containerdaten über /var/run/docker.sock. Zugriff auf diesen Socket ist sicherheitskritisch. Veröffentliche Beszel nicht direkt im Internet und installiere nur vertrauenswürdige Images auf diesem Server.

3. Hub starten und Konto anlegen

Starte zunächst nur den Hub. Der Agent kann ohne seine beiden Zugangswerte noch nicht verbunden werden:

cd /opt/beszel
docker compose up -d beszel

Prüfe, ob der Hub läuft:

docker compose ps

Öffne http://<server-ip>:8090 im Browser und lege das erste Administratorkonto mit einem langen, einmaligen Passwort an. Ersetze <server-ip> wieder durch die private Server-IP.

4. Lokalen Server hinzufügen

Klicke oben rechts auf Add System. Vergib einen Namen und trage als Host / IP den lokalen Unix-Socket ein:

/beszel_socket/beszel.sock

Der Dialog zeigt anschließend einen Token und einen öffentlichen Schlüssel an. Ersetze damit in compose.yaml die Platzhalter <token> und <public-key>. Die Anführungszeichen bleiben stehen. Es sind Zugangswerte und sie gehören nicht in Screenshots, Forenbeiträge oder eine öffentlich zugängliche Git-Ablage.

5. Agent starten

Übernimm die geänderte Compose-Datei und starte jetzt beide Dienste:

cd /opt/beszel
docker compose up -d

Prüfe die letzten Agent-Meldungen:

docker compose logs --tail=50 beszel-agent

Bestätige anschließend im offenen Beszel-Dialog Add System. Nach kurzer Zeit sollte der neue Server grün erscheinen und erste Messwerte anzeigen.

6. Warnungen einrichten

Öffne das System in Beszel und wähle den Bereich Alerts. Sinnvolle erste Warnungen sind hohe CPU-Auslastung, wenig freier Speicherplatz und ein nicht erreichbarer Server. Beginne mit großzügigen Grenzwerten, damit kurze Lastspitzen nicht sofort eine Meldung auslösen.

Erst beobachten, dann Grenzwerte setzen

Lass Beszel einige Tage Daten sammeln. Danach erkennst du die normale Last deines Servers und kannst Warnwerte passend statt zu empfindlich einstellen.

7. Backup und Rückweg

Stoppe den Stack kurz, damit die gespeicherten Messwerte einen konsistenten Stand haben:

cd /opt/beszel
docker compose down

Lege den Backup-Ordner an:

sudo mkdir -p /var/backups

Sichere Compose-Datei, Hub-Daten und Agent-Daten in ein datiertes Archiv. Der Socket-Ordner wird beim Start automatisch neu erzeugt und muss nicht ins Backup:

sudo tar -czf "/var/backups/beszel-$(date +%F).tar.gz" -C /opt beszel/compose.yaml beszel/beszel_data beszel/beszel_agent_data

Starte Beszel wieder:

cd /opt/beszel
docker compose up -d

Für den Rückweg stoppst du den Stack, benennst /opt/beszel sicherheitshalber um und entpackst das gewünschte Archiv wieder unter /opt.

8. Aktualisieren und Fehler finden

Lege vor einem Update ein Backup an. Lade danach die aktuellen Images und erstelle die Container neu:

cd /opt/beszel
docker compose pull
docker compose up -d

Bei Problemen zeigen die Protokolle meist die Ursache:

docker compose logs --tail=100 beszel beszel-agent
  • System bleibt rot: Token, Schlüssel und Socket-Pfad kontrollieren.
  • Keine Containerdaten: Prüfen, ob /var/run/docker.sock auf dem Host vorhanden und wie in der Compose-Datei eingebunden ist.
  • Webseite nicht erreichbar: <server-ip> in beiden Stellen prüfen und mit docker compose ps kontrollieren, ob Port 8090 veröffentlicht wurde.
  • Keine Temperaturen: Nicht jeder Host stellt Sensorwerte bereit; die übrigen Messwerte funktionieren trotzdem.

9. Quellen und Video

Fertig

Beszel überwacht nun den Linux-Server und seine Docker-Container. Starte zum Test kurz einen Container oder erzeuge etwas Last und prüfe, ob sich die Werte im Dashboard verändern. Kontrolliere außerdem, ob das System in der Übersicht grün bleibt.