So richten Sie die Echtzeit-Leistungsüberwachung mit Netdata unter Ubuntu 16.04 ein

Einführung

Netdata bietet eine genaue Leistungsüberwachung über erweiterbare Web-Dashboards, die die Prozesse und Dienste auf Ihren Linux-Systemen visualisieren. Es überwacht Metriken zu CPU, Arbeitsspeicher, Festplatten, Netzwerken, Prozessen und mehr.

Netdata benötigt nach der Installation keine zusätzliche Konfiguration, bietet jedoch umfangreiche Anpassungsmöglichkeiten. Die Effizienz und Geschwindigkeit der Anwendung soll mit nativen Konsolenverwaltungstools wie "+ vmstat ", " iostat " und " htop +" vergleichbar sein.

Die Schritte in diesem Tutorial decken alles ab, was Sie zum erfolgreichen Einrichten eines Ubuntu 16.04-Servers mit Netdata über den integrierten Webserver oder optional über Nginx benötigen.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

Schritt 1 - Installieren von Netdata

Stellen Sie vor der Installation sicher, dass der Systempaketindex auf dem neuesten Stand ist.

sudo apt-get update

Installieren Sie als Nächstes die Abhängigkeiten von Netdata, zu denen der Compiler "+ gcc +" (ein C-Compiler) gehört. org / wiki / Globally_unique_identifier [GUID] -Verwaltung und Komprimierungsbibliotheken für den internen Webserver von Netdata.

sudo apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make autoconf autoconf-archive autogen automake pkg-config curl

Die nächsten Pakete sind optional, werden jedoch von Netdata empfohlen und enthalten Python, einige Python-Pakete und Node.JS. Die stabile Version von Node.js, die mit dem Systempaket-Manager geliefert wird, ist für Netdata in Ordnung Anforderungen. Installieren Sie diese als nächstes.

sudo apt-get install python python-yaml python-mysqldb python-psycopg2 nodejs lm-sensors netcat

Um Netdata selbst zu installieren, müssen wir das GitHub-Repository des Projekts verwenden. Klonen Sie das Netdata-Repository in Ihr Ausgangsverzeichnis.

git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata

Wechseln Sie in das neu geklonte Verzeichnis.

cd ~/netdata

Erstellen und installieren Sie nun die Anwendung mit dem Shell-Skript + netdata-installer.sh + in diesem Verzeichnis. Stellen Sie sicher, dass Sie hier "+ sudo +" anhängen, da sonst die Art und Weise, in der Netdata Systemdaten sammelt (über Datensammler), nicht richtig funktioniert.

sudo ./netdata-installer.sh

Die Ausgabe, die Sie zuerst sehen, enthält Informationen darüber, wo Netdata alle seine Komponenten speichert. Sie können diese lesen, um sich ein wenig mit der Verteilung des Programms auf das Dateisystem nach der Installation vertraut zu machen.

Installer Output. . .
 It will be installed at these locations:

  - the daemon    at /usr/sbin/netdata
  - config files  at /etc/netdata
  - web files     at /usr/share/netdata
  - plugins       at /usr/libexec/netdata
  - cache files   at /var/cache/netdata
  - db files      at /var/lib/netdata
  - log files     at /var/log/netdata
  - pid file      at /var/run
. . .

Drücken Sie "+ ENTER", um mit der Installation fortzufahren. Nach einem Moment wird am Ende der Ausgabekette die folgende Meldung angezeigt:

Installer Output. . .
 ^
 |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
 |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'
 +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

 enjoy real-time performance and health monitoring...

Netdata ist jetzt installiert und wird erfolgreich ausgeführt. Es wird auch beim Neustart des Servers automatisch ausgeführt.

Wenn Sie UFW aktiviert haben, wie im Tutorial Initial Server Setup for Ubuntu 16.04 beschrieben müssen den Port "+ 19999 +" für den internen Webserver von Netdata öffnen.

sudo ufw allow 19999/tcp

Zu diesem Zeitpunkt können Sie das Standard-Dashboard anzeigen, indem Sie "+ http: //: 19999 / +" in Ihrem bevorzugten Browser aufrufen. Sie erhalten einen Überblick über die Live-Metriken des Systems. Dies ist eine gute Überprüfung, ob alles bisher funktioniert. Bevor wir uns jedoch mit der grafischen Benutzeroberfläche befassen, passen wir Netdata ein wenig an.

Schritt 2 - Konfigurieren der Speichernutzung von Netdata

Sie können die aktuelle Konfiguration von Netdata in Ihrem Browser unter "+ http: //: 19999 / netdata.conf +" anzeigen.

