Um sich als Admin einen besseren Überblick zu verschaffen, wie es um Komponenten und Dienste in der IT-Landschaft bestellt ist, müssen passende ... (mehr)

Netdata schützen

Netdata besitzt keine Möglichkeit der Zugriffskontrolle oder Authentifizierung. Wer also wie eben beschrieben das Tool auf einem im Internet erreichbaren Server installiert hat, sollte es am besten gleich wieder beenden. Um den Zugriff von außen auf Netdata zu verhindern, stellen Sie es so ein, dass es nur auf der Localhost-Adresse auf Verbindungen wartet. Dies erreichen Sie, indem Sie in der Datei "/etc/netdata/netdata.conf" im Abschnitt "[web]" die folgende Zeile einfügen:

bind to = 127.0.0.1:19999

Wenn Sie nun Netdata neu starten, sind Sie erst einmal sicher. Um den Monitoring-Server trotzdem von außen zu erreichen, gibt es mehrere Möglichkeiten. Zum einen können Sie einen SSH-Tunnel von Ihrem Desktop auf den Server aufbauen, etwa so:

$ ssh -N -L 19999:localhost:19999 mein.netdata.server
Bild 3: Das Dashboard zeigt die Leistungsdaten des Rechners, auf dem Netdata installiert ist, und gibt sogar Tipps zur Interpretation.

Nun erreichen Sie Netdata im Browser unter "http://localhost:19999". Alternativ betreiben Sie Netdata hinter einem Proxy, der HTTP-Authentifizierung beherrscht. Wie Sie das mit Nginx, Apache, Lighttpd oder Caddy machen, verrät die Dokumentation. In Listing 1 sehen Sie ein Beispiel für HAProxy. Diese Konfiguration setzt voraus, dass Sie für die Netdata-Installation einen eigenen Hostnamen verwenden, etwa "netdata.mydomain.com".

Greifen Sie nun über den Browser auf die Netdata-Installation zu, werden Sie von einem Dashboard wie in Bild 3 begrüßt. Dort werden die typischen Leistungsdaten wie CPU-Auslastung, System-Load und so weiter angezeigt. Ein nützlicher Bonus dabei ist, dass das Tool auch ein paar Hinweise dazu gibt, wie die Ergebnisse zu interpretieren sind (siehe Bild 3). Damit alle diese Metriken angezeigt werden, müssen Sie nichts tun – Netdata verwendet dabei, wie auch bei den Plug-ins, einen Autodetection-Mechanismus, der ohne weiteres Zutun viele Metriken liefert.

Umgekehrt lassen sich aber die angezeigten Graphen auf Wunsch auch in der Konfiguration deaktivieren, wenn es Ihnen zuviel wird. Das kann leicht sein, denn wenn Sie anfangen nach unten zu scrollen, will die Webseite scheinbar nie enden. Auf der rechten Seite gibt es aber immerhin ein Menü, mit dem Sie zu den gewünschten Graphen springen können. Fehlt es, müssen Sie den Browser etwas breiter ziehen.

Beispiel: Plug-ins für MySQL und HAProxy

Wie erwähnt funktionieren auch die meisten Plug-ins ohne weitere Konfiguration per Autodetection. Wenn das nicht klappt, liegt es meistens daran, dass ein Plug-in noch Daten für die Authentifizierung dem überwachten Dienst gegenüber braucht. Ein Beispiel ist die MySQL-Datenbank, für deren Überwachung Netdata die passenden Zugriffsrechte benötigt. In der zugehörigen Datei "/etc/netdata/python.d/mysql.conf" sind bereits knapp 30 Kombinationen aus Konfigurations-File, Username/Passwort und Port/Socket hinterlegt, die Netdata alle durchgeht, um selbst einen MySQL-Server zu finden. Hier können Sie beispielsweise ein Passwort für den MySQL-Root-User hinterlegen, damit Netdata die Daten von MySQL auslesen darf. Die bessere Alternative ist, wie in der Konfigurationsdatei beschrieben, einen eigenen Benutzer "netdata" anzulegen, der nur über die nötigsten Rechte verfügt. Das erreichen Sie in der MySQL-Console so:

> create user 'netdata'@'localhost';
> grant replication client on *.* to 'netdata'@'localhost';
> flush privileges;

Anschließend können Sie die User-Konfiguration beispielsweise mit dem folgenden Aufruf testen:

$ mysql -u netdata -s -e "show global status;"
Aborted_clients 7
Aborted_connects 1
Binlog_cache_disk_use 0
Binlog_cache_use 0
...
Bild 4: Mit den richtigen Credentials zeigt Netdata auch Metriken der MySQL-Datenbank an.

Nach einem Neustart von Netdata sollten nun mehrere Diagramme für MySQL dargestellt werden (Bild 4). Ist das nicht der Fall, suchen Sie im Netdata-Errorlog nach dem Begriff "mysql":

# grep mysql /var/log/netdata/error.log

Grundsätzlich finden sich die über 50 Konfigurationsdateien der Python-Plug-ins im Verzeichnis "/etc/netdata/python.d", zum Beispiel für Apache, Nginx, Ceph, Dovecot, HAProxy, Fail­2ban, MySQL, PostgreSQL und viele mehr. Nach der Netdata-Philosophie, so viele Metriken wie möglich automatisch zu finden, sind sie auch alle per Default aktiviert. Ändern können Sie dies in der Datei "/etc/netdata/python.d.conf", wo Sie für das entsprechende Plug-in den Wert "no" setzen. Analog funktioniert das mit den JavaScript/Node.js-Plugins, für die es das Verzeichnis "/etc/net­data/node.d/" und die Datei "/etc/netdata/node.d.conf" gibt.

Ein weiteres Beispiel, das wir hier beschreiben wollen, ist das HAProxy-Plug-in. Der beliebte TLS-fähige Proxy ist in der Lage, seine Laufzeitstatistiken über eine URL oder einen Unix-Socket anzubieten. Während der Zugriff auf den Unix-Socket keine Authentifizierung erfordert, da er auf dem gleichen Host stattfindet, müssen bei der URL-Konfiguration Benutzername und Passwort vergeben werden. Ein Beispiel dafür gibt Listing 2. Der Zugriff findet dabei unverschlüsselt statt, weil wir nur von demselben Rechner aus zugreifen. Um TLS-Verschlüsselung zu aktivieren, wenn der HAProxy etwa auf einem anderen Rechner läuft, müssen Sie in der Zeile "mode http" noch "ssl crt/»Pfad/zum/Zertifikat.« pem" anfügen.

Die Zugangsdaten, URL und Port müssen Sie jetzt auch noch dem HAProxy-Plug-in von Netdata beibringen. Dies findet über die Datei "/etc/netdata/python.d/haproxy.conf" statt, in der am Ende schon die passenden Einträge zu finden, aber auskommentiert sind. Entfernen Sie die Anführungszeichen und ersetzen Sie die eingetragenen Werte durch die oben bei HAProxy eingerichteten, etwa so:

via_url:
    user : 'ofr'
    pass : 'T0PSecr3t'
    url : 'http://127.0.0.1:9000/haproxy_stats;csv;norefresh'

Damit können Sie nun auch die Verbindungsstatistiken von HAProxy in Netdata grafisch betrachten. Wie die beiden Beispiele zeigen, ist es ein Leichtes, mit Netdata und seinen mitgelieferten Plug-ins gängige Dienste zu überwachen.

Listing 2: HAProxy-Statistiken



listen stats
    bind :9000
    mode http
    stats enable
    stats realm Haproxy\ Statistics
    stats uri /haproxy_stats
    stats auth ofr:T0PSecr3t

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2020