MRTG auf einer NAS DS209 mit Fritz-Box Monitor

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 funktionert 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:public@192.168.178.3:
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:public@192.168.178.3
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:public@192.168.178.3
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:public@192.168.178.3
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 aufgereitet.
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!

Kommentar verfassen

This site uses Akismet to reduce spam. Learn how your comment data is processed.