Hier sehen Sie, dass alle (oder die meisten) konfigurierbaren Optionen auskommentiert sind (d. H. vorangestellt mit einem + # +). Dies liegt daran, dass die Konfiguration von Netdata mithilfe einer Reihe von angenommenen Standardeinstellungen funktioniert. Alle deaktivierten Einstellungen verwenden den Standardwert von Netdata. Wenn eine Einstellung nicht kommentiert wird, überschreibt der angegebene Wert die Standardeinstellung. Auf diese Weise bleibt die Konfigurationsdatei nur auf das beschränkt, was Sie geändert haben.

Zurück auf Ihrem Server ist die Konfigurationsdatei selbst "+ / etc / netdata / netdata.conf ". Die Option, die wir in diesem Tutorial anpassen werden, ist der Parameter " history +". Dies steuert die maximale Größe der von Netdata verwendeten Speicherdatenbank.

Hier müssen Sie entscheiden, wie viel RAM Sie für Netdata verwenden möchten oder wie lange Sie die aufgezeichneten Diagrammdaten aufbewahren möchten, bevor sie verloren gehen:

  • 3600 Sekunden (1 Stunde Speicherung der Diagrammdaten) belegen 15 MB RAM

  • 7200 Sekunden (2 Stunden Speicherung der Diagrammdaten) belegen 30 MB RAM

  • 14400 Sekunden (4 Stunden Speicherung der Diagrammdaten) belegen 60 MB RAM

  • 28800 Sekunden (8 Stunden Speicherung der Diagrammdaten) belegen 120 MB RAM

  • 43200 Sekunden (12 Stunden Speicherung der Diagrammdaten) belegen 180 MB RAM

  • 86400 Sekunden (24 Stunden Speicherung der Diagrammdaten) belegen 360 MB RAM

Beachten Sie, dass die obigen Schätzungen auf der Anzahl der Diagramme basieren, die vom Aktien-Dashboard verwendet werden. Das Entfernen oder Hinzufügen von benutzerdefinierten Diagrammen in der Zukunft wirkt sich auf diese Schätzungen aus.

Öffnen Sie die Hauptkonfigurationsdatei von Netdata mit "+ nano +" oder Ihrem bevorzugten Texteditor.

sudo nano /etc/netdata/netdata.conf

Suchen Sie die Option "+ history " im Abschnitt " [global] +".

/etc/netdata/netdata.conf

. . .
[global]
       # glibc malloc arena max for plugins = 1
. . .
       # hostname = test-netdata

       # update every = 1
. . .

Ersetzen Sie den Wert "+ 3600 " durch den Wert, den Sie zuvor festgelegt haben. In diesem Fall verwenden wir " 14400 ", was uns eine 4-stündige Datenspeicherung ermöglicht. Stellen Sie sicher, dass Sie die Zeile auch aus dem Kommentar entfernen, indem Sie das Symbol " # +" löschen, damit diese Option von Netdata nicht mehr ignoriert wird.

/etc/netdata/netdata.conf

. . .
[global]
       # glibc malloc arena max for plugins = 1
. . .
       # hostname = test-netdata

       # update every = 1
. . .

Speichern und schließen Sie die Datei, nachdem Sie diese Änderung vorgenommen haben.

Während diese Änderung wahrscheinlich die Menge an RAM erhöht, die Netdata verwenden wird, sollte sie durch die nächste Änderung, die wir im nächsten Schritt implementieren, erheblich reduziert werden.

Schritt 3 - Aktivieren der Kernel-Zusammenführung auf derselben Seite

Obwohl Netdata sofort ausgeführt wird und sofort einsatzbereit ist, können wir weitere Änderungen an der Art und Weise vornehmen, in der Netdata Systemressourcen verwendet, um die Leistung zu beschleunigen und zu optimieren. Wir beginnen mit der Aktivierung von Kernel Same-Page Merging, kurz KSM. Die Netdata-Entwickler schätzen, dass dies die Speichernutzung von Netdata um 40-60% reduziert.

Nach der Aktivierung durchsucht der KSM-Dämon regelmäßig den Speicher nach Seiten mit identischem Inhalt, die durch eine einzelne schreibgeschützte Seite ersetzt werden können. In diesem Zusammenhang können identische Speicherseiten von verschiedenen auf dem System ausgeführten Prozessen oder Programmen gemeinsam genutzt werden. Dies reduziert die Erzeugung unnötiger doppelter Speicherinhalte.

Um diesen Aspekt des Linux-Systemkerns dauerhaft zu aktivieren, öffnen Sie die Datei "+ / etc / rc.local" mit einem Texteditor.

sudo nano /etc/rc.local

Diese "+ / etc / rc.local" -Datei oder Ausführungssteuerungsdatei wird ausgeführt, nachdem alle anderen normalen Linux-Systemdienste und -Prozesse gestartet wurden. Es ist nützlich, um benutzerdefinierte Services anzugeben - oder in unserem Fall, um KSM zur Laufzeit des Servers zu aktivieren.

Fügen Sie die beiden unten hervorgehobenen Befehle vor der letzten Zeile + exit 0 + am Ende der Datei hinzu, wie hier gezeigt:

/etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.




exit 0

Der erste Befehl fügt eine 1 in die KSM-Kerneldatei ein, mit der die Funktion aktiviert wird. Mit dem zweiten Befehl wird der KSM-Dämon angewiesen, einmal pro Sekunde ausgeführt zu werden und 100 Seiten auf Deduplizierung zu prüfen.

Nachdem Sie die Datei gespeichert und geschlossen haben, wird KSM nun beim nächsten Neustart des Servers aktiviert und bleibt auch bei zukünftigen Neustarts erhalten. Um es für den Rest der aktuellen Betriebszeit dieses Servers zu aktivieren, müssen Sie die beiden Befehle, die Sie zu "+ rc.local +" hinzugefügt haben, manuell in der Befehlszeile ausführen.

Initiieren Sie zunächst eine neue Shell-Sitzung und geben Sie sie als Root-Benutzer des Servers ein, indem Sie das Flag "+ -s " mit " sudo " verwenden. Dies ist erforderlich, da die beiden Befehle aus früheren Versionen die Ausgabeumleitung (über den Operator "> +") verwenden und von einer Root-Shell ausgeführt werden müssen, um erfolgreich zu sein.

sudo -s

Geben Sie nun die beiden Befehle von vorher ein:

echo 1 > /sys/kernel/mm/ksm/run
echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs

Verlassen Sie dann die Root-Shell und kehren Sie zu Ihrer normalen Shell-Sitzung zurück.

exit

Um alle in diesem und dem vorherigen Schritt vorgenommenen Änderungen zu übernehmen, müssen wir Netdata neu starten.

sudo systemctl restart netdata

Sie können überprüfen, ob KSM jetzt aktiviert ist, indem Sie im Netdata-Dashboard nach dem neu hinzugefügten aktiven KSM-Diagramm suchen. Diese finden Sie im Menübaum rechts unter * Memory> Memory Deduper *.

Jetzt wissen wir, dass das Dashboard und KSM funktionieren. Es lohnt sich, über einen Webserver wie Nginx anstelle des integrierten Webservers Zugriff auf das Dashboard zu gewähren. Dies ist nicht unbedingt erforderlich, wird jedoch empfohlen. Befolgen Sie daher den nächsten Schritt, um es einzurichten.

Schritt 4 - Hosting des Dashboards über Nginx (optional)

Das Hosten von Netdata über Nginx erleichtert den sicheren Zugriff auf das Dashboard und ermöglicht es Ihnen, in Zukunft gegebenenfalls auf die Netdata-Dashboards anderer Server zu verweisen. Sie können dem vorausgesetztes Tutorial für Nginx folgen, um es jetzt zu installieren, sofern Sie dies noch nicht getan haben .

Sie müssen auch das Paket "+ apache2-utils " installieren. Dieses Paket enthält das Programm " htpasswd +", das wir später benötigen, um den Zugriff auf die Dashboard-Seite zu sichern.

sudo apt-get install apache2-utils

Erstellen Sie als Nächstes eine neue Nginx-Host-Konfigurationsdatei. Beachten Sie, dass wir hier eine Datei im Verzeichnis "+ / conf.d " verwenden, aber Sie können " / sites-available " und " / sites-enabled +" verwenden, wenn Sie Nginx für andere Zwecke verwenden Netzdaten. Weitere Informationen zu Nginx-Dateien und -Verzeichnissen finden Sie unter https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04#step-5-get-familiar-with- wichtige-nginx-dateien-und-verzeichnisse [das setup-tutorial].

sudo nano /etc/nginx/conf.d/default.conf

Diese Konfigurationsdatei weist Nginx an, eingehende Anforderungen für die Dashboard-Seite zu proxen. Wir werden auch eine einfache Authentifizierungsaufforderung hinzufügen, damit nur Personen mit dem richtigen Benutzernamen und Passwort darauf zugreifen können.

Unten finden Sie die gesamte Konfigurationsdatei zum Kopieren und Einfügen. Ändern Sie die beiden rot hervorgehobenen Elemente für die Anweisungen "+ listen " und " server_name " in die IP-Adresse und den zugewiesenen Domainnamen Ihres Servers. Achten Sie darauf, das abschließende "; " am Ende jedes Eintrags einzufügen. Wenn Sie keinen Domainnamen haben, können Sie die Direktive " server_name " als " example.com +" belassen.

/etc/nginx/conf.d/default.conf

upstream netdata-backend {
   server 127.0.0.1:19999;
   keepalive 64;
}

server {
   listen :80;
   server_name ;

   auth_basic "Authentication Required";
   auth_basic_user_file netdata-access;

   location / {
       proxy_set_header X-Forwarded-Host $host;
       proxy_set_header X-Forwarded-Server $host;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_pass http://netdata-backend;
       proxy_http_version 1.1;
       proxy_pass_request_headers on;
       proxy_set_header Connection "keep-alive";
       proxy_store off;
   }
}

Sobald Sie sicher sind, dass Ihre eigene Datei mit diesem Codeblock übereinstimmt, können Sie sie speichern und beenden, um zur Eingabeaufforderung zurückzukehren.

Lassen Sie uns diese Datei erklären, damit Sie verstehen, was sie tut. Dies ist der erste Abschnitt:

/etc/nginx/conf.d/default.conf

upstream netdata-backend {
   server 127.0.0.1:19999;
   keepalive 64;
}

Dieses vorgelagerte Modul mit dem Namen "+ netdata-backend " zielt auf den integrierten Netdata-Webserver ab, indem die Loopback-Adresse des Servers " 127.0.0.1 " und der Netdata-Port " 19999 " verwendet werden. Eine " keepalive +" - Direktive legt die maximale Anzahl von Upstream-Leerlaufverbindungen fest, die zu einem bestimmten Zeitpunkt geöffnet bleiben können (für jeden Nginx-Worker-Prozess). Diese vorgelagerte Moduldefinition wird später von der Direktive "proxy_pass" benötigt.

Direkt danach befindet sich der Hauptblock "+ server +".

/etc/nginx/conf.d/default.conf

server {
   listen :80;
   server_name ;

   auth_basic "";
   auth_basic_user_file netdata-access;

Die ersten beiden Zeilen im Block definieren die externe IP-Adresse, auf die Nginx + lauschen + soll, wenn Clients versuchen, eine Verbindung herzustellen. Die Anweisung + Servername + weist Nginx an, diesen Serverblock auszuführen, wenn ein Client den angegebenen Domänennamen verwendet.

In den letzten beiden Zeilen dieses Snippets werden der einfache HTTP-Benutzername und das Kennwort für die Authentifizierung festgelegt. Dies geschieht mithilfe des Moduls "+ auth_basic ", um eine Aufforderung zur Eingabe von Benutzernamen und Kennwort anzuzeigen. Sie können die Nachricht für die Eingabeaufforderung anpassen. Hier ist "Authentifizierung erforderlich" eingestellt. ` auth_basic_user_file +` bezeichnet einen Dateinamen und einen Speicherort zum Speichern der Anmeldeinformationen der Authentifizierungsaufforderung, die später in diesem Schritt erstellt werden.

Der letzte "+ location n" -Block, der im "+ server" -Block verschachtelt ist, übernimmt das Proxying und die Weiterleitung eingehender Anforderungen an Nginx.

/etc/nginx/conf.d/default.conf

   location / {
       proxy_set_header X-Forwarded-Host $host;
       proxy_set_header X-Forwarded-Server $host;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_pass http://netdata-backend;
       proxy_http_version 1.1;
       proxy_pass_request_headers on;
       proxy_set_header Connection "keep-alive";
       proxy_store off;
   }
}

Zusammenfassend lässt sich sagen, dass dieser Code Clientanforderungen an den Netdata-Webserver und wiederum an das Dashboard weiterleitet. Die Direktivenzeile "+ proxy_pass " verweist auf das " upstream " - Modul am Anfang der Datei und muss mit dem Namen " netdata-backend +" darauf verweisen.

Wenn Sie dies noch nicht getan haben, können Sie diese Konfigurationsdatei speichern und schließen. Hier hilft uns das Programm "+ htpasswd " aus dem Paket " apache2-utils +", die Benutzeranmeldeinformationen für die Anmeldeaufforderung des Dashboards zu erstellen.

Zunächst erstellen wir einen Benutzernamen und ein Passwort. Führen Sie den folgenden Befehl aus und ersetzen Sie * sammy * durch den Benutzernamen, den Sie in Netdata verwenden möchten. Geben Sie das gewünschte Passwort ein, wenn Sie dazu aufgefordert werden.

sudo htpasswd -c /etc/nginx/netdata-access

Dadurch wird eine Datei unter "+ / etc / nginx / netdata-access +" erstellt, die den von Ihnen angegebenen Benutzernamen und das Kennwort enthält. Das generierte Kennwort wird in der Datei verschlüsselt, sodass es nicht als einfacher Text angezeigt werden kann.

Starten Sie Nginx neu, um die neu hinzugefügte Konfiguration zu aktivieren.

sudo systemctl restart nginx

Um die Nginx-Konfiguration zum ersten Mal zu testen, besuchen Sie "+ http: // +" in Ihrem bevorzugten Webbrowser. Es wird eine Authentifizierungsaufforderung angezeigt. Geben Sie den Benutzernamen und das Passwort ein, die Sie zuvor in diesem Schritt eingegeben haben, um auf das Dashboard zuzugreifen, das wir in Schritt 5 untersuchen werden.

Schritt 5 - Das Dashboard erkunden

Wenn Sie den optionalen Schritt 4 nicht befolgt haben, rufen Sie jetzt in Ihrem bevorzugten Browser "+ http: //: 19999 / +" auf, um auf das Dashboard zuzugreifen.

Sie sehen das Dashboard und einen Überblick über die Live-Metriken des Systems. Die HUD-Stilanzeigen oben auf der Seite ändern sich, wenn Sie in den nachfolgenden Diagrammen mit der Maus über den jeweiligen Zeitraum fahren.

Die einzelnen Grafiken und Diagramme in diesem Übersichtsabschnitt enthalten detaillierte Informationen zu den einzelnen Systemaspekten, von der CPU über den Arbeitsspeicher bis hin zum Netzwerkverkehr und mehr.

Diagramme sind interaktiv und können mit der Maustaste nach links oder rechts gezogen werden, um zwischen den verschiedenen Zeitintervallen zu wechseln.

Wenn Sie die Taste "+ UMSCHALTTASTE" gedrückt halten und mit dem Mausrad in einem Diagramm nach innen oder außen scrollen, werden die Zeitmarken verengt oder verbreitert. Doppelklicken Sie auf ein Diagramm, um es auf die Standarddarstellung und -ansicht zurückzusetzen.

Am schnellsten navigieren Sie im Dashboard über die Menüstruktur rechts auf der Seite. Dies ändert den Fokus und die Farbe abhängig davon, welchen Abschnitt der Seite Sie gerade anzeigen.

Durch Scrollen auf der Seite oder Verwenden des Menübaums erhalten Sie Zugriff auf noch detailliertere Diagramme. Diese sind sehr detailliert und werden auf die gleiche Weise gesteuert wie die Grafiken im ersten Übersichtsabschnitt.

Es gibt viele dieser zusätzlichen statistikspezifischen Diagramme, die über Netdata verfügbar sind.

Ein wichtiger Teil der Benutzeroberfläche ist die Aktualisierungsseite. Netdata erhält regelmäßig Updates und es ist einfach, Ihre Installation auf dem neuesten Stand zu halten. Das Dashboard enthält oben eine Schaltfläche * Aktualisieren *, mit der Sie überprüfen können, ob eine neue Version zum Herunterladen verfügbar ist.

Durch Klicken auf diese Schaltfläche wird ein neues Menü mit weiteren Details geöffnet. Klicken Sie auf die Schaltfläche "Jetzt prüfen", um manuell nach Updates zu suchen.

Wenn ein Update verfügbar ist, müssen Sie nur das mitgelieferte Update-Skript aus dem Netdata Git-Repository ausführen, das wir in Schritt 1 in das Ausgangsverzeichnis des Linux-Benutzers geklont haben. Das heißt, wenn ein Update verfügbar ist, führen Sie einfach "+ sudo ~ / netdata / netdata-updater.sh +" über die Befehlszeile aus.

Fazit

Weitere Informationen zum Netdata-Projekt und zum weiteren Ausbau der hier eingerichteten Funktionen finden Sie unter Netdata GitHub project. Informationen zur Netdata-Registrierung, zum Einstellen von Alarmen und zum Installieren von benutzerdefinierten Diagrammen / Modulen finden Sie im Netdata wiki, in dem auch Themen wie das Generieren von HTML-Ausweisen oder das Behandeln von Netdata-Protokolldateien behandelt werden .

Related