Lazy

Du bist lazy, möchtest jedoch gerne einmal ein Bisschen mit Grafana rumspielen. Stundenlang alles einzurichten, ist dir jedoch zu doof? Ich habe die Lösung für dich. Vor ca. einer Woche habe ich ein Github Repo erstellt, welches ein E2E Grafana Umgebung enthält. Darin enthalten sind Influxdb als Time Series Database, Telegraf als Metrics Collector, Loki als Log Aggregation System und natürlich Grafana selber.

Voraussetzungen

Damit das Deployment der Umgebung schnell vonstatten geht. Basiert Grafana Playground auf Docker. Somit ist die einzige Voraussetzung, dass auf deiner Maschine Docker läuft. Getestet wurde die Umgebung unter:

  • Ubuntu 20.04
  • Docker Desktop für Windows unter Windows Version 10.0.19041 Build 19041

Einrichtung

Natürlich kannst du dir die ganz Ordnerstruktur manuell aufbauen. Ich empfehle an dieser Stelle jedoch das Klonen mit git.

git clone https://github.com/darox/Grafana-Playground

Damit das sammeln der Docker Logs klappt, muss noch der Docker Loki Logging Driver installiert werden.

docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions

Nun kann die Umgebung gestartet werden.

docker compose up -d

Den Status der Umgebung prüfen.

docker ps -a

Berechtigungen

Unter Linux können Docker Kommandos nur mit Root Zugriffsrechten ausgeführt werden. Es besteht jedoch die Möglichkeit, dein Benutzer der Docker Gruppe hinzuzufügen.

sudo usermod -aG docker dario

Los geht’s

Ist die Umgebung einmal eingerichtet, kann man direkt mit Rumspielen beginnen. Mit einem Browser ruft man http://localhost:3000 auf und gibt admin/admin ein. Man wird direkt aufgefordert das Passwort zu ändern. Einmal eingeloggt, führt die erste Handlung zur Konfiguration der Datenquellen. Es werden zwei Quellen konfiguriert, Loki und Influxdb.

Datenquellen

Bei der Konfiguration von Influxdb, muss die URL http://influxdb:8086 sowie der Name der Datenbank angegeben werden. In diesem Fall kreiert Telegraf eine Datenbank mit dem Namen telegraf. Die Konfiguration der Loki Datenquelle ist noch einfacher, hier geben wir die URL http://loki:3100 ein. Da es sich hierbei um eine Testumgebung handelt, verwenden wir kein Passwortschutz und TLS. In einer produktiven Umgebung sollte man darauf natürlich nicht verzichten. Sogar das erstellen von Dashboards, habe ich dir abgenommen. Im Repository sind zwei JSON Dateien, loki.json und telegraf.json enthalten. Diese Dateien findest du im Ordner grafana/dashboards. Diese Templates kannst du in der Dashboard Übersicht importieren.

Dashboards

Es erwarten dich zwei Dashboards, das Telegraf Dashboard.

Telegraf Dashboard

Sowie das Loki Dashboard. Es ist ziemlich leer, da ein Filter konfiguriert ist, der nur Log Zeilen mit dem Wort “error” anzeigt.

Loki Dashboard

Die Testumgebung zu stoppen, ist auch ganz einfach.

docker-compose down

Schlusswort

Es muss nicht immer alles kompliziert und zeitaufwendig sein. Mit Docker und Docker Compose lassen sich komplette Umgebungen innert Minuten einrichten. Diese Umgebung lässt sich natürlich beliebig weiter ausbauen. So könnte man beispielsweise weitere Plugins innerhalb Telegraf konfigurierten, um zusätzliche Metrics zu sammeln. Zudem könnte man Promtail zur Umgebung hinzufügen, um Windows Logfiles an Loki zu senden. Den Möglichkeiten sind keine Grenzen gesetzt.

“Buy Me A Coffee”