Netdata Installation · 24 min read · Nov 30, 2025
So installieren und überwachen Sie Dienste mit dem Netdata-Überwachungstool auf Rocky Linux 8

Netdata ist ein Open-Source-Überwachungssystem für Linux-basierte Betriebssysteme. Es bietet eine Echtzeit-Leistungsüberwachung und -überwachung mit schönen und detaillierten Dashboards. Es bietet Hunderte von Tools zur Überwachung von Servern, CPU, Speichernutzung, Systemprozessen, Festplattenspeicher, IPv4- und IPv6-Netzwerken, Systemfirewall und Anwendungen wie Nginx, MySQL, MongoDB, Redis, ElasticSearch, PostgreSQL, PHP-FPM usw. Es integriert sich mit anderen Überwachungstools wie Prometheus, Graphite, Kafka, Grafana und mehr.
In diesem Tutorial lernen Sie, wie Sie verschiedene Dienste mit dem Netdata-Tool auf einem Rocky Linux 8-Server installieren und überwachen. Wir werden Netdata verwenden, um die Metriken eines LEMP-Stacks und der Docker-Engine zu verfolgen.
Voraussetzungen
- Ein Server, der Rocky Linux 8 ausführt.
- Ein Nicht-Root-Benutzer mit Sudo-Rechten.
- Ein vollständig qualifizierter Domainname (FQDN) wie
netdata.example.com, der auf Ihren Server verweist. - Ein Slack-Konto und ein Arbeitsbereich zum Empfangen von Benachrichtigungen.
- Ein SMTP-Konto mit einem E-Mail-Dienst wie Amazon SES oder Mailgun.
- Deaktivieren Sie SELinux.
Schritt 1 - Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Rocky Linux verwendet die Firewalld-Firewall. Überprüfen Sie den Status der Firewall.
$ sudo firewall-cmd --state
running
Die Firewall arbeitet mit verschiedenen Zonen, und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listen Sie alle Dienste und Ports auf, die auf der Firewall aktiv sind.
$ sudo firewall-cmd --permanent --list-services
Es sollte die folgende Ausgabe angezeigt werden.
cockpit dhcpv6-client ssh
Erlauben Sie HTTP- und HTTPS-Ports.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Überprüfen Sie den Status der Firewall erneut.
$ sudo firewall-cmd --permanent --list-services
Sie sollten eine ähnliche Ausgabe sehen.
cockpit dhcpv6-client http https ssh
Laden Sie die Firewall neu, um die Änderungen zu aktivieren.
$ sudo firewall-cmd --reload
Schritt 2 - NetData installieren
Netdata wird mit einem Installationsskript geliefert, das auf jeder Linux-Distribution funktionieren kann. Führen Sie den folgenden Befehl aus, um das Installationsskript herunterzuladen und auszuführen.
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Sie werden nach Ihrem Sudo-Passwort gefragt, um Sudo-Rechte zu aktivieren. Geben Sie Y ein, um die Hinzufügung des Netdata-Repositorys und die Installation auf Ihrem Server zu bestätigen.
Der Netdata-Installer aktiviert und startet automatisch den Dienst. Überprüfen Sie den Status des Dienstes.
$ sudo systemctl status netdata
? netdata.service - Echtzeit-Leistungsüberwachung
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-04-11 12:09:12 UTC; 13s ago
Main PID: 19443 (netdata)
Tasks: 32 (limit: 11412)
Memory: 52.0M
CGroup: /system.slice/netdata.service
??19443 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D
??19448 /usr/sbin/netdata --special-spawn-server
??19937 /usr/libexec/netdata/plugins.d/apps.plugin 1
??19944 /usr/libexec/netdata/plugins.d/go.d.plugin 1
Apr 11 12:09:12 netdata systemd[1]: Started Echtzeit-Leistungsüberwachung.
.......
Wenn Ihr Dienst nicht gestartet oder aktiviert ist, können Sie dies mit dem folgenden Befehl tun.
$ sudo systemctl enable netdata --now
Führen Sie den folgenden Befehl aus, um die offenen Ports und die sie verwendenden Prozesse zu überprüfen.
$ sudo ss -plnt
Sie sollten eine ähnliche Ausgabe erhalten. Netdata verwendet Port 19999 für sein Dashboard, wie in der folgenden Ausgabe zu sehen ist. Netdata verwendet Port 8125, um Statistiken von anderen Anwendungen zu empfangen.
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:8125 0.0.0.0:* users:(("netdata",pid=22496,fd=29))
LISTEN 0 128 0.0.0.0:19999 0.0.0.0:* users:(("netdata",pid=22496,fd=6))
......
LISTEN 0 128 [::1]:8125 [::]:* users:(("netdata",pid=22496,fd=28))
LISTEN 0 128 [::]:19999 [::]:* users:(("netdata",pid=22496,fd=7))
Schritt 3 - SSL installieren
Um ein SSL-Zertifikat mit Let’s Encrypt zu installieren, müssen wir das Certbot-Tool installieren.
Zuerst müssen Sie das EPEL-Repository herunterladen und installieren.
$ sudo dnf install epel-release
Führen Sie die folgenden Befehle aus, um Certbot zu installieren.
$ sudo dnf install certbot
Generieren Sie das SSL-Zertifikat.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netdata.example.com
Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/netdata.example.com auf Ihrem Server herunter.
Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Erstellen Sie ein Herausforderungs-Webstammverzeichnis für die automatische Erneuerung von Let’s Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Erstellen Sie einen Cron-Job zur Erneuerung des SSL. Er wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und es bei Bedarf zu erneuern. Erstellen Sie dazu zuerst die Datei /etc/cron.daily/certbot-renew und öffnen Sie sie zur Bearbeitung.
$ sudo nano /etc/cron.daily/certbot-renew
Fügen Sie den folgenden Code ein.
#!/bin/sh
certbot renew --cert-name netdata.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Ändern Sie die Berechtigungen der Aufgaben-Datei, um sie ausführbar zu machen.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Schritt 4 - Nginx installieren und konfigurieren
Wir werden die neueste Version von Nginx installieren. Erstellen und öffnen Sie die Datei /etc/yum.repos.d/nginx.repo zur Bearbeitung.
$ sudo nano /etc/yum.repos.d/nginx.repo
Fügen Sie die folgenden Zeilen ein.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Installieren Sie Nginx und HTTPD-Tools.
$ sudo dnf install nginx httpd-tools
Überprüfen Sie die Installation.
$ nginx -v
nginx version: nginx/1.20.2
Aktivieren und starten Sie den Nginx-Dienst.
$ sudo systemctl enable nginx --now
Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/netdata.conf zur Bearbeitung.
$ sudo nano /etc/nginx/conf.d/netdata.conf
Fügen Sie den folgenden Code ein.
# Definieren Sie netdata upstream
upstream netdata {
server 127.0.0.1:19999;
keepalive 64;
}
# Leiten Sie alle nicht verschlüsselten Anfragen an verschlüsselte weiter
server {
listen 80;
listen [::]:80;
server_name netdata.example.com;
return 301 https://netdata.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
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;
ssl_trusted_certificate /etc/letsencrypt/live/netdata.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
resolver_timeout 2s;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
access_log /var/log/nginx/netdata.example.com.access.log main;
error_log /var/log/nginx/netdata.example.com.error.log;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_pass http://netdata;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
auth_basic "NetData Private Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.
$ sudo nano /etc/nginx/nginx.conf
Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.
server_names_hash_bucket_size 64;
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Führen Sie den folgenden Befehl aus, um eine Passwortdatei zu generieren, um die HTTP-Authentifizierung zu aktivieren.
$ sudo htpasswd -c /etc/nginx/.htpasswd netadmin
New password:
Re-type new password:
Adding password for user netadmin
Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.
$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich
Starten Sie den Nginx-Dienst neu, um die neue Konfiguration zu aktivieren.
$ sudo systemctl restart nginx
Schritt 5 - Zugriff auf das Netdata-Dashboard
Sie sollten in der Lage sein, auf Netdata über die URL https://netdata.example.com zuzugreifen. Beim ersten Zugriff werden Sie nach Ihren HTTP-Authentifizierungsdetails gefragt.

Sie erhalten das folgende Dashboard.

Aktivieren Sie das Kontrollkästchen Meine Wahl merken und klicken Sie auf die Schaltfläche Später, im Agenten-Dashboard bleiben, um das Popup zu schließen.
Sie können die Überwachung jederzeit mit der Schaltfläche Wiedergabe im Dashboard pausieren, stoppen und starten.

Sie können auf verschiedene Dashboards zugreifen, indem Sie auf die Optionen in der rechten Seitenleiste klicken. Klicken Sie auf die Schaltfläche UTC und wählen Sie die richtige Zeitzone aus, um sie zu ändern.

Schritt 6 - NetData konfigurieren
Netdata speichert seine Hauptkonfiguration in der Datei /etc/netdata/netdata.conf. Sie können diese Einstellungen anzeigen, indem Sie die URL https://netdata.example.com/netdata.conf in Ihrem Browser besuchen.

Die Datei ist in verschiedene Abschnitte unterteilt, wie [global], [web], [registry] und mehr. Die Standardkonfiguration reicht aus, um uns den Einstieg zu erleichtern. Netdata sammelt Daten mit zwei Arten von Plugins:
- interne Plugins sind in C geschrieben und laufen als Threads innerhalb des
netdataDaemons. - externe Plugins sind in verschiedenen Sprachen geschrieben, einschließlich Python, Go usw. und werden als langlaufende unabhängige Prozesse vom
netdataDaemon gestartet. Sie kommunizieren mit dem Netdata-Daemon überpipes.
Konfigurieren Sie die Speichernutzung von NetData
Der RAM-Verbrauch von NetData wird basierend auf der Zeit entschieden, die Sie die aufgezeichneten Diagrammdaten aufbewahren möchten, bevor sie verloren gehen.
- 3600 Sekunden oder 1 Stunde Diagrammdatenaufbewahrung verwenden 15 MB RAM.
- 7200 Sekunden oder 2 Stunden Diagrammdatenaufbewahrung verwenden 30 MB RAM.
- 14400 Sekunden oder 4 Stunden Diagrammdatenaufbewahrung verwenden 60 MB RAM.
Jedes Mal, wenn Sie die Diagrammdatenaufbewahrungszeit verdoppeln, verdoppeln sich auch die RAM-Anforderungen. Diese RAM-Anforderungen basieren auf der Anzahl der Diagramme, die im Standard-Dashboard verwendet werden. Das Hinzufügen weiterer Diagramme und Anwendungen ändert diese Schätzungen.
Öffnen Sie die Netdata-Konfigurationsdatei.
$ sudo nano /etc/netdata/netdata.conf
Geben Sie die Zeile history = 14400 unter dem Abschnitt [global] ein.
[global]
..
history = 14400
..
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Telemetrie deaktivieren
Standardmäßig sammelt Netdata anonyme Nutzungsinformationen über eine Produktanalyseplattform, Posthog. Jedes Mal, wenn der Netdata-Daemon gestartet oder gestoppt wird, verwendet Netdata das Skript für anonyme Statistiken, um die folgenden Systeminformationen zu sammeln und an sich selbst zu senden.
- Netdata-Version
- OS-Name, Version, ID, id_like
- Kernelname, Version, Architektur
- Virtualisierungstechnologie
- Containerisierungstechnologie
- Zusätzliche Informationen zu Netdata-Clientfehlern.
Glücklicherweise können Sie sich davon abmelden. Erstellen Sie eine leere Datei mit dem Namen .opt-out-from-anonymous-statistics im Netdata-Verzeichnis.
$ sudo touch /etc/netdata/.opt-out-from-anonymous-statistics
Starten Sie Netdata neu, um die Änderung zu aktivieren.
$ sudo systemctl restart netdata
Langfristige Speicherung
Netdata verwendet standardmäßig den RAM und die Festplatte Ihres Systems, um historische Daten zu speichern. Der Standard-Netdata-Prozess sammelt etwa 2000 Metriken pro Sekunde, was bedeutet, dass die Standardkonfiguration etwa zwei Tage an Metriken im RAM und auf der Festplatte speichert.
Um mehr Metriken zu speichern, haben Sie die folgenden zwei Optionen:
- Konfigurieren Sie Netdata so, dass mehr RAM und Speicherplatz verwendet werden
- Archivieren Sie die Metriken in einer externen Datenbank
Wir werden in diesem Tutorial nur die erste Option besprechen. Für die zweite Option sollten Sie die offizielle Dokumentation von Netdata konsultieren.
Konfigurieren Sie Netdata so, dass mehr RAM und Speicherplatz verwendet wird
Öffnen Sie die Datei /etc/netdata/netdata.conf zur Bearbeitung.
$ sudo nano /etc/netdata/netdata.conf
Fügen Sie die folgenden Zeilen unter dem Abschnitt [global] ein.
[global]
...
memory mode = dbengine
page cache size = 32
dbengine disk space = 256
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Die Seiten-Cache-Größe bestimmt die Menge an RAM, die verwendet wird, und der dbengine disk space bestimmt die Festplattennutzung. Standardmäßig verwendet Netdata 32 MB RAM und 256 MB Speicherplatz. Sie können diese Werte auskommentieren und einen der beiden Werte nach Belieben ändern.
Sie können den Speicher-Metrik-Rechner von Netdata verwenden, um zu entscheiden, wie viel RAM und Speicherplatz Sie benötigen.
Reduzieren Sie die Erfassungsfrequenz
Sie können die Leistung von Netdata optimieren, indem Sie die Zeit zwischen der Metrik-Erfassung erhöhen. Standardmäßig sammelt Netdata Metriken jede Sekunde.
Um dies zu ändern, öffnen Sie die Netdata-Konfigurationsdatei zur Bearbeitung.
$ sudo nano /etc/netdata/netdata.conf
Geben Sie die folgende Zeile unter dem Abschnitt [global] ein. Dies erhöht die Frequenz auf 5 Sekunden.
[global]
...
update every = 5
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Schritt 7 - Slack-Benachrichtigungen konfigurieren
Der erste Schritt besteht darin, eine Slack-Anwendung zu erstellen und sie mit einem bestimmten Kanal in Ihrem Arbeitsbereich zu verbinden, um Slack-Benachrichtigungen zu konfigurieren.
Besuchen Sie die Slack-API-Seite und klicken Sie auf die Schaltfläche App erstellen, um mit der Erstellung einer Anwendung zu beginnen.

Klicken Sie auf den Link Von Grund auf neu, um die App zu erstellen.

Wählen Sie einen Namen für Ihre App und wählen Sie den Arbeitsbereich aus, in dem Ihre App angezeigt werden soll. Wenn Sie Ihre App nicht mit dem vorhandenen Arbeitsbereich verknüpfen möchten, können Sie einen anderen erstellen und zu diesem Schritt zurückkehren.

Öffnen Sie die Seite Eingehender Webhook, indem Sie die Option im Menü Funktionen in der linken Seitenleiste auswählen, und aktivieren Sie dann den Webhook.

Klicken Sie auf die Schaltfläche Neuen Webhook zum Arbeitsbereich hinzufügen am Ende der Seite und wählen Sie Ihren Arbeitsbereich und den Zielkanal für Benachrichtigungen aus.

Klicken Sie auf die Schaltfläche Erlauben, um fortzufahren. Kehren Sie zur Seite Eingehende Webhooks zurück und kopieren Sie die Webhook-URL.

Kehren Sie zum Terminal zurück und wechseln Sie in das Verzeichnis /etc/netdata.
$ cd /etc/netdata
Netdata bietet ein Skript edit-config, um Netdata-Konfigurationsdateien zu bearbeiten und zu erstellen. Führen Sie die folgende Datei aus, um die Datei health_alarm_notify.conf mit dem Standardeditor Ihres Systems zu erstellen und zu öffnen.
$ sudo ./edit-config health_alarm_notify.conf
Scrollen Sie nach unten zu dem folgenden Abschnitt.
# Slack-Benachrichtigung aktivieren
SEND_SLACK="YES"
# Wählen Sie den Slack-Webhook aus
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxx"
# Standardkanal für Benachrichtigungen
DEFAULT_RECIPIENT_SLACK="notifications"
Stellen Sie sicher, dass die Variable SEND_SLACK auf ja gesetzt ist. Fügen Sie die kopierte Webhook-URL in die Variable SLACK_WEBHOOK_URL ein. Geben Sie den Namen Ihres Kanals für die Variable DEFAULT_RECIPIENT_SLACK ein.
Wenn Ihr Editor Vim ist, drücken Sie die Escape-Taste, um den Bearbeitungsmodus zu verlassen, geben Sie :x ein und drücken Sie die Enter-Taste, um die Datei zu speichern und den Editor zu verlassen.
Wenn Ihr Editor Nano ist, speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie Netdata neu, um die Änderungen anzuwenden.
$ sudo systemctl restart netdata
E-Mail-Benachrichtigungen konfigurieren
Netdata verwendet standardmäßig sendmail, um E-Mail-Benachrichtigungen zu senden, aber die Verwaltung eines E-Mail-Servers ist keine einfache Aufgabe. Netdata unterstützt kein SMTP, aber Sie können ein Paket namens msmtp-Client installieren. Damit können Sie E-Mails an einen SMTP-Server senden.
Installieren Sie msmtp.
$ sudo dnf install msmtp
Erstellen und öffnen Sie die Konfigurationsdatei für msmtp.
$ sudo nano /etc/msmtprc
Fügen Sie den folgenden Code ein.
# Setzen Sie Standardwerte für alle folgenden Konten.
defaults
# Verwenden Sie den Mail-Übermittlungsport 587 anstelle des SMTP-Ports 25.
port 587
# Immer TLS verwenden.
tls on
# Der SMTP-Server Ihres ISP
account ses
host email-smtp..amazonaws.com
from [email protected]
auth on
user
password
# Standardkonto auf ISP setzen
account default: ses
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Öffnen Sie die Datei /etc/netdata/health_alarm_notify.conf zur Bearbeitung.
$ sudo nano /etc/netdata/health_alarm_notify.conf
Scrollen Sie nach unten zu dem folgenden Abschnitt und geben Sie den Pfad zu msmtp ein.
# externe Befehle
# Der vollständige Pfad zum sendmail-Befehl.
# Wenn leer, wird der System-$PATH nach ihm durchsucht.
# Wenn nicht gefunden, werden E-Mail-Benachrichtigungen deaktiviert (stillschweigend).
sendmail="/usr/bin/msmtp"
Suchen Sie den folgenden Abschnitt und geben Sie die Details des Absenders und Empfängers ein und stellen Sie sicher, dass das Senden von E-Mails aktiviert ist.
# E-Mail globale Benachrichtigungsoptionen
# Mehrere Empfänger können so angegeben werden:
# "[email protected] [email protected] ..."
# Die E-Mail-Adresse, die E-Mail-Benachrichtigungen sendet
# der Standard ist der Systembenutzer, unter dem netdata ausgeführt wird (normalerweise: netdata)
# Die folgenden Formate werden unterstützt:
# EMAIL_SENDER="user@domain"
# EMAIL_SENDER="Benutzername "
# EMAIL_SENDER="'Benutzername' "
# EMAIL_SENDER="\"Benutzername\" "
EMAIL_SENDER="Server-Admin <[email protected]>"
# E-Mail senden aktivieren/deaktivieren
SEND_EMAIL="YES"
# Wenn kein Empfänger für die Rolle konfiguriert ist, wird eine E-Mail gesendet an:
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# um nur kritische Alarme zu erhalten, setzen Sie es auf "root|critical"
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Schritt 8 - Testen der Benachrichtigungskanäle
Lassen Sie uns testen, ob die Slack-Benachrichtigungen funktionieren.
Melden Sie sich als Systembenutzer netdata an, der während der Installation erstellt wurde.
$ sudo su -s /bin/bash netdata
Führen Sie das Alarmbenachrichtigungsskript aus, um eine Testbenachrichtigung zu senden.
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Verlassen Sie den Benutzer.
$ exit.
Öffnen Sie Ihre Slack-Anwendung, und Sie sollten die folgenden Warnungen erhalten haben.

Sie sollten auch drei E-Mails über die Testwarnungen erhalten.

Schritt 9 - Systemüberwachung konfigurieren
Jetzt, da wir die Benachrichtigungen konfiguriert und getestet haben, lassen Sie uns die Benachrichtigungen für das System konfigurieren und testen, wie z. B. die CPU-Nutzung.
Führen Sie die folgenden Befehle aus, um die CPU-Konfigurationsdatei zu erstellen und zu öffnen.
$ cd /etc/netdata
$ sudo ./edit-config health.d/cpu.conf
Ändern Sie die Werte der warn- und crit-Optionen unter der 10min_cpu_usage wie unten gezeigt.
warn: $this > (($status >= $WARNING) ? (60) : (70))
crit: $this > (($status == $CRITICAL) ? (75) : (85))
Speichern Sie die Datei und verlassen Sie den Editor.
Die obige Einstellung sendet eine Warnung, wenn die CPU-Nutzung zwischen 60 und 70 % liegt, und eine kritische Warnung, wenn die CPU-Nutzung zwischen 75 und 85 % liegt.
Starten Sie den Netdata-Dienst neu.
$ sudo systemctl restart netdata
Lassen Sie uns die Einstellung testen, indem wir die Anwendung Stress installieren.
$ sudo dnf install stress
Führen Sie den folgenden Befehl aus, um die CPU-Nutzung Ihres Servers zu erhöhen.
$ stress --cpu 2
Lassen Sie den Befehl 5-10 Minuten lang laufen, und Sie erhalten Nachrichten über eine hohe CPU-Nutzung. Sobald Sie diese Nachrichten erhalten, kehren Sie zum Terminal zurück und beenden Sie den Befehl, indem Sie Strg + Z drücken.
Nachdem Sie den Dienst gestoppt haben, erhalten Sie eine Benachrichtigung über die wiederhergestellte CPU auf Slack.

Schritt 10 - Nginx-Überwachung konfigurieren
Eine der am häufigsten überwachten Anwendungen mit Netdata sind die Server- und SQL-Pakete. Lassen Sie uns den Nginx-Server mit Netdata überwachen.
Um die Überwachung des Nginx-Servers zu aktivieren, müssen wir das ngx_http_stub_status_module verwenden. Es ist normalerweise bereits mit Nginx vorinstalliert. Sie können überprüfen, ob das Modul vorhanden ist.
$ nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
Wenn Sie keine Antwort erhalten, bedeutet dies, dass Ihre Nginx-Installation diese Funktion nicht unterstützt. In diesem Fall müssen Sie Nginx kompilieren.
Öffnen Sie die Standardkonfigurationsdatei von Nginx /etc/nginx/conf.d/default.conf zur Bearbeitung. Der Speicherort der Datei ist anders, da wir Nginx aus dem offiziellen Repository installiert haben. Wenn Sie Nginx aus dem Repository des Betriebssystems installieren, befindet sich der Speicherort der Datei in /etc/nginx/nginx.conf.
$ sudo nano /etc/nginx/conf.d/default.conf
Geben Sie den folgenden Code innerhalb des Serverblocks vor der letzten schließenden geschweiften Klammer ein.
# Modul stub_status aktivieren
location /stub_status {
stub_status;
allow 127.0.0.1; # nur Anfragen von localhost erlauben
deny all; # alle anderen Hosts ablehnen
}
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Überprüfen Sie die Nginx-Konfiguration.
$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich
Starten Sie den Nginx-Server neu.
$ sudo systemctl restart nginx
Starten Sie den Netdata-Dienst neu.
$ sudo systemctl restart netdata
Sie sollten die Nginx-Verbindungsdetails in Ihrem Netdata-Dashboard sehen.

Überwachen Sie die Nginx-Protokolle
Netdata kann auch die Nginx-Zugriffsprotokolle überwachen. Um dies zu tun, wechseln Sie in das Netdata-Verzeichnis.
$ cd /etc/netdata
Führen Sie den folgenden Befehl aus, um eine Konfigurationsdatei zur Überwachung der Zugriffsprotokolle zu generieren.
$ sudo ./edit-config python.d/web_log.conf
Scrollen Sie zum Ende der Datei und suchen Sie den folgenden Abschnitt.
# -------------------------------------------
# nginx-Protokoll auf verschiedenen Distros
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
# gentoo
nginx_log2:
name: 'nginx_site'
path: '/var/log/nginx/localhost.access_log'
Ändern Sie den Pfad, um die jeweiligen Protokolldateien zu überwachen. Sie können so viele Abschnitte hinzufügen, um so viele Hosts und deren Zugriffsprotokolldateien zu überwachen. Unsere Konfigurationsdatei sieht wie folgt aus.
# -------------------------------------------
# nginx-Protokoll auf verschiedenen Distros
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
nginx_log2:
name: 'nginx_site1'
path: '/var/log/nginx/site1.access_log'
nginx_log3:
name: 'nginx_site2'
path: '/var/log/nginx/site2.access_log'
nginx_log4:
name: 'nginx_site3'
path: '/var/log/nginx/site3.access_log'
Speichern Sie die Datei und verlassen Sie den Editor.
Um auf die Protokolldateien zuzugreifen, benötigt Netdata Berechtigungen, um auf das Verzeichnis zuzugreifen. Standardmäßig hat die Systemgruppe adm Berechtigungen zum Zugriff auf die Protokolldateien. Um Netdata den Zugriff zu gewähren, müssen wir den Benutzer netdata zur Gruppe adm hinzufügen.
$ sudo usermod -aG adm netdata
Starten Sie Nginx und den Netdata-Dienst neu.
$ sudo systemctl restart nginx netdata
Laden Sie das Netdata-Dashboard neu, um Ihre Protokolldaten anzuzeigen.

Schritt 11 - MySQL/MariaDB-Überwachung konfigurieren
Wir werden MariaDB für unser Tutorial installieren. Die Schritte bleiben gleich, wenn Sie einen MySQL-Server verwenden.
Fügen Sie das Repository für MariaDB 10.6 hinzu.
$ sudo nano /etc/yum.repos.d/MariaDB.repo
Fügen Sie den folgenden Code ein.
# MariaDB 10.6 CentOS-Repositoryliste - erstellt am 2022-04-12 11:12 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://download.nus.edu.sg/mirror/mariadb/yum/10.6/centos8-amd64
module_hotfixes=1
gpgkey=https://download.nus.edu.sg/mirror/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Installieren Sie MariaDB.
$ sudo dnf install MariaDB-server
Aktivieren Sie den MariaDB-Server.
$ sudo systemctl enable mariadb
Starten Sie das Skript zur sicheren MySQL-Installation. Der Dateiname ist im Fall von MariaDB anders.
$ sudo mariadb-secure-installation
....
Geben Sie das aktuelle Passwort für root ein (drücken Sie Enter, um nichts einzugeben): (Drücken Sie Enter)
....
Wechseln Sie zur Unix-Socket-Authentifizierung [Y/n] Y (Geben Sie Y ein und drücken Sie Enter)
....
Möchten Sie das Root-Passwort ändern? [Y/n] Y (Geben Sie Y ein und drücken Sie Enter)
Neues Passwort:
Neues Passwort erneut eingeben:
Passwort erfolgreich aktualisiert!
....
Anonyme Benutzer entfernen? [Y/n] Y (Geben Sie Y ein und drücken Sie Enter)
....
Root-Login aus der Ferne verbieten? [Y/n] Y (Geben Sie Y ein und drücken Sie Enter)
....
Testdatenbank und Zugriff darauf entfernen? [Y/n] Y (Geben Sie Y ein und drücken Sie Enter)
....
Privilegientabellen jetzt neu laden? [Y/n] Y (Geben Sie Y ein und drücken Sie Enter)
....
Alles erledigt! Wenn Sie alle oben genannten Schritte abgeschlossen haben, sollte Ihre MariaDB-Installation jetzt sicher sein.
Danke, dass Sie MariaDB verwenden!
Öffnen Sie die Datei /etc/my.cnf.d/server.cnf zur Bearbeitung.
$ sudo nano /etc/my.cnf.d/server.cnf
Suchen Sie den Abschnitt [mariadb] in der Datei und fügen Sie die folgende Zeile wie unten gezeigt ein, um das Userstats-Plugin zu aktivieren. Diese Einstellung funktioniert nur bei MariaDB und nicht bei dem MySQL-Server.
[mariadb]
userstat = 1
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie den MariaDB-Server.
$ sudo systemctl start mariadb
Starten Sie den Netdata-Dienst neu.
$ sudo systemctl restart netdata
Das MariaDB/MySQL-Dashboard sollte im Netdata-Dashboard angezeigt werden.

Schritt 12 - PHP-FPM-Überwachung konfigurieren
Sie können eine oder mehrere PHP-FPM-Instanzen mit Netdata überwachen. Für unser Tutorial werden wir PHP 8.0 installieren und dann die Überwachung aktivieren.
Wir werden PHP mit dem Remi-Repository installieren. Wir haben bereits das EPEL-Repo in Schritt 3 installiert. Installieren Sie das Remi-Repository.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Überprüfen Sie die verfügbaren PHP-Streams.
$ dnf module list php -y
Last metadata expiration check: 0:00:12 ago on Fri 03 Dec 2021 09:39:32 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP-Skriptsprache
php 7.3 common [d], devel, minimal PHP-Skriptsprache
php 7.4 common [d], devel, minimal PHP-Skriptsprache
Remis Modular-Repository für Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP-Skriptsprache
php remi-7.3 common [d], devel, minimal PHP-Skriptsprache
php remi-7.4 common [d], devel, minimal PHP-Skriptsprache
php remi-8.0 common [d], devel, minimal PHP-Skriptsprache
php remi-8.1 common [d], devel, minimal PHP-Skriptsprache
Hinweis: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Die Standardversion ist 7.2. Aktivieren Sie Remis PHP 8.0-Repository.
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.0
Installieren Sie nun PHP und die von Firefly III benötigten Erweiterungen. Das php-Paket enthält mehrere Abhängigkeiten, die Firefly III benötigt, also stellen Sie sicher, dass Sie diese einbeziehen.
$ sudo dnf install php php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-intl php-bcmath php-gd php-ldap php-cli
Überprüfen Sie die Installation.
$ php --version
PHP 8.0.16 (cli) (built: Feb 15 2022 21:34:32) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.16, Copyright (c) Zend Technologies
with Zend OPcache v8.0.16, Copyright (c), by Zend Technologies
PHP konfigurieren
Öffnen Sie die Datei /etc/php-fpm.d/www.conf.
$ sudo nano /etc/php-fpm.d/www.conf
Wir müssen den Unix-Benutzer/die Gruppe der PHP-Prozesse auf nginx setzen. Suchen Sie die Zeilen user=www-data und group=www-data in der Datei und ändern Sie sie in nginx.
...
; Unix-Benutzer/-gruppe der Prozesse
; Hinweis: Der Benutzer ist obligatorisch. Wenn die Gruppe nicht festgelegt ist, wird die Gruppe des Standardbenutzers verwendet.
; wird verwendet.
; RPM: apache-Benutzer, der gewählt wurde, um Zugriff auf die gleichen Verzeichnisse wie httpd zu gewähren
user = nginx
; RPM: Halten Sie eine Gruppe, die im Protokollverzeichnis schreiben darf.
group = nginx
...
Scrollen Sie nach unten in der Datei, um die Option ;pm.status_path = /status zu finden. Kommentieren Sie die Zeile aus, indem Sie das Semikolon davor entfernen, wie unten gezeigt.
; Hinweis: Es gibt eine Echtzeit-FPM-Statusüberwachungsbeispiel-Webseite
; Es ist verfügbar in: @EXPANDED_DATADIR@/fpm/status.html
;
; Hinweis: Der Wert muss mit einem führenden Schrägstrich (/) beginnen. Der Wert kann
; alles sein, aber es ist möglicherweise keine gute Idee, die .php-Erweiterung zu verwenden, da dies
; mit einer echten PHP-Datei in Konflikt stehen kann.
; Standardwert: nicht gesetzt
pm.status_path = /status
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Aktivieren und starten Sie den PHP-Dienst.
$ sudo systemctl enable php-fpm --now
PHP-Einstellungen zu Nginx hinzufügen
Öffnen Sie die Standardkonfigurationsdatei von Nginx /etc/nginx/conf.d/default.conf zur Bearbeitung.
$ sudo nano /etc/nginx/conf.d/default.conf
Geben Sie den folgenden Code innerhalb des Serverblocks vor der letzten schließenden geschweiften Klammer ein.
# Definieren Sie die PHP-FPM-Überwachung
location ~ ^/(status|ping)$ {
allow 127.0.0.1;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/.sock; # Hängt von der PHP-Version und der OS-Distribution ab
}
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Überprüfen Sie die Nginx-Konfiguration.
$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich
Starten Sie den Nginx-Server.
$ sudo systemctl restart nginx
Starten Sie den Netdata-Dienst.
$ sudo systemctl restart netdata
Laden Sie das Netdata-Dashboard neu, und Sie sollten die PHP-FPM-Statistiken sehen.

Schritt 13 - Docker-Engine und Containerüberwachung konfigurieren
Netdata kann sowohl die Docker-Engine als auch Docker-Container überwachen. Es kann auch Anwendungen überwachen, die in diesen Containern ausgeführt werden, aber wir werden dies in diesem Tutorial nicht behandeln.
Lassen Sie uns zuerst Docker installieren.
$ sudo dnf install yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Aktivieren und starten Sie den Docker-Dienst.
$ sudo systemctl enable docker --now
Um die Docker-Engine zu überwachen, müssen Sie die Metrikfunktion von Docker aktivieren.
Erstellen und öffnen Sie die Datei /etc/docker/daemon.json zur Bearbeitung.
$ sudo nano /etc/docker/daemon.json
Fügen Sie den folgenden Code ein.
{
"metrics-addr" : "127.0.0.1:9323",
"experimental" : true
}
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie die Netdata- und Docker-Dienste neu.
$ sudo systemctl restart docker netdata
Laden Sie das Netdata-Dashboard erneut, und Sie können die Docker-Statistiken sehen.

Sie werden einen weiteren Eintrag mit dem Namen Prometheus Metrics in Ihrem Dashboard sehen, da die Metrikoption für das Prometheus-Dashboard erstellt wurde.

Der nächste Schritt besteht darin, den Docker-Container zu überwachen. Netdata verwendet Kontrollgruppen, die als cgroups bezeichnet werden, um Docker-Container zu überwachen. Kontrollgruppen sind eine Linux-Funktion, die die Ressourcennutzung einer Sammlung von Prozessen, in diesem Fall Containern, einschränkt und verfolgt. Wenn Sie Docker-Container haben, die beim Installieren von Netdata ausgeführt werden, werden sie automatisch verfolgt. Wenn Sie jedoch einen Container nach der Installation von Netdata ausführen, müssen Sie ihn neu starten.
Führen Sie einen Testcontainer aus.
$ docker container run -d nginx
Überprüfen Sie den Status des Containers.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
938b2cf30927 nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 80/tcp pensive_lovelace
Der Name des Containers ist tender_murdock, wie gezeigt. Da der Container nach der Installation von Netdata gestartet wurde, starten Sie den Dienst neu.
$ sudo systemctl restart netdata
Laden Sie das Dashboard, und Sie sollten die Containerstatistiken sehen können.

Fazit
Dies schließt unser Tutorial zur Installation und Verwendung des Netdata-Überwachungssystems ein, um verschiedene Apps wie Nginx, MySQL, PHP-FPM und Docker auf einem Rocky Linux-Server zu überwachen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.