Zum Inhalt

Netdata per Docker installieren: Echtzeit-Monitoring für Server und Container

Veröffentlicht am 2. Oktober 2026 · Geschätzte Lesezeit: 5 Minuten

Netdata sammelt pro Sekunde tausende Metriken von deinem Server, seinen Containern und den darauf laufenden Diensten – und zeigt sie in einem übersichtlichen Live-Dashboard an. Anders als bei Prometheus+Grafana oder Beszel ist Netdata nach dem Containerstart ohne jede Konfiguration einsatzbereit: CPU, RAM, Festplatten, Netzwerk, Docker-Container, Datenbanken und Webserver werden automatisch erkannt und überwacht.[1] Für die Einrichtung solltest du etwa 15 bis 25 Minuten einplanen.

Diese Anleitung folgt der offiziellen Netdata-Docker-Installationsanleitung und fasst die wichtigsten Schritte praxisnah zusammen.[1] Weitere Details und Hintergründe liefert die Netdata-Dokumentation zur Konfiguration.[3] Das Video Installing Netdata in Docker zeigt den Ablauf zusätzlich im Terminal.[5]

Voraussetzungen

  • Ein Linux-Server mit Docker und Docker Compose (plugin)
  • Terminal-Zugriff mit sudo-Rechten
  • Mindestens 512 MB freier Arbeitsspeicher
  • Ein freier TCP-Port 19999 im Heimnetz

1. Projektverzeichnis anlegen

Erstelle ein eigenes Verzeichnis für Netdata – so bleiben Konfiguration, Metrik-Daten und Cache beieinander und lassen sich leichter sichern:

mkdir -p ~/docker/netdata
cd ~/docker/netdata

Die Konfiguration liegt später im Docker-Volume netdataconfig, die Metrik-Daten in netdatalib und der Cache in netdatacache. Wer die Daten lieber als normale Ordner im Dateisystem ablegen will (z. B. für einfachere Backups), findet den Abschnitt zur host-editable configuration in der offiziellen Anleitung.[1]

2. Docker-Compose-Datei erstellen

Erstelle die Datei compose.yaml im Verzeichnis ~/docker/netdata:

services:
  netdata:
    image: netdata/netdata:stable
    container_name: netdata
    pid: host
    network_mode: host
    restart: unless-stopped
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    volumes:
      - netdataconfig:/etc/netdata
      - netdatalib:/var/lib/netdata
      - netdatacache:/var/cache/netdata
      - /:/host/root:ro,rslave
      - /etc/passwd:/host/etc/passwd:ro
      - /etc/group:/host/etc/group:ro
      - /etc/localtime:/etc/localtime:ro
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /etc/os-release:/host/os-release:ro
      - /var/log:/host/var/log:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  netdataconfig:
  netdatalib:
  netdatacache:

Die wichtigsten Einstellungen auf einen Blick:

Einstellung Bedeutung
pid: host Teilt den Prozessraum des Hosts – nötig für die Container- und Prozessüberwachung
network_mode: host Erlaubt den Zugriff auf den Netzwerk-Stack des Hosts
SYS_PTRACE Erkennt lauschende Dienste und ordnet Ports Prozessen zu
SYS_ADMIN Ermöglicht die Überwachung von Container-Netzwerken
apparmor:unconfined Hebt die Container-isolation für die Systemüberwachung auf
/var/run/docker.sock Liest Container-Namen, -Status und -Ressourcen aus

Sicherheitshinweis

Die Berechtigungen pid: host und network_mode: host sowie die gesetzten Capabilities heben die Container-Isolation weitgehend auf. Netdata benötigt diese Rechte, um den Host vollständig zu überwachen. Setze den Container daher nur auf Servern ein, denen du vertraust, und erwäge bei kritischen Umgebungen die Verwendung eines Reverse-Proxys mit Passwortschutz.[1]

Das Image netdata/netdata:stable verwendet die aktuellste stabile Veröffentlichung. Das Standard-latest-Tag zeigt dagegen auf nächtliche Entwicklungs-Builds – für den produktiven Einsatz ist stable die richtige Wahl.[1]

3. Netdata starten

Starte den Container im Hintergrund:

docker compose up -d

Docker erstellt die drei benannten Volumes (netdataconfig, netdatalib, netdatacache) automatisch und startet den Netdata-Container.

Prüfe, ob der Container läuft:

