Dieses Tutorial ist VALID.

Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Haftungsausschluss / Disclaimer

Grafana – Monitoring Suite mit Docker und Traefik installieren

Einloggen und Grafana einrichten

Grafana sollte uns hier mit dem Login-Screen beglücken. Die Benutzername / Passwort Kombination zum ersten Einloggen lautet „admin / admin“.

Nach der Eingabe der Benutzerdaten werden wir von Grafana aufgefordert, unser Passwort gegen ein sicheres auszutauschen. Was wir natürlich dringend machen sollten :)

Jetzt sind wir in Grafana eingeloggt. Nun müssen wir ihm mitteilen, woher er seine Daten beziehen soll. Dazu klicken wir im Einrichtungsassistent auf „Add data source„:

Grafana Einrichtung – „Add data source“

Im sich nun öffnenden Menü wählen wir „Prometheus“ als Datenquelle über die Schaltfläche „Select„.

Wir wählen den obersten Menüpunkt „Prometheus“ mit „Select“ aus.

Jetzt definieren wir die Quelle:
In die URL zum Abruf der Daten fügen wir ein: http://mon_prometheus:9090
Als „Scrape interval“ tippen wir 15s
Den Rest lassen wir wie er ist und klicken auf „Save & Test„, um die Einstellungen zu speichern. Wir müssten eine grüne Zeile bekommen, die uns den erfolgreichen Anschluss der Datenquelle mitteilt.

Nun klicken wir oben links auf das Grafana-Symbol, um zurück auf die Einrichtungsseite zu gelangen.

Was wir jetzt noch brauchen, ist ein Dashboard, das uns die gesammelten Daten grafisch ausgibt. Hierzu schalten wir den Einrichtungsassistent oben rechts über das „x“ aus, weil wir kein neues Dashboard einrichten, sondern stattdessen ein bereits erstelltes importieren.

Dazu „hovern“ wir oben links im Menü über das „+„-Symbol und wählen „Import„:

An dieser Stelle öffnen wir die folgende URL auf die GitHub Source des Dashboards von teqqy:
[Link öffnet einen neuen Tab!]
https://raw.githubusercontent.com/cbirkenbeul/docker-homelab/master/monitoring/grafana/dashboard.json
In dem neuen Tab wählen wir den kompletten Inhalt mit Strg+A aus und kopieren ihn mit Strg+C in die Zwischenablage. Zurück im Grafana Tab klicken wir in das „Import“ Feld und drücken Strg+V, um die Daten einzutragen. Wir klicken auf „Load„.

Anschließend vergeben wir einen Namen für das Dashboard (ich stell da den Servernamen vorne an) und klicken auf „Import„.

Das wars! Jetzt haben wir ein Dashboard in der Liste, auf das wir draufdrücken. Nun lädt Grafana zum ersten Mal die Ansicht unserer Daten:

Grafana Dashboard mit unseren Daten…

Die ganzen Containernamen sind klickbar. Damit wird nur die Kurve des ausgewählten Containers sichtbar. Ein erneuter Klick und alle Grafen werden dargestellt.
Oben rechts stellen wir den Zeitraum ein, für den Grafana uns die Daten laden soll. Das macht natürlich erst Sinn, wenn wir auch welche gesammelt haben :)
Hier noch ein schnelles „Strg+D“, um das Dashboard als Link in unserem Browser zu speichern. Fertig!

Vergleich: So sieht es aus, wenn wir Daten zur Echtzeit mit „htop“ oder „docker stats“ anzeigen lassen:

Dabei fehlt uns der „zeitliche Verlauf“…

Fazit

Dank der umfangreichen Vorbereitung durch die beiden Tech-Blogger war die Anpassung der Tutorials an unsere Umgebung schnell und einfach erledigt.

Grafana gibt schon interessante Einblicke in unser System über einen längeren Zeitraum, keine Frage.
Für ein paar Tage zum Sammeln von Statistiken? Klar, sofort!
Permanent laufenlassen? Weiß nicht, ist mir auf den produktiven Maschinen zu heiß.
Mal für ein paar Tage – OK. Aber immer und überall…? Das muss jeder mit sich selber ausmachen, denke ich.

Randnotiz: Angiff auf WordPress mitgeschnitten

Was für ein irrer Zufall: Während ich an dem Tutorial und der Installation von Grafana gebastelt hab, ist ein super intensiver Angriff auf 900.000 WordPress Seiten gelaufen. Auch meine wordpress.xp-server.de war davon betroffen…

Wir sehen, dass der Angriff zwischen 18:25 und 18:48 Uhr gelaufen ist und einen ziemlichen Stress auf den WordPress Container gebracht hat. Mein kleiner Mini-Testserver hat es aber trotzdem ganz gut weggesteckt…

