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.

Netdata HTTP-Authentifizierung

Sie erhalten das folgende Dashboard.

Netdata Dashboard beim ersten Mal

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.

Netdata Wiedergabe/Pause-Schaltfläche

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.

Netdata Zeitzonenänderung

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.

Netdata-Konfigurationsdatei im Browser

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:

  1. interne Plugins sind in C geschrieben und laufen als Threads innerhalb des netdata Daemons.
  2. externe Plugins sind in verschiedenen Sprachen geschrieben, einschließlich Python, Go usw. und werden als langlaufende unabhängige Prozesse vom netdata Daemon gestartet. Sie kommunizieren mit dem Netdata-Daemon über pipes.

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:

  1. Konfigurieren Sie Netdata so, dass mehr RAM und Speicherplatz verwendet werden
  2. 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.

Slack API-Apps

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

Slack App erstellen Popup

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.

Slack App-Name Popup

Ö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.

Slack Apps Eingehende WebHooks

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.

Netdata Slack-App zum Arbeitsbereich hinzufügen

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

Slack 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.

Netdata Slack-Testbenachrichtigungen

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

Netdata-Testbenachrichtigungen-E-Mail

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.

Slack CPU-Nutzungsbenachrichtigungen

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.

Netdata Nginx-Verbindungsdetails

Ü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.

Netdata Zugriffsprotokoll-Dashboard

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.

NetData MySQL/MariaDB-Dashboard

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.

NetData PHP-FPM-Statistiken-Dashboard

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.

NetData Docker-Container-Statistiken

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

NetData Docker-Container-Prometheus-Statistiken

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.

NetData Docker-Individuelle Containerstatistiken

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.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.