10. März 2022

Fritzbox-Monitor neu

Da ich ja schon vor einiger Zeit feststellen musste, dass mir der Speicher auf dem Raspi ausgeht, auf dem mein FRITZ!Box-Monitoring läuft, musste ich mir eine neue Lösung suchen. Also hab ich mich am Wochenende daran gemacht, die Daten von dem “alten” System zu sichern und das ganze gemäß der Anleitung bei heise+ neu aufzusetzen. Dabei half mir, dass ich das ganze ursprünglich mal mit Noobs installiert hatte und somit auf diesen Installationsmechanismus wieder zurückgreifen konnte, um auch gleich das aktuellste Image herunterzuladen und zu installieren. Wie immer in solchen Fällen entschied ich mich wieder für das Raspberry Pi OS Lite in der 32bit Variante. Das verbraucht am Ende mit allem was man braucht nur ca. 20 % der 16 GB MicroSD-Karte.

Leider habe ich die Daten vom alten System nicht mitnehmen können oder hab es zumindest nicht geschafft. Auch hat es wiedermal nicht auf Anhieb funktioniert, denn es wurden in den ersten Stunden keine Daten gesammelt und die Konfiguration gelang mir auch nicht recht. Deshalb hab ich mich nach zwei Tagen entschieden, das alles nochmal neu zu machen und ganz von vorne anzufangen. Bis auf die Anschlussgeschwindigkeit des DSL-Anschlusses stimmt es jetzt. Aber das hatte ich auch schon mal am Anfang vor mehr als einem Jahr. Wenn ich wiedermal nichts besseres zu tun habe kann ich mich ja noch mal darum kümmern. Auch die historischen Daten kann ich vielleicht doch nochmal versuchen hinüber zu retten.

Docker

Das Ganze basiert ja auf einem fertigen Docker-Container und MRTG, den man nur herunterladen und mit

docker build -t fritzbox-bandwidth-monitor

erstellen muss. Was sich jetzt so lapidar anhört hat durchaus einige Fallstricke. Systemvoraussetzungen zu installieren ist nämlich nicht so einfach, wie in der Anleitung von 2019, weil sich seither wieder einiges an Änderungen ergeben hat. Debian 11 kennt zum Beispiel den Befehl apt-key add (depricated) inzwischen nicht mehr. Stattdessen hat mir eine Anleitung direkt bei docs.Docker.com geholfen:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Danach konnte ich gemäß der heise+-Anleitung weitermachen.

Den Umgang mit Docker und Containern lernt man dabei ganz nebenbei auch noch. Aber das kannte ich ja zum Teil bereits, auch weil ich ja schon den TandoorRecipes-Server am Laufen habe, der ebenfalls als Docker-Container daherkam. Dafür bringt das Raspberry Pi OS Lite schon einige andere Systemvoraussetzungen, die laut der Docker-Anleitung noch manuell nachinstalliert werden müssen:

sudo apt-get install ca-certificates curl gnupg lsb-release

Das war alles schon in der neuesten Version vorhanden. Einiges hätte ich mir auch erspart, wenn ich die mitgelieferte README.md genauer angesehen hätte in der so wertvolle Hinweise enthalten sind, wie:

Run with “docker”:

[…]

or (in case you want to persist the HTML output and log):

was ich dann auch glatt mit

mkdir -p /home/pi/fritzbox/html

und

docker run -d -v /home/pi/fritzbox/html:/var/www/html --restart always -p 80:80 fritzbox-bandwidth-monitor

umgesetzt habe.

Nachtrag

Leider muss man nach einer Änderung der mrtg.cfg den Container anhalten, komplett löschen und erneut bauen:

sudo docker stop <container>
sudo rm <container-id>
sudo docker build -t fritzbox-bandwidth-monitor fritzbox-bandwidth-monitor

Dann aber funktionieren auch alle eingetragenen Werte einwandfrei.