Das ist der große Nachteil der „umsonst“ Firewall Lösung für WordPress: Die blockt IPs nicht weg, wenn die x-Mal hintereinander Blödsinn gemacht haben. Und 1.064 erkannte und geblockte Zugriffe mit böswilliger Absicht sprechen Bände. Im Firewall-Log war dann auch gleich erkennbar, dass alle Angriffe von der selben IP kamen.

Auf sämtlichen produktiven Seiten hab ich deswegen eine kommerzielle WAF (Web Application Firewall) laufen, die nach ein paar Angriffen die betreffende IP für eine halbe Stunde blockiert. Dadurch werden solche Großangriffe abgewehrt, die nur über wenige IPs auf den Server einknüppeln. Denn ist die Angreifer-IP gesperrt, laufen die Angriffe ins Leere. Spart dann auch jede Menge Ressourcen auf der Maschine.

Aber hey, das ist eine interessante Sache, so was mal live erwischt zu haben!
Nett :)

Anzeige *

12 Kommentare zu „Grafana – Monitoring Suite mit Docker und Traefik installieren“

  1. Tolle Sache…
    Sinvolle wäre es noch wenn man Benachrichtigt(Mail) wird wenn ein Wert wie beispielsweise CPU oder Memory überschritten wird.
    Hast du das schon ausprobiert?

    1. Peter Fiedler

      Alerting hab ich noch nicht ausprobiert.

      Die haben das ganz schön beschrieben:
      https://www.metricfire.com/blog/grafana-alerting

      Interessant wäre, ob die Mail wirklich auslöst.
      Leider hab ich momentan „die Hütte voll“ und kann mich deshalb nur stiefmütterlich um Projekt-Rootserver kümmern. Aber ich schreib das auf meine ToDo, dass wir das auch mal getestet bekommen.

      Wünsch Dir einen schönen Sonntag!
      Peter.

      1. Ich habe die passende Datei gefunden: /etc/grafana/grafana.ini
        Dort den jeweiligen SMTP-Host definieren und in grafana noch den Bereich Alerts konfigurieren.

        1. Peter Fiedler

          Super, vielen Dank, Olaf!
          Wenn die Hütte nicht mehr so lichterloh brennt, bau ich das nach und füge das direkt ins Tutorial ein.
          Liebe Grüße
          Peter.

  2. Danke für das super Tutorial. Hat einwandfrei geklappt.

    Grafana bietet zwar eine Art bruteforce Schutz für den Login. Allerdings nur, wenn der Angreifer den richtigen Benutzernamen benutzt. Ansonsten werden die Anfragen weiter verarbeitet.

    Ich persönlich habe noch zusätzlich per fail2ban abgesichert. Gibt mir persönlich noch ein bisschen mehr Ruhe beim Schlafen. :)

    Ansonsten wie immer sehr gut gemacht.

    Gruß
    Jan

    1. Peter Fiedler

      Freut mich, dass es wieder geklappt hat, Jan!

      Wenn Du Lust hast und es teilen möchtest würde ich mich – und viele Leser sicher auch – sehr über Deine Installation von fail2ban freuen. Das hatte ich früher auf der „Bare Metal“ Kiste auch am Laufen und konnte wirklich ruhiger schlafen… Einfach an fiedler@cpf.de.

      Wünsch Dir noch einen schönen Sonntag!
      Peter.

    2. Eine Idee wäre es auch noch fail2ban über grafana zu monitoren. Um Zugriffe beispielsweise einzusehen. Hast du das vielleicht bei dir schon umgesetzt und kannst Erfahrungen teilen?
      Peter vielleicht eine Idee für dich?

      1. Peter Fiedler

        Hi Juno,
        die Idee ist gut. Allerdings müsste man dazu den Output der fail2ban-Log-Datei irgendwie in Prometheus bekommen.

        Aber „first things first“ – ich muss erst mal fail2ban überhaupt vernünftig zum Laufen bringen, bevor wir da Daten rausziehen können ^^
        Beste Grüße
        Peter.

          1. Peter Fiedler

            Interessantes Script. Schau ich mir an. Könnte klappen, wenn der mon_node-exporter Container den Input frisst…

            fail2ban „abschließend“ zu behandeln wird mir einiges an Zeit und Kraft abtrotzen. Ich werde daran arbeiten, kann Dir aber nichts versprechen. Also weder „ob“ noch „wann“.
            Ich mein, SSH mit fai2ban absichern – geschenkt. Aber die Logs der anderen Anwendungen aus den Container ziehen und dafür eigene Regex-Regeln schreiben? Wenn Du mich hören könntest, würdest Du mich jetzt in binär weinen hören…

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verwendung
von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.

Scroll to Top