Real-Time-Performance-Überwachung mit Netdata

0-7-rpm-171195

Netdata (https://www.netdata.cloud) wurde ursprünglich als reines Echtzeit-Performance-Monitoring-Tool für Linux-Systeme entwickelt. Mittlerweile wurden jedoch auch Funktionen zur Alarmierung und Schnittstellen für Zeitreihendatenbanken wie Graphite oder InfluxDB implementiert. Netdata ist eine leichtgewichtige und quelloffene Software, die sich einfach installieren und konfigurieren lässt

Zur Installation auf einem Linux-System werden nur zwei Befehle benötigt:

$ wget https://my-netdata.io/kickstart.sh 
$ bash kickstart.sh  

Netdata hat einen integrierten Webserver, der standardmäßig auf Port 19999 eine Weboberfläche bereitstellt. Diese kann mit einem Browser geöffnet werden und visualisiert die gemessenen Metriken. Die meisten Metriken werden bei der Installation automatisch erkannt und eingerichtet, sodass es direkt einsatzbereit ist. Falls weitere Metriken erforderlich sind, kann Netdata durch Plugins erweitert werden. Dazu gibt es viele offizielle und inoffizielle Erweiterungen. Wenn es noch kein passendes Plugin gibt, können neue in Python, Node.js, C oder BASH entwickelt werden.

Standardmäßig werden die aufgezeichneten Metriken in einem Ringpuffer gespeichert der komplett im Arbeitsspeicher liegt. Das hat den Vorteil, dass keine Schreibzugriffe auf die Festplatte durchgeführt werden müssen. Der Ringpuffer hat eine feste Größe, sodass nur eine feste Menge an Daten gespeichert werden kann. Standardmäßig werden nur Daten der vergangenen Stunde gespeichert und danach wieder überschrieben. Je größer die Zeitspanne ist und je mehr Metriken aufgezeichnet werden sollen, desto größer wird der benötigte RAM, da diese Daten komplett im RAM gehalten werden müssen. Es gibt jedoch auch andere Memory Modes: komplett ohne speichern (dann kann Netdata gesammelte Metriken nur an andere Netdata-Instanzen streamen) oder mit einer Datenbank. Hierbei werden die gesammelten Daten normal in einer Datenbank gespeichert.

Nach einer Registrierung bei https://www.netdata.cloud ermöglicht Netdata, mehrere Systeme gleichzeitig zu überwachen und überträgt bei einem Wechsel zu einem anderen System die vorherige Ansicht des Dashboards auf das neue.


Vorteile:

  • Schnell, leichtgewichtig, kostenlos
  • Übersichtliche Darstellung im Browser
  • Verfügbar für viele Linux-Distributionen, Docker und IoT
  • Einfache Installation und Einrichtung
  • Viele verschiedene Metriken
  • Zeitliche Auflösung: 1 Event pro Sekunde
  • Erklärungen zu den Metriken
  • Schnittstellen zu anderen Tools und Kommunikationsdiensten (Prometheus, E-Mail, Telegram, …)
  • Alarm bei Überschreitung von Grenzwerten
  • Viele offizielle und inoffizielle Plugins (z.B. für Webserver, Datenbanken, …)

Ein großer Nachteil von Netdata ist die fehlende Authentifizierung. Daher darf der Webserver nicht frei aus dem Internet zugänglich sein, da die Webseite sonst von jedermann zugänglich ist! Dies kann umgangen werden, indem in die Konfigurationsdatei /etc/netdata/netdata.conf folgende Zeile eingefügt wird:

bind to = 127.0.0.1:19999  

Damit kann nur noch localhost auf die Webseite zugreifen. Um von außerhalb darauf zuzugreifen, kann man einen SSH Tunnel aufbauen:

ssh -N -L 19999:localhost:19999 <IP oder DNS des Netdata Servers>  

Aber: Bei einem Zugriff werden nur Metriken und Diagramme an das Dashboard übermittelt, keine Rohdaten. Zusätzlich ist das Dashboard nur lesbar, d.h. man kann nur über die Konfigurationsdateien das Dashboard ändern. Im schlimmsten Fall kann ein Angreifer also nur lesend auf die ausgewerteten Daten zugreifen.

Fazit

Netdata ist ein leichtes und einfach einzurichtendes Monitoring-Tool mit vielen Stärken. Daher wurde es auch den offiziellen Paketquellen von Ubuntu 18.04 und Debian Sid hinzugefügt.

By accepting you will be accessing a service provided by a third-party external to https://blog.ordix.de/