Netdata: Real-time System Monitoring (Artikel 048)
Installation und Nutzung von Netdata zur hochauflösenden Echtzeit-Überwachung von Linux-Servern. Diagnose von Performance-Engpässen in Sekunden mit 1s-Auflösung.
# Netdata Deep Dive: Performance-Diagnose in Echtzeit
TL;DR / Management Summary Während Prometheus und Grafana ideal für Langzeittrends sind, ist Netdata das Röntgengerät für den Moment. Mit einer Auflösung von einer Sekunde und tausenden automatisch erkannten Metriken erlaubt es Netdata, Performance-Engpässe (Spikes, I/O-Hänger, CPU-Steal) in Echtzeit zu diagnostizieren. Ein Senior Admin installiert Netdata auf jedem Node, um bei akuten Problemen sofort unter die Haube schauen zu können.
# 1. Einführung & Architektur
Metriken ohne Grenzen.
Netdata ist extrem ressourceneffizient (geschrieben in C) und benötigt keine manuelle Konfiguration. Es erkennt Dienste (Nginx, MySQL, Docker) automatisch.
# Architektur-Übersicht (Mermaid)
graph TD
A[Linux Host] --- B[Netdata Agent]
B -->|Collect every 1s| C[In-Memory TSDB]
C -->|Render| D[Local Web UI Port 19999]
B -.->|Streaming| E[Netdata Cloud / Parent]
B -->|Export| F[Prometheus / InfluxDB]
# 2. Installation & Schnellstart
In 30 Sekunden zum Dashboard.
# Der “One-Liner”
Der offizielle Weg nutzt ein automatisches Skript, das Repositories und Abhängigkeiten verwaltet.
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --no-updates --stable-channel
# Manueller Zugriff
Nach der Installation ist das Dashboard unter http://<server_ip>:19999 erreichbar.
# 3. Diagnose-Features
Was Netdata besonders macht.
# 1s Auflösung
Andere Systeme sammeln Daten alle 15-60 Sekunden. Ein CPU-Spike von 2 Sekunden bleibt dort unsichtbar. Netdata zeigt ihn präzise an.
# Applikations-Performance
Netdata zeigt nicht nur “CPU Last”, sondern schlüsselt diese nach Prozessen und Usern auf.
- Charts: CPU, RAM, Disk I/O (per disk!), Network (per interface!).
- Alarme: Kommt mit hunderten vordefinierten Alarmen (z.B. “Predictive Disk Fill”).
# 4. Day-2 Operations: Streaming & Export
Logs für die Ewigkeit.
Netdata speichert standardmäßig nur Daten der letzten Stunden/Tage im RAM (oder Disk-Cache).
# Daten zu Prometheus senden
Netdata bietet einen Prometheus-kompatiblen Endpunkt:
http://localhost:19999/api/v1/allmetrics?format=prometheus
# Netdata Cloud
In Enterprise-Umgebungen verbinden Sie die Agents mit der Netdata Cloud.
- Vorteil: Ein zentrales Dashboard für alle Server, ohne Port 19999 nach außen öffnen zu müssen (via Outbound-Stream).
# 5. Troubleshooting & “War Stories”
Wenn der Monitor selbst zur Last wird.
# Story 1: “Der RAM-Fresser”
Symptom: Auf einem Server mit nur 1GB RAM wird Netdata vom OOM-Killer beendet.
Ursache: Netdata nutzt standardmäßig einen RAM-Cache für seine Datenbank.
Lösung: Stellen Sie in der netdata.conf den Datenbank-Modus auf dbengine um. Dies nutzt die Disk für die Langzeitspeicherung und verbraucht minimal RAM.
# Story 2: “Das volle /var/log”
Symptom: Netdata schreibt massiv Fehler-Logs.
Ursache: Ein Plugin (z.B. für eine nicht existierende Datenbank) versucht ständig, sich zu verbinden.
Lösung: Deaktivieren Sie das spezifische Plugin in /etc/netdata/python.d.conf oder go.d.conf.
# 6. Sicherheit & Hardening
- Firewall: Port 19999 sollte niemals offen im Internet stehen. Er bietet keine native Authentifizierung im Agent.
- Reverse Proxy: Nutzen Sie Nginx mit Basic-Auth, um das lokale Dashboard abzusichern.
- ReadOnly: Deaktivieren Sie Schreibrechte für das Web-Interface, um Manipulationen zu verhindern.
# Anhang: Cheatsheet
| Aufgabe | Befehl / Link |
|---|---|
| Config bearbeiten | /etc/netdata/edit-config netdata.conf |
| Dienst neustarten | systemctl restart netdata |
| Dashboard Port | 19999 |
| Health-Check | curl http://localhost:19999/api/v1/info |
| Cloud Anbindung | netdata-claim.sh -token=TOKEN -rooms=ROOM |