Mrtg流量監(jiān)控
MRTG 流量分析
我們除了可以使用 Webalizer 來了解網(wǎng)頁(yè)內(nèi)容的使用情形外,網(wǎng)站管理者還必須知道目前網(wǎng)站頻寬是否足夠。如果您想要知道網(wǎng)站流量的使用情形,我們可以安裝 MRTG 這套軟件經(jīng)由網(wǎng)頁(yè)來監(jiān)看網(wǎng)絡(luò)流量。MRTG 會(huì)去收取 SNMP (Simple Network Management Protocol) 所產(chǎn)生的數(shù)據(jù),因此所要記錄的機(jī)器必須要安裝 SNMP。在你的主機(jī)上安裝 MRTG 后,你不僅可以收集自己的流量數(shù)據(jù),也可以收集局域網(wǎng)絡(luò)上其它可以接收到的 SNMP 數(shù)據(jù)。
安裝 SNMP
在安裝 MRTG 之前,我們先使用 ports 來安裝 SNMP:
- # cd /usr/ports/net-mgmt/net-snmp
- # make install clean
安裝完成后,我們必須要先新增一個(gè)可以讀取 SNMP 信息的 community name。所謂的 community name 是一個(gè)明碼的字符串,我們可以將它視為 management station 和 agent 之間的密碼,是 MRTG 和 net-SNMP 溝通時(shí)必須要先傳送的字符串。我們可以依不同的網(wǎng)域或主機(jī)給予不同的權(quán)限,依 community name 的設(shè)定來決定不同權(quán)限。
一個(gè)網(wǎng)絡(luò)組件可以有多個(gè) community name,一般 SNMP Agent 所預(yù)設(shè)公開的 community name 是 public。我們不一定要將 community name 設(shè)定為 public,因?yàn)?public 是一般 SNMP 的默認(rèn)值,為了安全的問題,我們不將它設(shè)為 public。這里我們將設(shè)定 community name 為 mrtg,而且只有 read only 的權(quán)限。
要設(shè)定 community name 請(qǐng)先新增一個(gè)文字文件 /usr/local/share/snmp/snmpd.conf 并加入下列設(shè)定:
- rocommunity mrtg
- syslocation Office
- syscontact
上述設(shè)定中,mrtg 為只讀的 community name,Office 是您機(jī)器所在位置,而 syscontact 所接的字符串是您的 Eamil。另外,我們還必須在 /etc/rc.conf 中加入下列這一行:
- snmpd_enable="YES"
接著,請(qǐng)使用下列指令啟動(dòng) SNMP:
- # /usr/local/etc/rc.d/snmpd.sh start
安裝 MRTG
我們使用 ports 來安裝 MRTG:
- # cd /usr/ports/net-mgmt/mrtg
- # make install
接著要產(chǎn)生 MRTG 的設(shè)定檔
- # cd /usr/local/etc/mrtg
- # rehash
- # cfgmaker
- >mrtg.cfg
這里的 mrtg 是我們?cè)诎惭b net-snmp 時(shí)所設(shè)定的值。如果你使用錯(cuò)的 community name,你可能會(huì)從要記錄的設(shè)備上得到錯(cuò)誤響應(yīng)。而 alexwang.com 是你所要記錄的主機(jī)位置。mrtg.cfg 就是所要產(chǎn)生的設(shè)定檔名。
如果您想要記錄多個(gè)主機(jī),只要在 cfgmaker 時(shí)多加入主機(jī)名稱即可,例如:
- # cfgmaker
- >mrtg.cfg
這樣就會(huì)同時(shí)記錄上面二臺(tái)主機(jī)的流量了。
產(chǎn)生基本的設(shè)定檔后,我們可以再編輯剛才產(chǎn)生的設(shè)定檔 ee mrtg.cfg,在檔案開頭的部份加入一些客制化的設(shè)定:
# 如果要使用中文的 MRTG 則加入下面這一行
- Language: big5
# 設(shè)定你的 MRTG 要放在哪個(gè)目錄,應(yīng)該要放在網(wǎng)頁(yè)可以
# 連結(jié)到的地方,我的網(wǎng)頁(yè)根目錄是 /home/www,所以我將
# MRTG 放在下面的目錄。
- WorkDIR:/home/www/mrtg
# 預(yù)設(shè)的 MRTG 所產(chǎn)生的圖時(shí)間是由右到左
# 我喜歡由左到右,故加入下面這一行
- Options[_]: growright
接著請(qǐng)建立一個(gè)你在 mrtg.cfg 中設(shè)定的 WorkDIR 的目錄:
- # mkdir /home/www/mrtg
然后使用指令 indexmaker 來建立 MRTG 的首頁(yè):
- # indexmaker -title '流量統(tǒng)計(jì)' -output /home/www/mrtg/index.html mrtg.cfg
這里的參數(shù) -title 是該 index.html 檔的 title,而 -output 就是要輸出的檔案位置,預(yù)設(shè)是stdio(通常指的是屏幕) 。
輸出的檔案 index.html 你也可以使用其它的網(wǎng)頁(yè)編輯軟件再去修改美化它。接下來要將 MRTG 的一些圖片文件復(fù)制到 mrtg 的目錄里:
- # cd /usr/ports/net-mgmt/mrtg/work/mrtg*
- # cd images
- # cp * /home/www/mrtg/
最后執(zhí)行 MRTG:
- # /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
第一次執(zhí)行上面的指令可能會(huì)有一些錯(cuò)誤訊息,不要理它,因?yàn)槭堑谝淮螆?zhí)行 mrtg,所沒有一些舊的圖,只要再多執(zhí)行幾次就好了。沒問題之后,使用指令 crontab -e 來讓上述指令每 5 分鐘執(zhí)行一次,加入下面這一行:
- */5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
最后別忘了移除安裝過程的暫存檔:
- # cd /usr/ports/net/mrtg/
- # make clean
Mrtg流量監(jiān)控配置完成了!
【編輯推薦】
如何在FreeBSD下用MRTG監(jiān)測(cè)網(wǎng)路流量