現在讓我們深入一點再進一步:幫Synology NAS裝上MRTG
先解釋一下什麼是MRTG?(圖片借自官網)
MRTG = Multi Router Traffic Grapher
照字上面的意思來看就是多重路由流量統計圖
想要進一步了解可見wiki和官網
接下來說明一下在安裝MRTG要做哪些準備工作…
由wiki可知MRTG必須使用SNMP(Simple Network Management Protocol)協定
而且是用Perl寫成的,同時還會使用到zlib、gd、png、jpeg等函式庫
因為MRTG是透過SNMP協定來監控流量的
但是Synology NAS本身並沒有內建SNMP和其它函式庫的功能
所以我們要自己幫它裝上去
1.安裝SNMP
ipkg install net-snmp
(不知道這行是做啥的請先回去看初學者入門之卷

同時會一起安裝openssl
目前只要你的Synology NAS使用的CPU是Marvell mv5281 ARM
DS107+、DS207+、CS407、RS407
這四台裝了SNMP之後就會導致當機

很遺憾這四台Synology NAS目前無法改MRTG

2.正式開始安裝MRTG
ipkg install mrtg
這個步驟要多花點時間,因為除了MRTG本身之外還會跟著一起安裝下面這堆必要的函式庫
expat
fontconfig
freetype
gconv-modules
gdbm
libdb
libgd
libjpeg
libpng
mrtg
perl
zlib
安裝完成後會出現下面這段訊息:
MRTG is now installed, you now need to make a config file
for it and set up a cron job to run it.
意思是說MRTG已經安裝完成了,只是你還須要設定cron job
Linux的cron job差不多相當於windows系統的"啟動"(一開機就會跟隨系統啟動的服務)
3.決定MRTG所產生的網頁和mrtg.cfg要放在哪…
這一步的做法基本上可以分為兩種:
第一種比較簡單,開啟Synology NAS本身所提供的Web Station
把MRTG產生的網頁放在web這個共用資料夾底下,或是在web底下再建個MRTG目錄也行
缺點是任何人只要知道你的外部網址通通都會看光光
例如:http://yourdomain.dyndns.org/mrtg/←隨便一個人只要打上這串都看的到你的MRTG流量統計
還有要記得設定web的權限,以免其它的user把你的MRTG給刪了
另外若是要和DSM管理介面整合會發生網頁開不起來的問題?!(個人猜測)
這種裝法網路上很多了,我再寫一遍好像沒啥意義又是老調重談

所以後面我會以另一種為主繼續寫下去,但只是路徑不一樣而已,其它大同小異
若是有問題歡迎各位回文一起討論
第二種比較麻煩,不開Web Station,把MRTG產生的網頁放在/volume1以外一般user看不到的目錄
好處是不用在意權限的問題,因為只有管理者能用SSH登入才可以修改
而且確定可以和DSM管理介面整合(初學者入門之卷就預告過了)

首先建立目錄
mkdir /usr/syno/synoman/webman/3rdparty/mrtg
cfgmaker [email protected] > /usr/syno/synoman/webman/3rdparty/mrtg/mrtg.cfg
上面的192.168.1.100請記得自己換成你的Synology NAS在LAN當中所用的IP位址
後面的/usr/syno/synoman/webman/3rdparty/mrtg是我自己的安裝目錄
會裝在這裡是因為第三方應用程式的設定檔也放在這裡
若是你裝在別的目錄請記得改成你自己的安裝目錄(後面的步驟也是)
4.用上一卷裝好的nano來編輯剛產生的mrtg.cfg
首先切換到你產生mrtg.cfg的目錄
cd /usr/syno/synoman/webman/3rdparty/mrtg
nano mrtg.cfg
找到WorkDir這行,是for UNIX的,記得前面註解的#要刪掉
改成你安裝的目錄,下面是我的
WorkDir:/usr/syno/synoman/webman/3rdparty/mrtg(這個顏色表示設定檔裡要修改的部分,後面也是一樣)
注意不可以有空格,不然後面會出錯
接下來請找到Interface 2這段,注意不是Interface 1←這是系統本身的software loopback

對照圖片看比較方便
MaxBytes這邊是設定最大值(單位是Byte),上面圖中的最大值是50MB,就填入50000000
Title和PageTop是顯示在最上面的標題,不改也沒關係,只是看起來感覺不太好而已

再下面的System:可以填上自己NAS的名稱,例如我的Synology DS209+
Maintainer:改不改都沒關係,不過填上自己的名字看起來還是比較有成就感

Max Speed:我只填50MByte/s…反正就算Gigabit LAN傳輸也不太可能跑超過這速度
5.讓MRTG產生圖形
/opt/bin/mrtg /usr/syno/synoman/webman/3rdparty/mrtg/mrtg.cfg
沒有問題的話你會看到MRTG目錄底下多出了192.168.1.100_2-xxxxx.png一堆圖片
有出現錯誤訊息的話就表示你的mrtg.cfg有問題須要修改,看是第幾行有問題回去改吧!
6.建立MRTG的首頁
indexmaker /usr/syno/synoman/webman/3rdparty/mrtg/mrtg.cfg > /usr/syno/synoman//webman/3rdparty/mrtg/index.html
7.設定每5分鐘自動更新MRTG
nano /etc/crontab
在最後面一行加上:
*/5 * * * * root /opt/bin/mrtg /usr/syno/synoman/webman/3rdparty/mrtg/mrtg.cfg
必須用Tab來隔開,不可使用空白
corntab這個檔案就是用來設定Linux系統的例行性任務
標準的Linux系統每分鐘會去讀取一次crontab的內容,也因為如此最小更新間隔單位是"分鐘"
無法做到像DD-WRT那樣子即時更新
Synology NAS是把crontab載入記憶體裡面,所以改完之後請重新啟動crond服務
/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh start
8.和DSM管理介面整合
我的教學文最大的重點就在這邊啦!

首先請看Synology官方的第三方應用程式安裝指南
cd /usr/syno/synoman/webman/3rdparty/mrtg
切換到安裝目錄底下
nano application.cfg
新增application.cfg這個設定檔,用來設定在DSM管理介面當中所看到的
以下是我的設定檔內容:
text = MRTG
description = Multi Router Traffic Grapher
description_cht = 網路流量統計圖
type = embedded
icon_16 = icon_16.png
icon_32 = icon_32.png
path = /webman/3rdparty/mrtg/index.html
adminonly = true
text是出現在"其它應用程式"底下的名稱
description是英文DSM滑鼠游標停在圖示上會出現的名稱,後面加上_cht表示中文名稱
想要加入其它語言的話可見官方的PDF依此類推
type有embedded和popup兩種;embedded是像我一樣直接在右邊顯示,popup則是另開新網頁
icon_16是顯示在左邊樹狀功能表中的圖示

icon_32是顯示在首頁中我的最愛那邊的圖示

以上兩者請使用16*16和32*32的PNG圖示
注意有背景透明最好,不然看起來好像貼一塊狗皮膏樂在DSM上,整體的美感都放破壞掉了

在PC上先圖把圖片做好丟到File Staion的public共用資料夾底下
cp /volume1/public/*.png /usr/syno/synoman/webman/3rdparty/mrtg
上面的指令把圖示複製過去,一定要放在3rdparty/mrtg底下不然DSM看不到圖示
path這行就是告訴DSM你的網頁放在哪…我裝在/usr/syno/synoman/底下和DSM一樣
所以只要寫後面不一樣的部分就行了
adminonly是設定只有admin管理者可以看到我們改上去的MRTG
要讓其它user也看的到的話改成false即可,預設值即為true,不想讓它user看的話這行不寫也沒關係
在application.cfg當中可以指定port,但我試過設定為80就會無法正常顯示
所以一開始我才不想開Web Station裝在/volume1/web底下

就是怕做到這邊整合進DSM會出問題
問過官方這是DSM天生的限制,因為是和DSM整合,所以只能用port 5000覽瀏
以後若是開放可以讓我們自己定義DSM管理介面所用的port的話,應該就不會有這樣的問題產生
沒有問題的話大家應該都可以跟我一樣把MRTG整合進DSM管理介面了
最後附上我使用的圖示檔給大家按此下載
祝大家改機愉快
謝謝收看,PC與NAS大家都是好朋友
