Netdata Monitoring Echtzeit Server Überwachung
Netdata Monitoring – Echtzeit-Server-Überwachung installieren und konfigurieren
Was ist Netdata?
Netdata ist eine ultraschnelle, verteilte Echtzeit-Monitoring-Lösung mit minimaler Konfiguration. Im Gegensatz zu Prometheus oder Grafana benötigt Netdata praktisch keine Konfiguration – es startet sofort mit hunderten von vorkonfigurierten Dashboards, automatischen Metriken und Echtzeit-Visualisierungen. Netdata ist Open-Source und speichert Metriken lokal mit sehr hoher Präzision (1-Sekunden-Granularität).
Kernfeatures von Netdata
- Out-of-the-Box Dashboards: Sofort einsatzbereite, schöne und interaktive Dashboards ohne Konfiguration
- Hochperformant: Geschrieben in C, nur ~1% CPU-Overhead selbst bei tausenden Metriken
- 1-Sekunden-Granularität: Detailliertere Metriken als Prometheus (1s vs 15-30s)
- Lokal persistent: Ringbuffer mit konfigurierbarer lokaler Retention (Standard: 1 Tag)
- Automatische Konfiguration: Plugin-basierte automatische Erkennung (MySQL, PostgreSQL, nginx, Docker, etc.)
- Alerts: Hunderte vordefinierte, intelligente Alert-Regeln
- Multi-Host Streaming: Parent-Child Streaming für zentrale Verwaltung mehrerer Knoten
- Kostenlos & Open-Source: Apache 2.0 Lizenz, vollständig kostenlos
- Community Cloud Optional: Kostenlose oder bezahlte Cloud-Integration für Backup und zentrale Verwaltung
Vergleich: Netdata vs Grafana+Prometheus vs Zabbix
| Feature | Netdata | Prometheus + Grafana | Zabbix |
|---|---|---|---|
| Setup-Zeit | 2 Minuten | 30+ Minuten | 1+ Stunden |
| CPU-Overhead | ~1% | ~3-5% | ~2-3% |
| Metriken-Granularität | 1 Sekunde | 15-30 Sekunden | 1-60 Sekunden |
| Konfiguration nötig | Minimal (fast keine) | Moderat (YAML-Dateien) | Viel (Web-UI & Dateien) |
| Dashboard-Qualität | Excellent (OOB) | Excellent (Custom) | Gut |
| Alerts/Alarme | Built-in (intelligent) | AlertManager | Built-in (komplex) |
| Datenspeicherung | Lokal oder Remote | Remote (TSDB) | MySQL/PostgreSQL |
| Multi-Host Zentrale Verwaltung | Netdata Cloud | Grafana Cloud | Built-in |
| Lizenz | Apache 2.0 (kostenlos) | Open Source + Enterprise | Open Source + Enterprise |
| Best für | Schnelle Überwachung, einfache Setups | Enterprise, Custom Dashboards | Enterprise Monitoring, komplexe Szenarien |
Systemanforderungen
- OS: Linux (Ubuntu, Debian, Fedora, CentOS, etc.), macOS, FreeBSD
- RAM: Minimum 512 MB (1-2 GB empfohlen)
- CPU: 1+ Kern
- Disk: 500 MB minimum (für lokale Metriken-Speicherung)
Installation Methode 1: Offizielle Kickstart Script (Empfohlen)
Dies ist die schnellste und empfohlene Installationsmethode:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Das Script lädt die neueste Version herunter, installiert alle Abhängigkeiten und startet Netdata automatisch. Dies kann 2-5 Minuten dauern.
Überprüfen Sie den Status:
sudo systemctl status netdata
Netdata läuft automatisch auf Port 19999 und ist unter folgender Adresse erreichbar:
http://localhost:19999
Installation Methode 2: Package Manager
Alternativ können Sie Netdata über den Package Manager installieren (möglicherweise ältere Version):
sudo apt update sudo apt install -y netdata
Starten Sie Netdata:
sudo systemctl start netdata sudo systemctl enable netdata
Post-Installation: Verifizierung und Zugriff
Überprüfen Sie, ob Netdata läuft:
sudo systemctl status netdata
Überprüfen Sie die Logs auf Fehler:
sudo tail -f /var/log/netdata/error.log
Greifen Sie auf das Dashboard zu:
http://SERVERIP:19999
Sie sollten sofort ein schönes, interaktives Dashboard mit Echtzeit-Metriken sehen.
Dashboard-Übersicht: Was wird automatisch überwacht?
Netdata monitiert automatisch aus dem Karton heraus:
- CPU: Gesamtlast, Nutzung pro Kern, Context Switches
- RAM: Speichernutzung, Cache, Buffer, Auslagerung (Swap)
- Disk I/O: Read/Write Operations, Throughput pro Disk und Partition
- Disk Space: Nutzung, freier Space pro Partition
- Network: Bandbreitennutzung pro Interface, Pakete, Fehler, Collisions
- System: Load Average, Uptime, IRQs, Context Switches
- Prozesse: Top Prozesse nach CPU und RAM, Kontext Switches
- System Load: Detailliertes Graph mit 1m, 5m, 15m Average
Plugin-System: Automatische Erkennung von Services
Netdata erkennt automatisch installed Services und aktiviert entsprechende Plugins. Diese Services werden automatisch monitiert, wenn erkannt:
- MySQL/MariaDB: Queries, Connections, Performance Metriken
- PostgreSQL: Queries, Connections, Replication Status
- MongoDB: Operations, Replication, Memory
- Redis: Commands, Memory, Clients, Keys
- nginx/Apache: Requests, Connections, Virtual Hosts
- Docker: Container CPU, Memory, I/O, Netzwerk
- Kubernetes: Pod Metriken, Node Status
- Elasticsearch: Indices, Nodes, Shards
- PHP-FPM: Processes, Requests
- Mail (Postfix, Dovecot): Mails pro Minute
- NVIDIA GPU: GPU Memory, Utilization, Temperature
Überprüfen Sie, welche Plugins aktiv sind:
sudo ls -la /etc/netdata/python.d/
Oder schauen Sie in das Netdata Dashboard unter "Apps" Menü.
Netdata-Konfiguration
Basis-Konfigurationsdatei
Bearbeiten Sie die Hauptkonfiguration:
sudo nano /etc/netdata/netdata.conf
Wichtige Konfigurationsoptionen
Web-Bindungsadresse (Remote-Zugriff ermöglichen):
[web]
bind to = 0.0.0.0:19999
Memory Mode (lokal, RAM oder Disk):
[global]
memory mode = save
Verfügbare Modi: - none: Keine Speicherung - ram: Nur RAM (schnell, aber verloren beim Reboot) - save: RAM + persistentes Speichern auf Disk - map: Memory-Mapped Files
History/Retention (wie lange Daten behalten werden):
[global]
history = 3600
Dies speichert 3600 Sekunden (1 Stunde) Metriken. Erhöhen Sie den Wert für längere Retention (z.B. 86400 für 1 Tag).
Nach Änderungen starten Sie Netdata neu:
sudo systemctl restart netdata
Nginx Reverse Proxy Setup mit Basic Auth
Für produktive Umgebungen schützen Sie Netdata hinter Nginx mit SSL und Authentifizierung:
sudo apt install -y apache2-utils
Erstellen Sie eine .htpasswd-Datei:
sudo htpasswd -c /etc/nginx/.htpasswd admin
Geben Sie ein Passwort ein. Nun erstellen Sie die Nginx-Konfiguration:
sudo nano /etc/nginx/sites-available/netdata
upstream netdata_backend {
server 127.0.0.1:19999;
keepalive 64;
}
server {
listen 80;
server_name monitoring.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name monitoring.example.com;
ssl_certificate /etc/letsencrypt/live/monitoring.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monitoring.example.com/privkey.pem;
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://netdata_backend;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
}
}
Aktivieren Sie die Konfiguration:
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
Alerts-Konfiguration
Netdata hat hunderte vordefinierte Alert-Regeln. Bearbeiten Sie die Alert-Konfiguration:
sudo nano /etc/netdata/health.d/cpu.conf
Beispiel: CPU Alert anpassen:
alarm: cpu_usage
on: system.cpu
calc: 100 - (($idle * 100) / $total)
units: %
every: 1m
warn: $this > 80
crit: $this > 95
delay: up 2m down 5m
info: CPU usage
Dies triggert einen Warning bei > 80% CPU für 2 Minuten und einen Critical bei > 95% CPU.
Neustart nach Änderungen:
sudo systemctl restart netdata
Alert-Benachrichtigungen konfigurieren
Email-Benachrichtigungen einrichten
Bearbeiten Sie die Notification-Konfiguration:
sudo nano /etc/netdata/health_alarm_notify.conf
Konfigurieren Sie SMTP für Email:
SEND_EMAIL="YES" EMAIL_SENDER="netdata@example.com" SMTP_SERVER="mail.example.com" SMTP_PORT="587" SMTP_USERNAME="user@example.com" SMTP_PASSWORD="password"
Setzen Sie Empfänger:
DEFAULT_RECIPIENT_EMAIL="admin@example.com"
Telegram Bot Setup
Erstellen Sie einen Bot mit @BotFather auf Telegram und erhalten Sie den Token.
Konfigurieren Sie in /etc/netdata/health_alarm_notify.conf:
SEND_TELEGRAM="YES" TELEGRAM_BOT_TOKEN="your_bot_token_here" TELEGRAM_CHAT_ID="your_chat_id_here"
Slack Webhook Integration
Erstellen Sie einen Webhook in Slack und konfigurieren:
SEND_SLACK="YES" SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
Netdata Cloud: Zentrale Verwaltung
Für zentrale Verwaltung mehrerer Hosts können Sie Netdata Cloud verwenden (kostenlos mit Limits):
1. Registrieren Sie sich unter https://app.netdata.cloud
2. Auf dem Server führen Sie aus:
sudo netdata-claim.sh -token=YOUR_CLAIM_TOKEN -rooms=YOUR_ROOM_ID -url=https://app.netdata.cloud
3. Der Server wird automatisch mit Ihrer Cloud-Instanz verbunden und Metriken werden zentral verwaltet.
Parent-Child Streaming für zentrale Überwachung
Richten Sie mehrere "Child" Netdata-Instanzen ein, um Metriken zu einer "Parent" zu streamen:
Auf dem Parent Server (/etc/netdata/stream.conf):
enabled = yes
default history = 3600
[CHILD_HOSTNAME]
enabled = yes
history = 3600
Auf den Child Servern (/etc/netdata/stream.conf):
enabled = yes destination = PARENT_IP:19999 api key = SECURE_API_KEY history = 3600
Generieren Sie einen sicheren API-Key:
uuidgen
Alle Metriken von Child-Systemen werden zum Parent gestreamt und können zentral überwacht werden.
Custom Plugins erstellen
Python Plugin Beispiel
Erstellen Sie ein Custom Python Plugin:
sudo nano /etc/netdata/python.d/custom_metric.py
#!/usr/bin/env python3
import os
import time
from collections import namedtuple
ORDER = ['custom_metric']
CHARTS = {
'custom_metric': {
'options': [None, 'Custom Metric', 'value', 'custom', 'custom.metric', 'line'],
'lines': [
['metric1', 'Metric 1', 'absolute', 1, 1]
]
}
}
class Service:
def __init__(self, configuration):
self.order = ORDER
self.definitions = CHARTS
def _get_data(self):
# Hier Ihre Metrik-Logik
return {'metric1': 42}
def check(self):
return True
def create(self):
pass
def update(self, interval):
data = self._get_data()
return data if data else False
Aktivieren Sie das Plugin in /etc/netdata/python.d.conf:
custom_metric: yes
Nützliche API Endpoints
Netdata bietet REST API für programmistische Zugriffe:
# Alle verfügbaren Charts curl http://localhost:19999/api/v1/charts # Daten für ein spezifisches Chart curl 'http://localhost:19999/api/v1/data?chart=system.cpu&format=json' # Alert Status curl http://localhost:19999/api/v1/alarms # Info über den Host curl http://localhost:19999/api/v1/info
Performance Tuning für Low-Resource Systeme
Für Server mit wenig Ressourcen können Sie Netdata optimieren:
Reduzieren Sie die Update-Frequenz:
[global]
update every = 5
Dies aktualisiert Metriken alle 5 Sekunden statt 1 Sekunde.
Deaktivieren Sie nicht benötigte Plugins:
sudo nano /etc/netdata/netdata.conf
[plugins]
proc = no
diskspace = no
cgroups = no
Reduzieren Sie die History:
[global]
history = 600
Dies speichert nur 10 Minuten Daten (statt Standard 1 Stunde).
Netdata aktualisieren
Aktualisieren Sie Netdata auf die neueste Version:
sudo /opt/netdata/bin/netdata-updater.sh
Oder via Package Manager:
sudo apt update sudo apt upgrade netdata
Troubleshooting und Debugging
Netdata startet nicht
Überprüfen Sie die Logs:
sudo tail -f /var/log/netdata/error.log sudo journalctl -u netdata -n 50
Plugins laden nicht
Überprüfen Sie Plugin Status:
sudo tail -f /var/log/netdata/collector-error.log
Debug Mode aktivieren
Starten Sie Netdata im Debug Mode:
sudo systemctl stop netdata sudo /opt/netdata/bin/netdata -D
Port 19999 ist bereits in Gebrauch
sudo lsof -i :19999 # Beenden Sie den Prozess oder ändern Sie den Port in /etc/netdata/netdata.conf
Best Practices
- Regelmäßige Updates: Halten Sie Netdata aktuell für Sicherheits-Updates und neue Features
- Cloud Integration: Nutzen Sie Netdata Cloud für Multi-Host Monitoring
- Custom Alerts: Passen Sie Alert-Thresholds an Ihre Umgebung an
- Backup konfigurieren: Sichern Sie regelmäßig Metriken-Daten
- SSL/TLS verwenden: Schützen Sie Remote-Zugriff mit HTTPS
- Authentifizierung: Verwenden Sie Basic Auth oder Integration mit einem SSO-System
Zusammenfassung
Netdata ist eine ultraschnelle, einsteigerfreundliche Monitoring-Lösung mit Echtzeit-Metriken und schönen Dashboards. Im Gegensatz zu Prometheus benötigt Netdata minimal Konfiguration und startet sofort mit brauchbaren Überwachungsdaten. Mit Parent-Child Streaming oder Netdata Cloud können Sie auch mehrere Hosts zentral überwachen.
Netdata ist perfekt für schnelle Setups, kleine bis mittlere Deployments und Entwickler, die schnell Monitoring benötigen. Für sehr große, komplexe Enterprise-Umgebungen könnten Prometheus+Grafana oder Zabbix flexibler sein.