FritzBox Monitoring mit Docker-Containern

Titelbild Firtzbox Monitoring mit Gradana in DockerDa der meistgeklickte Artikel meines Blocks Fritz!Box Monitoring mit Raspberry Pi Zero W ist, habe ich mir überlegt, eine etwas aktuellere Version dazu zu verfassen, damit ihr ein eigenes FritzBox Monitoring mit Docker realisieren könnt. Die Erde dreht sich weiter und neben Raspberry Pis ziehen auch immer mehr Docker Hosts in die heimischen Netzwerke ein. Dieser Artikel setzt demnach einen installierten Docker-Host voraus. Vielleicht schreibe ich dazu auch nochmal einen Artikel, aber dazu gibt es bereits viele sehr gute Anleitungen, wie die Installation auf sämtlichen Systemen funktioniert (auch auf einem Raspberry Pi). Ich nutze als Docker-Host eine PhotonOS-VM auf einem kleinen ESXi-Host, welcher maximal 60Watt zieht. Das ist mehr als ein Raspberry Pi Zero, dafür laufen auf meinem Docker-Host mittlerweile auch über 20 Dienste (Plex, Gitea, Homer, Vaultwarden, etc.).

Vorbereitungen

Ich nutze für dieses Projekt das Docker-Image von jammsen, welches er freundlicherweise in seinem Git-Repository zur Verfügung stellt.
Dieses Image beinhaltet eigentlich alles, was wir im o.g. Artikel auch auf dem Raspberry Pi Zero installiert haben. Nur hier ist schon alles installiert und wir müssen es nur noch konfigurieren.

Zunächst laden wir die folgenden Dateien vom Git-Repository herunter:

docker-compose.yml, influxdb.conf, types.db

Anschließend loggen wir uns per SSH auf unseren Docker-Host ein und erstellen ein neues Verzeichnis:

root@Dockerhost01 [ ~/docker ]# mkdir fritzboxmonitoring

Nun packen wir die zuvor geladenen Dateien in dieses Verzeichnis. Ich nutze dazu WinSCP.

Datei upload in WinSCP

Nun erstellen wir in /fritzboxmonitoring noch zwei weitere Verzeichnisse:

root@Dockerhost01 [ ~/docker/fritzboxmonitoring ]# mkdir influxdb
root@Dockerhost01 [ ~/docker/fritzboxmonitoring ]# mkdir grafana

Dem Verzeichnis “grafana” geben wir in WinSCP per Rechtsklick->Eigenschaften folgende Berechtigungen:

Grafana Ordner Berechtigung

 

FritzBox-User anlegen

Bevor wir einen eigenen User anlegen, um die Daten von der FritzBox abzuholen, sollten wir UPnP aktivieren.
Das machen wir unter Heimnetz > Netzwerk > Netzwerkeinstellungen:

Fritzbox upnp aktivieren

Jetzt noch schnell einen Benutzer angelegt. Dieser kann unter System >Fritz!Box-Benutzer erstellt werden.
Evtl. muss dies mit einem Telefon bestätigt werden. Ich habe den Benutzer collectd genannt und ihm ein sicheres Passwort zugewiesen, sowie die Berechtigung entzogen, dass der Benutzer aus dem Internet Zugriff hat.

 

Konfiguration

Nun geht es ans Eingemachte – wir konfigurieren die Variablen für das Docker-Image!

Dazu öffnen wir die zuvor hochgeladene Datei “docker-compose.yml” und nehmen folgende Änderungen vor:

– In Zeile 9 ersetzen wir den Pfad zu unserem Grafana-Ordner: - /root/docker/fritzboxmonitoring/grafana:/var/lib/grafana
– In Zeile 21 ersetzen wir den Pfad zu unserem InfluxDB-Ordner: - /root/docker/fritzboxmonitoring/influxdb:/var/lib/influxdb
– In Zeile 33 tragen wir die IP des Docker-Hosts ein: - InfluxDbIp=192.168.9.20
– In Zeile 35 geben wir die IP-Adresse unserer FritzBox ein
– In zeile 36 und 37 die Logindaten für den oben erstellen Benutzer

Docker-Container erstellen

Als nächstes gehen wir zurück in unser SSH-Terminal und stellen sicher, dass wir im Verzeichnis /fritzboxmonitoring sind. Jetzt können wir mit docker-compose up -d die Container erstellen und starten.

Grafana einrichten

Wir können uns nun bei Grafana einloggen. Öffnet dazu einen Browser und gebt die IP-Adresse eures Docker-Hosts mit dem Port 3000 ein.
Die Standard-Logindaten sind admin/admin.

Zunächst müssen wir unsere InfluxDB als Datenquelle angeben, damit Grafana etwas zum Anzeigen hat.
Dazu gehen wir links in der Menüleiste auf Configuration (das Zahnrad) und Data Sources.

Grafana neue Datenquelle

Klicke auf Add Data Source und anschließend auf InfluxDB.

Der Name der Quelle kann beliebig ausgewähtl werden. Ich nenne sie “Fritzboxdata”.
Als URL geben wir die IP-Adresse4 des Dockercontainers von influxdb an, sowie den Port 8086.
Wir können die IP-Adresse per SSH auf dem Docker-Host mit foglendem Befehl feststellen:
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{
end}}' influxdb

