Netdata - Echtzeit-Leistungsüberwachung Spickzettel
Netdata ist ein Open-Source-Überwachungsagent, der tausende Metriken pro Sekunde mit nahezu null Konfiguration sammelt und sie auf einem Live-Web-Dashboard visualisiert (Standard-Port 19999). Er erkennt automatisch Dienste (Datenbanken, Webserver, Container, Kubernetes) durch 800+ Sammler und enthält Anomalieerkennung und ein integriertes Warnsystem.
Installation
| Methode | Befehl |
|---|
| Universeller Kickstart | wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh |
| curl-Variante | curl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh |
| Debian/Ubuntu pkg | sudo apt install netdata |
| Fedora/RHEL pkg | sudo dnf install netdata |
| Docker | docker run -d --name=netdata -p 19999:19999 --cap-add SYS_PTRACE netdata/netdata |
| Helm (Kubernetes) | helm install netdata netdata/netdata |
Nach der Installation http://localhost:19999 öffnen (oder die IP des Servers).
Dienstverwaltung
| Befehl | Beschreibung |
|---|
sudo systemctl start netdata | Agent starten |
sudo systemctl enable netdata | Beim Booten starten |
sudo systemctl restart netdata | Neustarten (Konfigurationsänderungen anwenden) |
sudo systemctl status netdata | Status überprüfen |
sudo journalctl -u netdata -f | Agent-Protokolle verfolgen |
netdatacli reload-health | Warnungen neu laden, ohne vollständigen Neustart |
netdatacli reload-labels | Host-Labels neu laden |
netdatacli shutdown-agent | Agent ordnungsgemäß stoppen |
Konfiguration
Bearbeite die Konfiguration immer mit dem edit-config-Wrapper — er kopiert die Stock-Datei von /usr/lib/netdata/conf.d in /etc/netdata, sodass Upgrades sie nicht überschreiben.
cd /etc/netdata
sudo ./edit-config netdata.conf # Hauptagentkonfiguration
sudo ./edit-config health_alarm_notify.conf # Benachrichtigungen
sudo ./edit-config go.d.conf # Go-Sammler aktivieren/deaktivieren
Einstellung (in netdata.conf) | Zweck |
|---|
[global] update every = 1 | Sammlungsintervall in Sekunden |
[global] history / dbengine | Aufbewahrung / Größen der On-Disk-Datenbankebene |
[web] bind to = * | Netzwerkschnittstellen, auf denen das Dashboard lauscht |
[web] default port = 19999 | Dashboard-Port |
[plugins] | Schalte ganze Plugin-Gruppen ein/aus |
Sammler (Plugins)
| Aufgabe | Wie |
|---|
| Konfigurationsdateien pro Sammler auflisten | cd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf |
| Ein Modul aktivieren (z.B. nginx) | sudo ./edit-config go.d/nginx.conf dann auf die Status-URL verweisen |
| Go-Sammler debuggen | sudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx |
| Häufig automatisch erkannte Module | nginx, apache, mysql, postgres, redis, docker, systemd units, disks, network, sensors |
Gesundheit & Warnungen
Warndefinitionen liegen in /etc/netdata/health.d/*.conf.
cd /etc/netdata
sudo ./edit-config health.d/cpu.conf # integrierten Alarm anpassen
netdatacli reload-health # anwenden
| Befehl | Beschreibung |
|---|
curl http://localhost:19999/api/v1/alarms?all | Alle Warnungen und aktueller Status auflisten (JSON) |
curl http://localhost:19999/api/v1/info | Agent-Info, Version, Sammler |
health_alarm_notify.conf bearbeiten | E-Mail, Slack, PagerDuty, Discord, etc. verdrahten |
Nützliche API-Endpunkte
| Endpunkt | Rückgabe |
|---|
/api/v1/charts | Alle verfügbaren Diagramme auf dem Knoten |
/api/v1/data?chart=system.cpu | Zeitreihendaten für ein Diagramm |
/api/v1/allmetrics?format=prometheus | Scrapeziel für Prometheus |
/api/v1/badge.svg?chart=system.cpu&value_color=green | Einbettbares Statusabzeichen |
Netdata Cloud (Optional)
# Verbinde (beanspruche) einen Knoten mit Netdata Cloud für Multi-Knoten-Dashboards
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud
Der Agent funktioniert vollständig eigenständig, wenn du ihn nie beanspruchst — Cloud fügt nur Querknotenansichten und zentralisierte Warnungen hinzu.
Häufige Workflows
# Schnelle Gesundheitsprüfung aus der Shell
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'
# Metriken für einen vorhandenen Prometheus-Stack verfügbar machen
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head
# CPU/Festplatten-Fußabdruck auf einer kleinen VM senken (netdata.conf)
# [global] update every = 2
# [db] mode = ram # Metriken nur im Speicher halten
# Bewahrung reduzieren, aber Pro-Sekunde-Granularität beibehalten, dann neu laden
sudo systemctl restart netdata
Netdata vs Prometheus + Grafana
| Aspekt | Netdata | Prometheus + Grafana |
|---|
| Einrichtung | Minuten, Auto-Erkennung | Manuelle Exporter + Dashboards |
| Granularität | Pro Sekunde standardmäßig | Typischerweise 15s Scrape |
| Speicherung | Lokale abgestufte Datenbank (dbengine) | Zentrale TSDB |
| Am besten für | Einzelknoten-Tiefe, schnelle Triage | Große Flotten, Langzeit-Abfragen |
| Interop | Exportiert Prometheus-Format | Kann Netdata scrapen |
Ressourcen