Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Es gibt wenig Software, von der ich sofort überzeugt bin. Netdata gehört aber definitiv dazu: Das 2013 gestartete Projekt hat sich auf die Fahnen geschrieben, eine möglichst einfache Lösung für Realtime-Monitoring von Linux-Servern anzubieten. Lösungen zur Echtzeitüberwachung von Servern gibt es zu genüge: Mal mit hübschem Webinterface, mal mit weniger benutzerfreundlicher Oberfläche. Zu Netdata kann ich sagen: Hier wurde aus meiner Sicht wirklich alles richtig gemacht. Warum? Darum:

  • Einfache, gut strukturierte Weboberfläche
  • Keine Konfiguration notwendig: Installieren und los geht’s!
  • Nur wenige Software-Abhängigkeiten
  • In C entwickelt: Kein Nodejs oder Java!

Das Tool tut, was es soll – nicht mehr und nicht weniger. Netdata öffnet einen Port 19999 auf der lokalen Netzwerkschnittstelle, sodass es nach außen hin abgeschottet ist, und nur intern angesprochen werden kann. Über einen geeigneten SSH- oder Webserver-Proxy kann man die Weboberfläche komfortabel zugänglich machen. Und so geht’s:

Installation unter Ubuntu Server

apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make git autoconf autogen automake pkg-config
git clone https://github.com/firehol/netdata.git --depth=1
cd netdata
./netdata-installer.sh

Fertig! Netdata wird direkt gestartet und kann via localhost:19999 vom Server aus erreicht werden.

Zugriff von außen

Wenn der Server keine GUI + Webbrowser hat, kann man auch von außen auf den Server-internen Port 19999 zugreifen, indem man den Port zu sich nach Hause auf den Rechner tunnelt. (Zuhause ausführen:)

ssh -L 19999:localhost:19999 -N root@meinserver.tld

Auf dem Desktop-Rechner kann dann im Webbrowser „localhost:19999“ geöffnet werden und das Netdata-Webinterface erscheint. Wenn eine zweite, parallele Verbindung zu einer anderen Netdata-Instanz auf einem anderen Server aufgebaut werden soll, wählt man für die zweite Verbindung einen anderen lokalen Port:

ssh -L 19998:localhost:19999 -N root@meinserver2.tld

(Das Interface für Server 2 ist dann via 19998 verfügbar)

Wer es gerne komfortabler hat und nicht überall einen SSH-Tunnel aufbauen will oder kann, kann den internen Port auch über einen Webserver / Webproxy nach außen hin verfügbar machen. Am besten mit HTTP Base Auth. Wie das geht, kann man z.B. hier für Apache nachlesen: Apache Webproxy

Eine Proxy-Konfiguration für Nginx könnte z.B. so aussehen (ohne Auth!)

server {
    listen 80;
    listen [::]:80;
    server_name monitor.meinserver.tld;
   
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:19999;
        proxy_redirect off;
    }
}

Mehrere Server gleichzeitig abfragen

Über die ID kann die Serverliste Geräteübergreifend synchron gehalten werden

Für den Fall, dass jemand mehrere Server mit Netdata ausgerüstet hat, und schnell zwischen den individuellen, Server-spezifischen Ansichten wechseln will, haben sich die Netdata-Entwickler etwas besonderes einfallen lassen: Netdata merkt sich, zu welchen Instanzenman sich schon verbunden hat, und zeigt diese in einem Menü zur Auswahl an. Die eigene „Server-Sammlung“ im Menü muss übrigens nicht auf jedem Gerät oder jedem Browser eigens eingerichtet werden: Es genügt, sich auf einem fremden PC zu einer der Instanzen zu verbinden, und dann den persönlichen Identifizierungscode anzugeben. Die Serverauswahl wird dann automatisch importiert.

Durch dieses System kann auf einen dentralen Monitoring-Server verzichtet werden. Der Browser verbindet sich einfach einzeln zu allen Nodes.

Fazit

„Alles richtig gemacht!“ kann ich sagen. Netdata ist ein großartiges Stück Software – vor allem die unkomplizierte Einrichtung und der Verzicht auf komplizierte Abhängigkeitsgeflechte (Grüße an Nodejs!) geben bei mir Pluspunkte. Das Tool bietet einen mehr als umfassenden Einblick auf den aktuellen Serverzustand und kann jedem empfohlen werden, der nach Echtzeitmonitoring-Software für seinen Linux-Server sucht.


Post published on 1. Juli 2016 | Last updated on 4. Juli 2016
Tags:       

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

8 thoughts on “Einfaches Echtzeit-Monitoring mit Netdata

  • Hab das vor ner Weile mal aufm Laptop ausprobiert, und fand es dann doch etwas sehr ressourcenhungrig. Ich erwarte von einem Systemmonitor, das seine (CPU und sonstige) Last im rauschen untergeht, das war auch auf dem i7 nicht der Fall.

  • Hallo,
    das ist wirklich ein gutes Tool.
    Läuft bestens auf dem vServer.

  • Hey,
    danke für den Tipp. Macht einen guten Eindruck! Werde ich auf jeden Fall mal ein bisschen laufen lassen bei mir :)

  • Bei mir ist übrigens der port standardmässig nach außen geöffnet. Wer das nicht will, sollte etwas wie „bind socket to IP = 127.0.0.1“ in der global section stehen haben.

  • Nice, danke für den Tipp! Deutlich simpler zu installieren als Prometheus, vor allem bei meinen zwei kleinen Servern! Klar is es nicht so mächtig aber durchaus ausreichend für meine Zwecke :)

  • Moin, erstmal vielen Dank für das Tool! Es ist echt genial. Leider stelle ich mich zu blöd an, den Pfad für den Webcontent zu finden. Wo kann ich den finden? Ich wollte eine .htaccess/.htpasswd setzen, aber …/netdata/web/ scheint es nicht zu sein. -_-*

  • Danke für den Tipp! Bin durch Zufall hier gelandet und konnte direkt ein geiles Tool mitnehmen. Weiter so! :-P

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.