Mit dem Programm MRTG (Multi Router Traffic Grapher) lassen sich der zeitliche Verlauf von Netzwerkverkehr, CPU-Auslastung, Memory-Auslastung u.s.w. grafisch darstellen. Dazu fragt das Programm in einem festgelegten Intervall eine oder mehrere Schnittstellen auf einem oder mehreren Netzknoten über SNMP ab. Mit Hilfe von Skripten (Shell, Perl, u.s.w.) sind aber darüber hinaus weitere Statistiken möglich.
Um MRTG auf einer DiskStation 209 von Synology einzurichten, ist wie folgt vorzugehen:
- Der SNMP-Dienst muss auf den abzufragenden Netzknoten eingerichtet werden.
- Das Paket mrtg muss auf der NAS installiert werden. (z.B. über IPKG install mrtg)
- Die Konfigurationsdatei /opt/etc/mrtg.conf mit entsprechender Konfiguration muss erstellt werden.
(Im Tutorial von net-snmp gibt es einiges nützliches dazu!) - Evtl. Skripte für weitere Monitore erstellen.
- Eine 3rd Patry App kann eingerichtet werden, um hierüber schnell auf die Statistiken zugreifen zu können.
Wie das im einzelnen funktioniert ist im Forum-Beitrag vom Synology-Forum sehr gut und ausführlich beschrieben.
Auf meiner NAS werden aktuell folgende Statistiken abgefragt:
- DS209:
- Trafic
- CPU
- Load
- Memory
- DS101j:
- Traffic
- CPU
- Load
- Memory
- Fritz-Box:
- Traffic
- Datenrate
Hier die entsprechende Diagramm Index-Seite dazu:
Um die Daten abzufragen habe ich folgende mrtg.conf Datei benutzt:
### Global Config Options WorkDir: /usr/syno/synoman/phpsrc/mrtg ### Global Defaults EnableIPv6: no WriteExpires: Yes Language: german RunAsDaemon: Yes Interval: 5 LoadMIBs: /opt/share/snmp/mibs/HOST-RESOURCES-MIB.txt ### Traffic DiskStation209 Target[localhost]: 2:public@localhost: SetEnv[localhost]: MRTG_INT_IP="192.168.178.2" MRTG_INT_DESCR="eth0" Options[localhost]: growright,nobanner MaxBytes[localhost]: 12500000 WithPeak[localhost]: wmyd Title[localhost]: Traffic DiskStation209 PageTop[localhost]: <h1>Traffic DiskStation209</h1> ### CPU DiskStation209 Target[localhost.cpu]: .1.3.6.1.4.1.2021.11.52.0&.1.3.6.1.4.1.2021.11.50.0:public@localhost PageTop[localhost.cpu]: <H1>CPU DiskStation209</H1> Options[localhost.cpu]: nopercent,growright,noinfo,nobanner Title[localhost.cpu]: CPU DiskStation209 MaxBytes[localhost.cpu]: 100 Unscaled[localhost.cpu]: ymwd YLegend[localhost.cpu]: CPU Load ShortLegend[localhost.cpu]: % LegendI[localhost.cpu]: CPU System: LegendO[localhost.cpu]: CPU User: ### LoadAvarage DiskStation209 Target[localhost.load]: .1.3.6.1.4.1.2021.10.1.3.2&.1.3.6.1.4.1.2021.10.1.3.2:public@localhost PageTop[localhost.load]: <H1>Load Avarage DiskStation209</H1> Options[localhost.load]: nopercent,growright,gauge,noinfo,nobanner Title[localhost.load]: Load Avarage DiskStation209 MaxBytes[localhost.load]: 100 kMG[localhost.load]: ,M,G,T,P,X YLegend[localhost.load]: Load Avarage ShortLegend[localhost.load]: LegendI[localhost.load]: Load Avarage: LegendO[localhost.load]: ### FreeMemory DiskStation209 Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost PageTop[localhost.mem]: <H1>Free Memory DiskStation209</H1> Options[localhost.mem]: nopercent,growright,gauge,noinfo,nobanner Title[localhost.mem]: Free Memory DiskStation209 MaxBytes[localhost.mem]: 1000000 kMG[localhost.mem]: k,M,G,T,P,X YLegend[localhost.mem]: bytes ShortLegend[localhost.mem]: bytes LegendI[localhost.mem]: Free Memory: LegendO[localhost.mem]: Legend1[localhost.mem]: Free memory, not including swap, in bytes ### Traffic DiskStation101j Target[diskstation101j]: 3:[email protected]: SetEnv[diskstation101j]: MRTG_INT_IP="192.168.178.3" MRTG_INT_DESCR="eth0" Options[diskstation101j]: growright,nobanner MaxBytes[diskstation101j]: 12500000 WithPeak[diskstation101j]: wmyd Title[diskstation101j]: Traffic DiskStation101j PageTop[diskstation101j]: <h1>Traffic DiskStation101j</h1> ### CPU DiskStation101j Target[diskstation101j.cpu]: .1.3.6.1.4.1.2021.11.52.0&.1.3.6.1.4.1.2021.11.50.0:[email protected] PageTop[diskstation101j.cpu]: <H1>CPU DiskStation101j</H1> Options[diskstation101j.cpu]: nopercent,growright,noinfo,nobanner Title[diskstation101j.cpu]: CPU DiskStation101j MaxBytes[diskstation101j.cpu]: 100 Unscaled[diskstation101j.cpu]: ymwd YLegend[diskstation101j.cpu]: CPU Load ShortLegend[diskstation101j.cpu]: % LegendI[diskstation101j.cpu]: CPU System: LegendO[diskstation101j.cpu]: CPU User: ### LoadAvarage DiskStation101j Target[diskstation101j.load]: .1.3.6.1.4.1.2021.10.1.3.2&.1.3.6.1.4.1.2021.10.1.3.2:[email protected] PageTop[diskstation101j.load]: <H1>Load Avarage DiskStation101j</H1> Options[diskstation101j.load]: nopercent,growright,gauge,noinfo,nobanner Title[diskstation101j.load]: Load Avarage DiskStation101j MaxBytes[diskstation101j.load]: 100 kMG[diskstation101j.load]: ,M,G,T,P,X YLegend[diskstation101j.load]: Load Avarage ShortLegend[diskstation101j.load]: LegendI[diskstation101j.load]: Load Avarage: LegendO[diskstation101j.load]: ### FreeMemory DiskStation101j Target[diskstation101j.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:[email protected] PageTop[diskstation101j.mem]: <H1>Free Memory DiskStation101j</H1> Options[diskstation101j.mem]: nopercent,growright,gauge,noinfo,nobanner Title[diskstation101j.mem]: Free Memory DiskStation101j MaxBytes[diskstation101j.mem]: 1000000 kMG[diskstation101j.mem]: k,M,G,T,P,X YLegend[diskstation101j.mem]: bytes ShortLegend[diskstation101j.mem]: bytes LegendI[diskstation101j.mem]: Free Memory: LegendO[diskstation101j.mem]: Legend1[diskstation101j.mem]: Free memory, not including swap, in bytes ### Traffic fritz.box Target[fritz.box]: `/opt/bin/upnp2mrtg` Options[fritz.box]: growright,nobanner Title[fritz.box]: Traffic Fritz.Box MaxBytes1[fritz.box]: 752000 MaxBytes2[fritz.box]: 72000 WithPeak[fritz.box]: wmyd PageTop[fritz.box]: <H1>Traffic FritzBox</H1> ### DateRate fritz.box Target[fritz.box.rate]: `/opt/bin/upnp2mrtg -R` Options[fritz.box.rate]: growright,nobanner Title[fritz.box.rate]: Datenrate Fritz.Box MaxBytes1[fritz.box.rate]: 752000 MaxBytes2[fritz.box.rate]: 72000 YLegend[fritz.box.rate]: Bit per Second WithPeak[fritz.box.rate]: wmyd PageTop[fritz.box.rate]: <H1>Datenrate FritzBox</H1>
Dabei werden die Daten auf den Synology DiskStations per SNMP angefragt. Da die Fritz-Box aber keine Abfrage per SNMP unterstützt habe ich upnp2mrtg benutzt.
Dies ist ein kleines Perl-Script, welches die Daten der Fritz-Box per UPNP bzw. per Web-Service abfragt und für mrtg aufbereitet.
Gefunden habe ich das auf der Seite von Michael Tomschitz.
Hier meine angepasste Version von upnp2mrtg
diese habe ich um die Option -R geändert, so das ich auch die Datenrate mit monitoren kann.
Damit das Monitoring kontinuierlich läuft habe ich die Option „RunAsDaemon: Yes“ in der mrtg.conf benutzt.
Somit erspare ich mir den cron-Job (wie im Forum-Artikel angegeben – was im übrigen mit dem upnp2mrtg sowieso nicht funktionierte).
Wenn man will, kann man das ganze dann um viele weitere Monitore erweitern um sein Heimnetzwerk zu monitoren.
Nun viel Spaß beim nachmachen!