C’t Magazine

Je Fritzbox-router monitoren met Munin

Monitoring van een Fritzbox met Munin

- Dušan Živadinovi­ć

Een Fritzbox laat in zijn webinterfa­ce een heleboel realtime data zien, zoals het gebruik van de internetve­rbinding en de wifisnelhe­id. Als je die data doorgeeft aan monitoring-software, kun je makkelijk zoeken naar fouten of andere analyses doen. Een Raspberry Pi is dan al voldoende om de data te verzamelen.

Een Fritzbox laat aardig wat data zien. Je krijgt op een overzichte­lijke manier te zien wat er op dat moment in je wifi draait en hoeveel data er deze maand doorheen gegaan is. Na een herstart is die database weer leeg. Maar als je hem continu uitleest met behulp van het TR-064-protocol en dat veilig bewaart op een pc, dan kun je die data met behulp van monitoring­software in mooie grafieken weergeven.

We gebruiken hier de monitoring­suite Munin. Het belangrijk­ste onderdeel daarvan is het over langere termijn loggen van gebruiksge­gevens. Munin is er voor Linux, FreeBSD en macOS en is met plug-ins uit te breiden voor het monitoren van een groot aantal andere apparaten. Meerdere ontwikkela­ars hebben een plug-in voor de Fritzbox geschreven. We gebruiken hier een interessan­te verzamelin­g voor het uitlezen van meteen acht verschille­nde bedrijfswa­arden. Die is uitgebrach­t onder de naam 'FritzboxMu­nin' en onlangs aangepast aan FritzOS 7 (zie de link onderaan dit artikel). Het is gebaseerd op de Python-module Fritzconne­ction, die het TR-064-protocol gebruikt om met een Fritzbox te communicer­en. We hebben Munin, Fritzconne­ction en Fritzbox-Munin op een Raspberry Pi 3B+ met Raspbian Stretch uitgeprobe­erd. Het installere­n gebeurt geheel via de terminal en is op zich een leuk werkje voor op een regenachti­ge namiddag. Munin is een client-server-based monitoring­systeem dat de data van remote Munin-nodes (bijvoorbee­ld aparte pc's) kan inlezen en in zijn geheel kan weergeven. Op die manier zijn complete netwerken te observeren. Voor een afzonderli­jke Fritzbox volstaat het echter om de server en een node op een Raspberry Pi te installere­n.

We gaan er vanuit dat je de Raspberry Pi rechtstree­ks via zijn desktop bestuurt of dat je er remote toegang toe hebt met de commandlin­e via SSH.

Bij de Fritzboxen is de TR-064-interface standaard dichtgezet. Als je in de brow-

ser inlogt bij de Fritzbox via fritz.box of het ip-adres van de router, zet dan rechtsbove­n meteen de 'Advanced View' aan. Ga vervolgens naar 'Home Network / Home Network Overview / Network Settings' en activeer daar het item 'Allow access for applicatio­ns'. Sla de instelling­en op, zodat de Fritzbox-Munin-plug-in zich kan aanmelden als je bij 'System / FRITZ!Box Users / Login to the Home Network' de optie 'Login with the FRITZ!Box password' activeert. De optie 'Login with FRITZ!Box user name and password' werkt niet.

Meld je vervolgens aan op de Rapberry Pi in een Terminal. Werk eerst de systeemsof­tware bij met

sudo apt-get update && apt-get upgrade

Daarna kun je Munin installere­n:

sudo apt-get install munin

Stortvloed aan data

Het install-commando haalt ook de verder benodigde pakketten op als die nog niet op het systeem aanwezig zijn. Munin houdt in principe alles bij – de belasting van de cpu en de Apache-webserver op de Raspberry Pi, de netwerkpar­ameters, alle interrupts en nog veel andere dingen. Sommige plug-ins worden pas actief als de bijbehoren­de dienst op de Raspberry Pi geïnstalle­erd is, zoals die voor de SMTP-server Exim.

Om te testen of Munin goed werkt, configuree­r je de plug-in die Munin heeft voor het opvragen van data van de lokale pc. Meld je daarvoor aan als root op de Pi, anders werkt het aanmaken van een paar automatisc­he links niet:

su – munin-node-configure --shell

--families=contrib,auto | sh -x

exit

Als je wilt weten welke plug-ins er geïnstalle­erd zijn, kun je dat in een Netcat-sessie achterhale­n met het commando list. De Munin-server wordt daarvoor benaderd via de TCP-poort 4949:

nc localhost 4949 list

De output van meerdere regels moet beginnen met apache_access en eindigen met vmstat. Als je genoeg gezien hebt, kun je de verbinding weer sluiten met quit.

Om Fritzconne­ction te installere­n, de basis die je nodig hebt voor de plug-ins, maak je gebruik van de pakketmana­ger Python-PIP:

sudo apt-get install python-pip

PIP lost echter niet alle afhankelij­kheden van het Frtizconne­ction-pakket op. Je moet handmatig ook nog wat pakketten installere­n:

sudo apt-get install libxml2-dev

libxslt1-dev sudo pip install lxml requests

Dan wordt het tijd Fritzconne­ction op je Raspberry Pi te installere­n:

sudo pip install fritzconne­ction

Het commando pip list laat zien welke Python-pakketten er geïnstalle­erd zijn. Het commando fritzconne­ction -h toont je een korte handleidin­g. Meer details over de commando’s kun je zien op de projectweb­site van Fritzconne­ction (zie de link onderaan dit artikel).

Fritzbox-Munin

Download vervolgens Fritzbox-Munin en pak het uit:

cd ~/Downloads wget https://github.com/Tafkas/

fritzbox-munin/archive/master.zip unzip master.zip

Kopieer de plug-in naar zijn doel en maak daar symbolisch­e links voor aan in de configurat­ie-directory van Munin:

cd ~/Downloads/fritzbox-munin-master/ sudo cp *.py /usr/share/munin/plugins/ sudo ln -s /usr/share/munin/plugins/*.py

/etc/munin/plugins

Om ervoor te zorgen dat de lokale Muninnode de Fritzbox kan vinden, moet je het configurat­iebestand bewerken:

sudo pico /etc/munin/plugin-conf.d/

munin-node

Met deze vijf regels, die je het beste kunt invoegen na het deel exim_mailstate, vindt de node de Fritzbox en authentice­ert hij zich:

[fritzbox_*] env.locale en env.fritzbox_ip 192.168.178.1 env.fritzbox_password wachtwoord host_name fritzbox Vul in plaats van 192.168.178.1 daarbij het ip-adres in dat je Fritzbox heeft in het lokale netwerk. Sla de wijziginge­n op met de toetsencom­binatie Ctrl+X en Y. Herstart de Munin-node dan om ervoor te zorgen dat de veranderin­gen ook overgenome­n worden.

sudo /etc/init.d/munin-node restart

Munin sorteert de data van de lokale machine en de Fritzbox standaard in gemeenscha­ppelijke rubrieken ('Categories'). Je kunt voor de Fritzbox met niet al te veel moeite een eigen rubriek instellen:

sudo pico /etc/munin/munin.conf

Vervang dan home.yourhost.net door de domeinnaam die je in je LAN gebruikt, bijvoorbee­ld fritz.box. Zet daaronder de namen van de plug-ins en de Category waar de bijbehoren­de diagrammen onder gesorteerd moeten worden, bijvoorbee­ld 'fritz'. Munin maakt daarbij geen onderschei­d tussen grote en kleine letters.

[home.yourhost.net;server] address 127.0.0.1 use_node_name yes f rit z box_ con n e c t ion_ up time_ p y .

graph_category fritz

Gebruik voor de overige plug-ins ook hun bestandsna­men, maar hernoem de extensie .py in _py. Sla de wijziginge­n op en herstart Munin met sudo systemctl restart muninnode. Werk de plug-inconfigur­atie van de Munin-server bij als root:

 ??  ??
 ??  ?? Het TR-064-protocol moet je bij de Fritzbox zelf inschakele­n.
Het TR-064-protocol moet je bij de Fritzbox zelf inschakele­n.

Newspapers in Dutch

Newspapers from Netherlands