Jetzt aktivieren wir noch “Skip TLS Verify” und tragen als Datenbanknamen unten collectd ein.

Per Save & Test wird gespeichert.

In der linken Menüleiste von Grafana klicken wir auf das PLUS (Create) und anschließend auf Import. Hier geben wir einfach die ID des Dashboards 713 ein und wählen im nächsten Fenster im Feld influxdb_collectd wieder unsere Datenbank fritzboxdata aus.

Nun haben wir unser Dashboard rein über Docker-Container gelöst.

Fertiges Grafana Dashboard

Dominic hat 2012 als Jahrgangsbester die Ausbildung zum Informatik-Kaufmann abgeschlossen und ist seit dem als Systemadministrator und IT-Supporter tätigt. Sein erstes Netzwerk baute er mit 13 Jahren auf, um eine LAN-Party zu hosten. Seit dem ist IT für ihn eine Lebenseinstellung.

Related posts

Abonnieren
Benachrichtige mich bei
guest
14 Comments
Inline Feedbacks
View all comments
lambert
lambert
2 Jahre zuvor

Vielen Dank für die tollen Tutorials. Nachdem nach dem Tutorial ohne Docker das Dashboard leider nur N/A angezeigt hat, habe ich es jetzt mal mit Docker probiert.
Lief so weit auch alles durch während der Installation, allerdings komme ich nicht auf das grafana-Interface. Welche IP muss ich denn im Browser eingeben? Ich habe die IP des Pis probiert und die IP die in ifconfig unter “docker” steht (127.0.17.18).
gebe ich docker inspect -f ‘{{range.NetworkSettings.Networks}}{{.IPAddress}}{{
end}}’ influxdb ein, gibt er mir nur eine leere Zeile zurück.
Has tdu eine Idee, was ich machen könnte?
Vielen Dank

Jan
Jan
1 Jahr zuvor

In dem verlinkten Repository findet sich keine arm Version 🙁

DerEine
DerEine
1 Jahr zuvor

hat wunderbar funktioniert auf meiner Synology NAS, vielen Dank für die Anleitung!

Mike
Mike
1 Jahr zuvor

Erstmal vielen Dank für das Tutorial!
Ich hänge allerdings bei der Einrichtung der Datenquelle in Grafana. Hier wirft mir Grafana immer einen Fehler aus und ich komme nicht dahinter woran es liegt: “parse “172.18.0.2:8086″: first path segment in URL cannot contain colon error creating influxDB healthcheck request” Für einen Tipp wäre ich mehr als dankbar!
Danke und viele Grüße!
Mike

Veit
Veit
1 Jahr zuvor

Ich muss mich auch für dieses Tutorial sehr bedanken, allerdings habe ich es bisher noch nicht geschafft das Dashboard anzeigen zu lassen. Ich muss dazu sagen, dass ich das Ganze via Portainer Stack auf einem RPI 4 laufen lassen will und daher das Image für den FritzBox Exporter nicht verwenden konnte, daher bin ich auf ein anderes ausgewichen, was im Grunde nur ein Fork von dem hier genannten ist. r0ns3n/collectd-fritzbox:latest Wenn ich die Datasource hinzufügen will, bekomme ich immer die Meldung “error reading InfluxDB. Status Code: 401” Ich habe keine Ahnung wo ich hier ansetzen kann. Ich habe schon versucht… Weiterlesen »

Matthias
Matthias
1 Jahr zuvor

Vielen Dank dafür! Ich habe es auf einem Synology NAS laufen. Leider funktioniert die Connection nach “save & test” der Data Source nicht. Als Fehlermeldung wird ausgegeben: “error connecting influxDB influxQL”. Hast du eine Idee woran das liegen könnte?

Matthias
Matthias
Reply to  Dominic
1 Jahr zuvor

Hi Dominic, soweit ich das beurteilen kann schon. Grafana (erreichbar über die NAS IP Adresse, Port 3000) ist in Portainer unter IP Adresse 172.18.0.2 über Port 3000 zu sehen. InfluxDB unter der 172.18.0.3 mit Ports 25826 und 8086. Der collectd-fritzbox Container hat in Portainer keine IP-Adresse und keinen Port ersichtlich. In Netzworks sehe ich das fritzboxmonitoring_default Netzwerk 172.18.0.0/16 mit dem Gateway 172.18.0.1. Das sieht eigentlich richtig aus denke ich. In den Logs des Grafana Containers sehe ich diese Fehlermeldung. Vielleicht hilft das weiter: [httpd] 172.18.0.2 - - [18/Nov/2022:19:26:34 +0000] "GET /query?db=collectd&epoch=ms&q=SHOW+measurements HTTP/1.1" 200 57 "-" "Grafana" e9a2d17b-6776-11ed-8062-0242ac120003 696 Hier noch… Weiterlesen »

Karsten
Karsten
1 Jahr zuvor

Hallo, erstmal danke für die Beschreibung. Auch ich habe es in einer Docker Instanz auf meiner Synology laufen. Allerdings stoppt meine influxdb immer sofort und in der Protokollierung taucht immer folgende Meldung: ” run: parse config: Near line 0 (last key parsed ” “

Andre
Andre
Reply to  Karsten
1 Jahr zuvor

InfluxDB: Exakt wie bei mir