docker compose ps

Erwartete Ausgabe (Auszug):

NAME      IMAGE                    ...  STATUS       PORTS
netdata   netdata/netdata:stable   ...  Up 2 minutes

4. Dashboard aufrufen

Öffne die Weboberfläche im Browser:

http://<server-ip>:19999

Ersetze <server-ip> durch die IP-Adresse deines Servers (z. B. 192.168.1.100). Das Dashboard zeigt sofort hunderte Live-Diagramme an – ohne dass du vorher einen Datenbank-Treiber, einen Datensammler oder einen Exportdienst konfigurieren musst.

Netdata erkennt automatisch:

  • CPU – Auslastung, Temperatur, Frequenz
  • Arbeitsspeicher – RAM, Swap, Speicherauslastung
  • Festplatten – Belegung, I/O, SMART-Werte
  • Netzwerk – Bandbreite, Verbindungen, Fehler
  • Docker-Container – Name, Status, CPU-, RAM- und Netzwerkverbrauch der einzelnen Container
  • Laufende Dienste – systemd-Units, lauschende Ports
  • Webserver – Nginx, Apache (falls installiert)
  • Datenbanken – PostgreSQL, MariaDB, Redis (falls installiert)[1]

5. Container-Logs prüfen

Bei Problemen hilft ein Blick in die Logs des Containers:

docker compose logs netdata

Netdata protokolliert dort, welche Collector geladen wurden, ob der Zugriff auf den Docker-Socket klappt und welche Fehler beim Start auftreten.

6. Netdata aktualisieren

Docker-Container aktualisieren sich nicht von selbst. Führe für ein Update diese Schritte aus:[1]

docker compose pull
docker compose up -d

Der erste Befehl lädt das neue Image, der zweite startet den Container mit der neuen Version neu – Konfiguration, Metrik-Daten und Cache bleiben dank der benannten Volumes erhalten.

Alte Container-Images aufräumen

Nach einem Update bleibt das alte Image auf der Festplatte liegen. Entferne ungenutzte Images mit:

docker image prune -f

Risiken und typische Fehler

Port bereits belegt. Port 19999 wird von einem anderen Dienst verwendet. Ändere den Standard-Port über die Umgebungsvariable NETDATA_LISTENER_PORT=19999 und trage den geänderten Port im Dashboard-Link ein.[1]

Fehlende Berechtigungen. Ohne SYS_PTRACE und SYS_ADMIN zeigt Netdata keine Container-Netzwerke und keine lauschenden Dienste an. Ohne pid: host funktionieren die Prozess- und Container-Collectoren nicht. Ohne /var/run/docker.sock erscheinen keine Container im Dashboard.[1]

Rootless Docker. Läuft Docker im Rootless-Modus, fehlen Netdata einige Systemzugriffe. Container-Netzwerke, Apps.plugin und systemd-journal.plugin stehen dann nicht zur Verfügung. Verwende die Rootless-Variante aus der offiziellen Doku, wenn du nicht auf Host-Netzwerkmodus umstellen kannst.[1]

Keine Daten in den Diagrammen. Der Container braucht ein bis zwei Minuten, um alle Metriken zu sammeln. Zeigt das Dashboard nach fünf Minuten noch leere Diagramme, prüfe die Logs mit docker compose logs.

Fertig

Netdata läuft und überwacht deinen Server in Echtzeit. Öffne http://<server-ip>:19999 – ersetze <server-ip> durch die IP-Adresse deines Servers – und prüfe folgende Punkte:

  • Die CPU-Auslastung zeigt eine aktuelle Kurve
  • Unter Docker → Containers siehst du deine laufenden Container
  • Die Festplatten enthalten eine Diagramm-Reihe für /

Bei jedem dieser Punkte sollte eine durchgehende, sich ständig aktualisierende Linie zu sehen sein. Netdata braucht keine weitere Konfiguration – neue Collector werden automatisch aktiviert, sobald ein entsprechender Dienst auf dem Server erscheint.[1]

Sources

[1] https://learn.netdata.cloud/docs/netdata-agent/installation/docker — Install Netdata with Docker — Official Documentation [3] https://learn.netdata.cloud/docs/agent/configuration — Netdata Configuration Documentation [5] https://www.youtube.com/watch?v=4HpVor3e0pY — Installing Netdata in Docker - YouTube