Na dann mal ran an den Speck … erstmal alles benötigte für unser Vorhaben installieren:
apt-get install mrtg mrtg-ping-probe rrdtool librrds-perl snmp snmpd snmp-mibs-downloader apache2 libapache2-mod-perl2 libnet-snmp-perl libgd-gd2-perl
Während der Installation fragt das Setup für MRTG ob die Config Datei nur mit Root beschreibbar sein soll oder von jedem, die antwort ist an sich egal, wir nehmen jedoch der Sicherheit Halber die Option mit root only zugriff.
Kommen wir zu den wichtigen Dingen der Konfiguration der gerade installierten Module … zuallererst haben wir hier den
Apache2 Webserver
Da dieser Läuft sollte auf port 80 auch bereits die Standard Seite vom Apache verfügbar sein, der in diesem Fall über die Config Struktur des Apache Servers aufklärt. Diese Seite können wir soweit ignorieren, wir müssen uns zunächst erstmal um die aktivierung von PERL über das CGI Paket kümmern:
a2enmod cgi service apache2 restart
Danach sollte man unter
/etc/apache2/sites-enabled/000-default.conf
Die Zeile “ Include conf-available/serve-cgi-bin.conf “ aktivieren ( # entfernen am Anfang )
Auch nach diesem Speichern ist ein beherzter neustart des Apache2 Services fällig.
im Prinzip ist es das auch schon für die Konfiguration für den Apache gewesen. Kommen wir also zu
MRTG und dem RRDtool
Zunächst ist es hilfreich den cronjob von MRTG anzupassen , von 5 auf 1 Minute:
nano /etc/cron.d/mrtg
*/1 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*WorkDir' /etc/mrtg.cfg | awk '{ print $NF }')" ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi
nano /etc/mrtg.cfg
Interval: 1
rm -r /var/mrtg/*.rrd
Die nächste Anpassung machen wir für den RRD Ordner als auch für die ganzen MRTG Config Files, hier werden also 2 neue Verzeichnisse benötigt.
mkdir /var/mrtg #für das rrd Verzeichnis mkdir /etc/mrtg #ffür die Config Dateien
Der Nächste Part bezieht sich auf die Einstellung von der
Routers2.cgi
Zunächst müssen wir die Routers2.cgi erstmal beziehen und dann auch noch installieren:
wget http://www.steveshipway.org/software/rrd/routers2-v2.23.tar.gz tar xfv routers2-v2.23.tar.gz cd routers2-v2.23/ perl install.pl
Während der Installation werden wir einige Fragen gefragt bezüglich pfaden auf dem RPI und anderen Dingen, der einfachheit halber habe ich die korrekten Einstellungen vornotiert:
Document root? /var/www/html CGI directory? /usr/lib/cgi-bin MRTG config directory? /etc/mrtg MRTG files [*.cfg]? RRD directory [/tmp]? /var/mrtg Perl executable [/usr/bin/perl]? Configuration file [/var/mrtg/routers2.conf]? Activate routingtable extensions [no]? 'usebigk' option [mixed]? no auth option [none]? Caching option [no]? Can I mail [no]? INSTALLING SOFTWARE Perl is : /usr/bin/perl MRTG files : /etc/mrtg/*.cfg RRD files : /var/mrtg Doc root : /var/www CGI bin : /usr/lib/cgi-bin Config file : /var/mrtg/routers2.conf Routingtable: INACTIVE Compact page: ENABLED Caching : DISABLED 'usebigk' : no Auth option : NONE Mail Steve : no Other options can be set later by modifying the Config file Continue to install [no]? yes
Nach der Installation ist noch die Anpassung der Routers2.cgi config notwendig:
nano /var/mrtg/routers2.conf
charset = utf-8 #Für korrekte Zeichenanzeige actuals = yes #Die Aktuellen Zahlen im Popup anzeigen defaulttarget = summary #Zusammenfassung zuerst anzeigen graphstyle = x3 #Das größte Bild anzeigen graphtype = w #Die Wochenanzeige per Default zeigen percentile = yes #Prozentuale Berechnung sorder = l2 l2D x3 x3D #Nur große Bilder anbieten showtotal = yes #Eine Gesammtlinie anzeigen compact = no #Es werden keine Kompakten Graphen angezeigt. daystart = 8 #Um einen Werktag hervorzuheben ( Startuhrzeit) dayend = 18 #Ditto ( Enduhrzeit ) windowtitle = Title #Hier kann der Seitentitel definiert werden bgcolour = #fffffff #Wenn das nicht eingegeben ist haben einige Graphen einen lilanen Hintergrund twinmenu = yes #ja da wir alle mit Widescreens heutzutage arbeiten showfindbox = no #ist deaktiviert da wir nicht soviele Geräte überwachen. 6hour = always #wird hinzugefügt durch uns damit die 6 Stunden anzeige freigeschaltet wird
Nun muss noch die Standard mrtg.cfg angepasst werden.
nano /etc/mrtg.cfg
#Directory in which the RRD files will be stored WorkDir: /var/mrtg #Tells MRTG to use RRD instead of its own log format LogFormat: rrdtool #To have multiple instances of MRTG running to immediately pass through all targets Forks: 4 #Use the configs in the mrtg subfolder (/etc/mrtg) Include: mrtg/*.cfg
Erster Testlauf ohne angebundene Geräte
Dann rufen wir mal testweise http://PiHole/cgi-bin/routers2.cgi auf, Zeigt das ganze eine Seite mit „no valid target is selected“ sind wir richtig und das Script funktioniert. da wir aber noch verifizieren wollen ob die Konfiguration soweit hinhaut rufen wir folgende Seite auf http://PiHole/cgi-bin/routers2.cgi?page=verify . Ist hier alles soweit in Ordnung ist das Grund Setup abgeschlossen ( Yay ).
Man könnte jetzt über viele Wege configurationen anlegen für neue Geräte, ich Persönlich wollte sowieso mrtg-ping-probe nutzen und verzichtete daher über snmp traps als auch den cfgmaker von MRTG, da dieser leider nicht die nötigen Einträge unterstützt hätte.
Im Nächsten Beitrag gehe ich auf das Verwendete MRTG Template für alle Clients ein.