Fritz!Box Monitoring mit Raspberry Pi Zero W

Raspberry Pi Zero W mit Sherlock EmojiAch ja, die Fritz!Box. Einer der beliebtesten Router, da sie viele Funktionen bietet, leistungsstark ist und dabei noch einfach in der Konfiguration. Wer jedoch mal mit anderen Routern wie dem UniFi Security Gateway oder gar pfSense gearbeitet hat, vermisst vermutlich die hübschen Dashboards, welche nicht nur modern aussehen, sondern auch ein paar sinnvolle Informationen auf einem Blick bieten. Genau so ein Dashboard möchten wir hier mit Grafana nachbauen und bekommen ein hübsches Fritzbox Monitoring.

Raspberry Pi vorbereiten

Ich habe mich für ein Raspberry Pi Zero entschieden, da ich gerade kein anderes Raspberry Pi zur Hand habe und glaube, dass ein Pi Zero ausreichend sein sollte. Ob dem so ist, werden wir zusammen herausfinden.

Zunächst also das aktuelle Raspbian auf eine SD-Karte schreiben, inkl. der ssh-Datei auf der Boot-Partition.

ISO auf SD Karte schreiben
Da wir direkten Zugriff haben möchten und sich das Raspberry Pi Zero nur mit WLAN ins Netzwerk bringen lässt, erstellen wir neben der ssh-Datei auch eine WLAN-Konfig-Datei. Dazu erstellen wir ebenfalls auf der Boot-Partition eine neue Datei mit dem Namen

wpa_supplicant.conf

mit folgendem Inhalt:

country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WLAN-Name"
psk="Passwort"
}

SSID und PSK müssen natürlich angepasst werden.

Nach dem Booten können wir uns nun direkt über Putty verbinden.

Wie immer erst einmal das Kennwort mit passwd ändern und updaten

sudo apt-get update && sudo apt-get -y upgrade

Nun gehen wir noch schnell in die raspi-config (sudo raspi-config) und ändern den Hostnamen unter Network Otions auf etwas sinnvolles.
Anschließend müssen wir das Raspberry Pi neustarten.

Installation

Die Daten der Fritz!Box können wir über das Python-Paket fritzcollectd sammeln.

Das müssen wir natürlich erst einmal auf dem Raspberry Pi installieren:

sudo apt-get install -y python-pip
sudo apt-get install -y libxml2-dev libxslt1-dev
sudo pip install fritzcollectd

Damit wird unser kleines Raspberry Pi Zero eine Weile beschäftigt sein (Wirklich! Das kann ziemlich lange dauern).

Wir können aber die Fritz!Box parallel konfigurieren, denn diese muss ihre Infos per UPnP bereitstellen.

Also schnell eingeloggt und unter Heimnetz > Netzwerk > Netzwerkeinstellungen folgendes aktivieren:

Fritzbox Einstellungen zum Datensammeln

Es ist zudem dringend zu empfehlen, einen eigenen Benutzer für das sammeln der Daten anzulegen. Dieser kann unter System >Fritz!Box-Benutzer angelegt werden.
Evtl. muss dies mit einem Telefon bestätigt werden. Ich habe den Benutzer collect genannt.

Zurück zur SSH-Shell und folgenden Befehl eingeben, um collectd zu installieren:

sudo apt-get install -y collectd

Es gibt einen HAUFEN an abhängigen Paketen, daher dauert auch das wieder etwas.
Ist die Installation durchgelaufen, passen wir die Config an, damit die Daten von der Fritz!Box ausgelesen werden.

sudo nano /etc/collectd/collectd.conf

Zunächst das Kommentarzeichen in der Zeile #LoadPlugin python und #LoadPlugin networkentfernen.

Plugins freigeben

Folgende Blöcke muss ans Ende der Datei – aber vor der Zeile <Include "/etc/collectd/collectd.conf.d"> eingefügt werden (mit Bild runter scrollt man schneller ans Ende der Datei):

<Plugin network>
    Server "127.0.0.1" "25826"
</Plugin>

 

<Plugin python>
    Import "fritzcollectd"

    <Module fritzcollectd>
        Address "192.168.192.1"
        Port 49000
        User "benutzer"
        Password "passwort"
        Hostname "FritzBox"
        Instance "1"
        Verbose "False"
    </Module>
</Plugin>

“benutzer” und “passwort” müssen mit dem zuvor angelegten Fritz!Box-Benutzer ersetzt werden, sowie die IP-Adresse.
Die Datei speichern wir mit STRG+O und verlassen diese mit STRG+X.

 

InfluxDB installieren

Nun sind wir aber noch lange nicht fertig mit der Installation, denn die gesammelten Daten müssen gespeichert werden. Und das passiert in einer InfluxDB.
Diese installieren wir auf dem Raspberry Pi so:

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update
sudo apt install influxdb
sudo systemctl enable influxdb
sudo systemctl start influxdb

Keine Installation ohne Konfiguration. Weiter geht´s also mit der Konfiguration der InfluxDB, welches die Daten für unser FritzBox Monitoring sammelt.

sudo nano /etc/influxdb/influxdb.conf

Finde den Abschnitt [collectd] und setze folgende Werte:

[[collectd]]
  enabled = true
  bind-address = "127.0.0.1:25826"
  database = "collectd"
  typesdb = "/usr/share/collectd/types.db"

collectd konfugurationsdatei

Wir starten die Dienste mit sudo systemctl restart collectd und sudo systemctl restart influxdb neu, damit die Einstellungen übernommen werden.

 

Grafana installieren

Was bringen uns die Daten, ohne sie hübsch darstellen zu können? Dazu installieren wir nun Grafana.

Für Raspberry Pi 1 und Pi Zero W:

cd ~
mkdir -p Downloads
cd Downloads && wget https://dl.grafana.com/oss/release/grafana-rpi_6.7.3_armhf.deb
sudo dpkg -i grafana-rpi_6.7.3_armhf.deb

Ab Raspberry Pi 2:

cd ~ 
mkdir -p Downloads 
cd Downloads && wget https://dl.grafana.com/oss/release/grafana_6.7.3_armhf.deb
sudo dpkg -i grafana_6.7.3_armhf.deb

Anschließend:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable grafana-server
sudo /bin/systemctl start grafana-server

Jetzt können wir endlich die SSH-Shell schließen.

Grafana einrichten

Nun können wir Grafana im Browser öffnen http://ip-des-raspberry-pis:3000/login

Grafana Login Screen

Die Logindaten lauten 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.

Data Source hinzufügen

Klicke auf Add Data Source und anschließend auf InfluxDB und gib die Daten wie auf dem Screenshot zu sehen ein:

KOnfiguration der Datenquelle

Ein Klick auf Save & Test sollte eine grüne Meldung hervorrufen:

Verbindung zur Datenquelle erfolgreich

Juhu! Nun haben wir eine Datenbank mit Daten und Grafana, welches auf die Daten zugreifen kann.

Nun fehlt uns noch ein hübsches Dasboard, um die Daten auch sinnvoll anzuzeigen. Glücklicherweise gibt es eine große Bibliothek an Grafana Dashboards für so ziemlich alles, was Daten ausspuckt. An dieser Stelle installieren wir das Fritz!Box-Dashboard von Christian Fetzers.

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 collectd aus.

Und schwubs haben wir ein modernes Dashboard für unser FritzBox Monitoring.

das fertige Dashboard

Dominic

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.

ähnliche Beiträge

Hinterlasse einen Kommentar

avatar