Auch, wenn einem der Name MRTG nicht geläufig ist, eine dieser Grafiken hat eigentlich jeder schon einmal irgendwo gesehen. MRTG, der Multi Router Traffic Grapher, wertet Traffic (und zich andere Sachen) über SNMP aus und erstellt hübsche Grafiken.
Was liegt also näher, als MRTG auf meine Fritzbox Fon WLAN 7270 anzusetzen? Die Fritzbox unterstützt kein SNMP! Allerdings kann sie Universal Plug and Play (UPnP). Über diesen Ansatz fand ich zu einer Anleitung, die UPnP zusammen MRTG benutzt, um den Traffic einer Fritzbox auszuwerten. Genau das wollte ich ja. Dort wurde ein Perl-Script namens upnp2mrtg verwendet, um UPnP für MRTG lesbar zu machen. Leider hat diese Anleitung bei mir nicht funktioniert. Allerdings fand ich einen Blogeintrag zu einem Port des Scripts in Python. Und siehe da, dieses Script funktionierte bei mir!
Doch der Reihe nach:
- Benötigt werden: Eine Fritzbox (das Script funktioniert auch bei Netcologne Routern), MRTG für Windows, ActivePerl für Windows, ActivePython für Windows, Cygwin, ng-upnp2mrtg. Mein angepaßtes ng-upnp2mrtg und meine angepaßte mrtg.cfg kannst du direkt hier downloaden.
- MRTG für Windows nach
c:mrtg
entpacken. - ActivePerl nach
c:perl
installieren. - ActivePython nach
c:python
installieren. - Cygwin nach
c:cygwin
installieren. - ng-upnp2mrtg.py und mrtg.cfg nach
c:mrtgbin
kopieren und ggf. anpassen (Siehe unten). - MRTG und Perl mit
c:perlbinwperl.exe mrtg mrtg.cfg
im Verzeichnisc:mrtgbin
in der DOS-Box („Eingabeaufforderung“, Start -> ausführen -> cmd) testen. - Python mit
ng-upnp2mrtg.py --list
im Verzeichnisc:mrtgbin
in der DOS-Box testen (Siehe rechts). - Wenn alles funktioniert kann das Script mit
start /Dc:mrtgbin wperl mrtg --logging=eventlog mrtg.cfg
in der DOS-Box in den Hintergrund verbannt werden. Dazu mußRunAsDaemon: yes
in der mrtg.cfg stehen. Gestoppt werden kann das Ganze, indem man den Taskwperl
über den Taskmanager beendet. - Wenn die HTML Datei und die Grafiken erstellt werden und gut aussehen, dann wars das 😉
Anpassungen:
In der Datei mrtg.cfg muß eigentlich nur WorkDir:
angepasst werden. In diesem Verzeichnis landet die HTML-Datei und die Grafiken, die MRTG erstellt. Zusätzlich können natürlich der Titel und die Überschrift geändert werden:
Title[fritzbox]: FritzBox
PageTop[fritzbox]: <H1>FritzBox (192.168.1.1)</H1><:
Außerdem kann die „Höchstgeschwindigkeit“ angegeben werden. Bei mir sind das 32 MBit/2,5 MBit Kabel.
MaxBytes1[fritzbox]: 3500000
MaxBytes2[fritzbox]: 256000
Die Datei ng-upnp2mrtg.py habe ich minimal angepasst und eigentlich muß maximal die IP-Adresse in Zeile 20 geändert werden:
DEFAULT_HOST = "192.168.1.1"
Außerdem habe ich die Ausgabe der Uptime (Zeile 276) mal etwas ansprechender gemacht:
uptime_str = "%s Tagen, %d Stunden, %d Minuten und %02d Sekunden" % dhms(uptime)
Das wars dann. Es sollte es in etwa so aussehen, wie das Bild oben rechts.