Netdata ist ein leistungsstarkes Echtzeit-Monitoring-Tool mit einer übersichtlichen Web-Oberfläche. Es zeigt hunderte Metriken mit minimalem Ressourcenverbrauch.

Was kann Netdata?

  • Echtzeit-Metriken: Aktualisierung pro Sekunde
  • Automatische Erkennung: Dienste werden automatisch erkannt
  • Schöne Dashboards: Interaktive Grafiken
  • Alerts: Integrierte Warnmeldungen
  • Minimal: Wenig CPU- und RAM-Verbrauch

Schnelle Installation

Ein-Zeilen-Installation:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

Manuelle Installation (Ubuntu/Debian)

apt update
apt install netdata

CentOS/AlmaLinux

dnf install epel-release
dnf install netdata

Dienst starten

systemctl start netdata
systemctl enable netdata
systemctl status netdata

Web-Oberfläche

Netdata ist sofort unter Port 19999 erreichbar:

http://server-ip:19999

Firewall freigeben

ufw allow 19999/tcp

Dashboard-Übersicht

Das Dashboard zeigt:

  • System Overview: CPU, RAM, Load, Disk I/O
  • CPU: Auslastung pro Kern, Interrupts
  • Memory: RAM, Swap, Page Faults
  • Disks: I/O pro Festplatte
  • Network: Traffic pro Interface
  • Processes: Prozess-Statistiken
  • Linke Seitenleiste: Kategorien
  • Charts: Klicken und ziehen zum Zoomen
  • Zeitraum: Oben rechts anpassen

Automatische Erkennung

Netdata erkennt automatisch:

  • Apache, Nginx
  • MySQL, PostgreSQL, Redis
  • Docker Container
  • PHP-FPM
  • Systemd Services
  • und viele mehr

Erkannte Dienste prüfen

# In /etc/netdata/
ls /etc/netdata/go.d/
ls /etc/netdata/python.d/

Konfiguration

Hauptkonfiguration

nano /etc/netdata/netdata.conf

Bind-Adresse ändern

Standardmäßig lauscht Netdata nur auf localhost. Für Remote-Zugriff:

[web]
    bind to = 0.0.0.0

Vorsicht: Nur in sicheren Netzwerken oder mit Authentifizierung!

History verlängern

Standard sind 1 Stunde Daten. Für längere Historie:

[global]
    history = 7200   # 2 Stunden in Sekunden

Für längere Zeiträume: Netdata Cloud oder externe Datenbank.

Alerts konfigurieren

Alerts anzeigen

Im Dashboard: Glocken-Symbol oben rechts

Alert-Konfiguration

ls /etc/netdata/health.d/
nano /etc/netdata/health.d/cpu.conf

Eigenen Alert erstellen

In /etc/netdata/health.d/custom.conf:

alarm: high_cpu_usage
on: system.cpu
lookup: average -5m unaligned of user,system
units: %
every: 1m
warn: $this > 80
crit: $this > 95
info: CPU usage over 80%
to: sysadmin

Alerts per E-Mail

In /etc/netdata/health_alarm_notify.conf:

SEND_EMAIL="YES"
EMAIL_SENDER="netdata@server.de"
DEFAULT_RECIPIENT_EMAIL="admin@example.com"

Netdata Cloud

Netdata Cloud ermöglicht:

  • Mehrere Server zentral überwachen
  • Längere Historie
  • Team-Zugriff

Mit Cloud verbinden

netdata-claim.sh -token=DEIN_TOKEN -rooms=DEIN_ROOM

Token und Room-ID erhalten Sie nach Registrierung auf netdata.cloud.

Einzelne Dienste überwachen

MySQL/MariaDB

In /etc/netdata/go.d/mysql.conf:

jobs:
  - name: local
    dsn: 'netdata:passwort@tcp(localhost:3306)/'

MySQL-Benutzer erstellen:

CREATE USER 'netdata'@'localhost' IDENTIFIED BY 'passwort';
GRANT USAGE ON *.* TO 'netdata'@'localhost';
FLUSH PRIVILEGES;

Nginx

Nginx Status aktivieren:

location /nginx_status {
    stub_status on;
    allow 127.0.0.1;
    deny all;
}

Netdata erkennt es automatisch.

Docker

# Benutzer zur docker-Gruppe
usermod -aG docker netdata
systemctl restart netdata

Zugriff absichern

Mit Nginx als Reverse Proxy

server {
    listen 443 ssl;
    server_name netdata.example.com;

    ssl_certificate /etc/letsencrypt/live/netdata.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/netdata.example.com/privkey.pem;

    auth_basic "Netdata";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Passwort-Datei erstellen:

htpasswd -c /etc/nginx/.htpasswd admin

Netdata nur localhost

In /etc/netdata/netdata.conf:

[web]
    bind to = 127.0.0.1

Zugriff dann nur über SSH-Tunnel oder Reverse Proxy.

Performance optimieren

Ressourcenverbrauch reduzieren

[global]
    update every = 2           # Statt 1 Sekunde
    memory mode = ram          # Kein Disk-Speicher

[plugins]
    apps = no                  # Prozess-Details deaktivieren
    cgroups = no               # Container-Details deaktivieren

Metriken deaktivieren

# Plugin deaktivieren
mv /etc/netdata/python.d/example.conf /etc/netdata/python.d/example.conf.disabled

API nutzen

Netdata hat eine JSON-API:

# Aktuelle CPU-Daten
curl "http://localhost:19999/api/v1/data?chart=system.cpu"

# Chart-Liste
curl "http://localhost:19999/api/v1/charts"

# Einzelner Wert
curl "http://localhost:19999/api/v1/data?chart=system.cpu&format=ssv&after=-1"

Updates

# Bei Installation per Kickstart
/usr/libexec/netdata/netdata-updater.sh

# Bei APT-Installation
apt update && apt upgrade netdata

Troubleshooting

Netdata startet nicht

# Logs prüfen
journalctl -u netdata
cat /var/log/netdata/error.log

# Manuell starten
netdata -D

Chart fehlt

# Plugins prüfen
/usr/libexec/netdata/plugins.d/go.d.plugin -d

Zu viel RAM-Verbrauch

[global]
    history = 1800    # Reduzieren
    memory mode = ram

Alternativen

| Tool | Eigenschaften | |------|---------------| | Grafana + Prometheus | Flexibel, mehr Aufwand | | Zabbix | Enterprise, komplex | | Glances | Terminal-basiert | | htop | Nur Prozesse |

Fazit

Netdata ist das beste Tool für schnelles Server-Monitoring. Die Installation dauert Sekunden, die Oberfläche ist modern, und die automatische Erkennung erspart Konfigurationsaufwand. Für produktive Umgebungen sollten Sie den Zugriff absichern.