Website-Icon adminForge

Mastodon Grafana Statistiken (Docker)

Für die adminForge Mastodon Instanz kanoa.de habe ich vor kurzem ein Grafana Dashboard erstellt.

In dieser Anleitung möchte ich euch zeigen, welche Tools ihr benötigt um das Dashboard bei eurer Mastodon Instanz ans laufen zu bekommen.

Als Grundlage benötigt ihr folgende Services aus der Anleitung Jitsi Meet Grafana Statistiken (Docker)

sowie einer funktionierenden Docker Mastodon Installation.

Für Mastodon kommen diese Services hinzu:

Erklärung der einzelnen Services:

Punkt 1: Installation der Exporter

Um die registrierten Benutzer zu erfassen nutzen wir den prometheus-mastodon-exporter von systemli, dieser ist schlank und leicht zu konfigurieren. Die restlichen Metriken werden über den statsd-exporter gesammelt.

Fügt beide Exporter in eurer Mastodon docker-compose.yml Konfiguration hinzu:

  1. Tauscht kanoa.de gegen eure Mastodon Domain aus.
  2. Wenn Prometheus NICHT auf dem selben Host läuft, ändert 127.0.0.1 gegen eure interne IP-Adresse aus.
  3. Solltet ihr Prometheus und Mastodon in einem Docker Netzwerk betreiben, könnt ihr natürlich auch direkt mastodon-exporter:13120 und statsd-exporter:9102 in Promehteus ansprechen und die Ports in der Config weglassen.

Punkt 2: Mastodon Konfiguration

Fügt in eurer .env.production diese Statsd Zeilen hinzu.

Das direkte ansprechen per Hostname ist möglich, da der Exporter im selben Netzwerk wie Mastodon läuft.

Punkt 3: statsd-mapping.yaml erstellen

Als Grundlage habe ich das Grafana Dashboard von IPng Networks genutzt und erweitert. Dies erfordert Statsd und das passende Statsd Mapping.

Erstellt eine Datei statsd-mapping.yaml mit folgenden Inhalt direkt in eurem Mastodon Ordner.

Mit docker-compose up -d aktiviert ihr eure Mastodon Änderungen.

Punkt 4: Prometheus Konfiguration

Wechselt in die Konfigurationsdatei prometheus.yml eures Prometheus und fügt diese Zeilen hinzu.

  1. Wenn Mastodon NICHT auf dem selben Host läuft, ändert 127.0.0.1 gegen eure interne IP-Adresse aus.
  2. Solltet ihr Prometheus und Mastodon in einem Docker Netzwerk betreiben, könnt ihr natürlich auch direkt mastodon-exporter:13120 und statsd-exporter:9102 in Promehteus ansprechen.

Mit docker-compose up -d aktiviert ihr eure Prometheus Änderungen.

Punkt 5: Node-Exporter anpassen (optional)

Der Node-Exporter kann ohne Anpassung nur auf Netzwerkinterfaces eth0 und lo zugreifen. Wenn ihr wie ich ens18 als öffentliches Interface habt, muss der Netzwerkmodus geändert werden: network_mode: host

ACHTUNG: Damit werden die Metriken unter Port 9100 auch über öffentliche IP-Adressen erreichbar sein! Sperrt die Zugriffe z.B. über iptables.

Mit docker-compose up -d aktiviert ihr eure Node-Exporter Änderungen.

Punkt 6: Grafana Dashboard importieren

Jetzt öffnet euer Grafana und klickt links im Menü auf Dashboards > Import.

Speichert das JSON File adminForge Mastodon.json ab und importiert es mit einem Klick auf Upload JSON file.

Wählt euer Prometheus als Datasource aus und klick auf Import.

Punkt 7: Dashboard Variablen anpassen

Im Dashboard angekommen klicken wir oben rechts auf Dashboard settings.

  1. Unter General vergebt ihr euren individuellen Namen.
  2. Im Menü Variables ändern wir diese Variablen ab:
    1. node Regex von web03 auf euren node-exporter Servernamen
    2. mountpoint Regex auf euren Mountpoint des Mastodon Cache Ordners ändern
    3. nic Regex von ens18 auf eure Netzwerkkarte einstellen

Fertig! Viel Spaß mit dem Dashboard.

Verpasse keine Neuigkeiten und folge adminForge auf Mastodon.

Euer adminForge Team

Das Betreiben der Dienste, Webseite und Server machen wir gerne, kostet aber leider auch Geld.
Unterstütze unsere Arbeit mit einer Spende.
3
Die mobile Version verlassen