MRTG網路流量統計一直是很多網管的好工具,除了網路流量外,
還能應用在「CPU、RAM」負載上,這類大多都應用在 Linux平台
上。第一次實作應用在 Windows平台,果然吃了好幾記悶棍....

【實做平台】
系統〈MRTG〉:Windows 2003 Server SP2 + IIS + ISA Server 2004
系統〈client〉:Windows 2003 Server SP1
網路:3 張網卡〈不同網段〉
【所需軟體】
1.ActivePerl v5.8.8.820
官方網站:
http://www.ActiveState.com/ 軟體下載:
http://0rz.tw/3c2L8 2.Mrtg-2.15.2
官方網站:
http://oss.oetiker.ch/mrtg/ Windows :
http://oss.oetiker.ch/mrtg/doc/mrtg-nt-guide.en.html 軟體下載:
http://oss.oetiker.ch/mrtg/pub/mrtg-2.15.2.zip3.Windows Server 2003 Resource Kit Tools
官方網站:
http://www.microsoft.com 軟體下載:
http://0rz.tw/f12ID 【軟體安裝】
※ 安裝 IIS 服務
1.控制台 → 新增或移除程式 → 新增/移除 Windows 元件

2.點選「Application Server」 → 詳細資料

3.勾選「網際網路資訊服務(IIS)」 → 確定
同時會勾選起 「啟用網路 COM+」 存取 服務

※ 安裝 SNMP 服務
1.控制台 → 新增或移除程式 → 新增/移除 Windows 元件
2.點選「Management and Monitoring Tools」 → 詳細資料

3.勾選「Simple Network Management Protocol」 → 確定

※ 安裝 ActivePerl v5.8.8.820 〈安裝會有點久,請耐心等待至安裝結束〉
1.安裝採預設安裝即可。
2.檢查 C:\Perl\bin 是否已在系統路徑。

3.如果沒有,請開啟 控制台 → 系統 → 進階 → 環境變數,
編輯「Path」,加入「C:\Perl\bin」。
※ 解壓縮 mrtg-2.15.2.zip,至 C:\mrtg-2.15.2
※ 安裝 Windows Server 2003 Resource Kit Tools 〈預設安裝即可〉
※ 安裝完成後,請先重開機。
【組態設定】
※ 設定 SNMP 服務
1.開啟 控制台 → 系統管理工具 → 服務 → SNMP Service → 右鍵「內容」

2.點選「安全性」 → 新增
3.輸入「public」、選擇「唯讀」 → 新增

註:假若您有多張網卡,為了避免發生 SNMP 錯誤,請手動新增網卡IP
4.點選「從下列主機接受 SNMP 封包(T)」→ 新增 → IP

註:請將欲偵測的主機IP都加上,避免出現 SNMP 錯誤。
※ IIS 新增 MRTG 安裝路徑
1.開啟 CMD 提示命令列,輸入「cd C:\Inetpub\wwwroot\」
2.輸入「md mrtg」

※ ISA Server 設定,開啟 SNMP 服務。
1.開啟 ISA Server → Firewall Policy → New → Access Rule
2.輸入「SNMP」 → 下一步

3.點選「Allow」 → 下一步

4.This rule applies to: → 選擇「Selected protocols」 → Add
5.點選「All Protocols」 → 點選「SNMP」 → Add → 下一步

6.Add → Networks → 點選「Local Host」 → 下一步

7.Add → Networks → 點選「Local Host」、「Internal」、「External」→下一步

8.All Users → 下一步

9.完成

10.最後別忘了「套用」至 Firewall Policy 的規則。
註:防火牆設定須將內外規則設定正確,外對內設定就不多做示範。
※ MRTG 設定
1.開啟 CMD 提示命令列,輸入「cd mrtg-2.15.2\bin」
2.輸入「perl cfgmaker public@x.x.x.x --global "WorkDir: C:\InetPub\wwwroot\mrtg" --output mrtg.e1.wan.cfg」
「perl cfgmaker public@x.x.x.x --global "WorkDir: C:\InetPub\wwwroot\mrtg" --output mrtg.peaceisa.wan.cfg」
「perl cfgmaker public@x.x.x.x --global "WorkDir: C:\InetPub\wwwroot\mrtg" --output mrtg.peaceisa.lan.cfg」

註:﹝x.x.x.x﹞ 欲偵測的網卡 IP 位置
﹝C:\InetPub\wwwroot\mrtg﹞ MRTG 網頁存放的位置
若無任何錯誤訊息表示,您已順利完成該步驟。
3.編輯剛產生的 mrtg.e1.wan.cfg、mrtg.peaceisa.wan.cfg、mrtg.peaceisa.lan.cfg ﹝C:\mrtg-2.15.2\bin\﹞
## 取消註解,圖示由右往左,單位為 bits
Options[_]: growright, bits
## 新增,參數顯示中文
Language: big5
## 新增,背景作業
RunAsDaemon: yes
4.產生網頁 index.html 檔
輸入「perl indexmaker \
--output C:\InetPub\wwwroot\mrtg\index.html \
--title=CG.Traffic.Analysis mrtg.e1.wan.cfg mrtg.peaceisa.wan.cfg mrtg.peaceisa.lan.cfg」

在 MS-DOS 提示命令列 請將指令連起來執行。
5.繪製圖檔〈執行一直到沒有錯誤為止〉
輸入「perl mrtg mrtg.e1.wan.cfg」
輸入「perl mrtg mrtg.peaceisa.wan.cfg」
輸入「perl mrtg mrtg.peaceisa.lan.cfg」

6.MRTG 五分鐘畫一次流量
輸入「start /Dc:\mrtg-2.15.2\bin wperl mrtg --logging=eventlog mrtg.e1.wan.cfg」
輸入「start /Dc:\mrtg-2.15.2\bin wperl mrtg --logging=eventlog mrtg.peaceisa.wan.cfg」
輸入「start /Dc:\mrtg-2.15.2\bin wperl mrtg --logging=eventlog mrtg.peaceisa.lan.cfg」
7.登入系統後自動執行以每五分鐘計算流量
mrtg.bat
start /Dc:\mrtg-2.15.2\bin wperl mrtg --logging=eventlog mrtg.e1.wan.cfg
start /Dc:\mrtg-2.15.2\bin wperl mrtg --logging=eventlog mrtg.peaceisa.wan.cfg
start /Dc:\mrtg-2.15.2\bin wperl mrtg --logging=eventlog mrtg.peaceisa.lan.cfg
將 mrtg.bat 放置啟動區即可!
8.讓網頁支援繁體中文顯示
編輯網頁,改成這段「<meta http-equiv="content-type" content="text/html; charset=big5" >」,即可!
9.IIS 支援 index.html 讀取
※ 開啟 控制台 → 系統管理工具 → 網際網路資訊服務 (IIS) 管理員
※ 點選 網站 → 預設網站 → mrtg → 按「右鍵」→ 內容

※ 文件 → 新增 → 「index.html」 → 確定 → 套用 → 確定

註:若 ISA Server 沒有開放連結 IIS,別忘加筆規則,即可透過外部查看流量。
※ 自訂 Windows 服務
前面提到 mrtg.bat 登入才會自動執行 MRTG 偵測服務,假若碰到電腦重開,
MRTG 則立即失效,可透過自訂 Windows 服務的方式,讓 MRTG 再重開機後,
仍正常偵測。
註:若您要使用這項服務, mrtg.bat 記得先從啟動區移除。
Windows Server 2003 Resource Kit Tools 裡有附上這兩支小工具。
〈InstrSrv.exe 可從 Windows 安裝或移除系統服務,
SrvAny.exe 任何 Windows 應用程式作為服務程式執行。〉
1.將 srvany.exe & instsrv.exe Copy 至 MRTG 目錄 ﹝c:\mrtg-2.15.2\bin﹞
2.新增 mrtg.reg 的登錄檔
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters]
"Application"="C:\\Perl\\bin\\wperl.exe"
"AppParameters"="C:\\mrtg-2.15.2\\bin\\mrtg --logging=eventlog c:\\mrtg-2.15.2\\bin\\mrtg.e1.wan.cfg"
"AppDirectory"="C:\\mrtg-2.15.2\\bin"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtgpiw\Parameters]
"Application"="C:\\Perl\\bin\\wperl.exe"
"AppParameters"="C:\\mrtg-2.15.2\\bin\\mrtg --logging=eventlog c:\\mrtg-2.15.2\\bin\\mrtg.peaceisa.wan.cfg"
"AppDirectory"="C:\\mrtg-2.15.2\\bin"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtgpil\Parameters]
"Application"="C:\\Perl\\bin\\wperl.exe"
"AppParameters"="C:\\mrtg-2.15.2\\bin\\mrtg --logging=eventlog c:\\mrtg-2.15.2\\bin\\mrtg.peaceisa.lan.cfg"
"AppDirectory"="C:\\mrtg-2.15.2\\bin"
3.MS-DOS 提示命令列 新增服務名稱
輸入「c:\mrtg-2.15.2\bin\instsrv.exe mrtge1w c:\mrtg-2.15.2\bin\srvany.exe」
輸入「c:\mrtg-2.15.2\bin\instsrv.exe mrtgpiw c:\mrtg-2.15.2\bin\srvany.exe」
輸入「c:\mrtg-2.15.2\bin\instsrv.exe mrtgpil c:\mrtg-2.15.2\bin\srvany.exe」

註:三筆自訂服務,為的是要處理三個不同網段的流量偵測,只需要將服務另外命名,
且注意 srvany.exe & instsrv.exe 存放的位置,看到下面畫面表示服務新增成功。
4.執行 mrtg.reg 登錄檔

註:切記!必須按照步驟先使用 instsrv.exe 新增自訂服務,
再新增登錄檔,否則會有錯誤訊息出現。
5.啟動自訂服務
※ 控制台 → 系統管理工具 → 服務

※ 啟用服務

6.若想移除這些自訂服務,請在 MS-DOS 提示命令列 移除
輸入「c:\mrtg-2.15.2\bin\instsrv.exe mrtge1w remove」
輸入「c:\mrtg-2.15.2\bin\instsrv.exe mrtgpiw remove」
輸入「c:\mrtg-2.15.2\bin\instsrv.exe mrtgpil remove」
註:移除時,請特別注意,instsrv.exe 也可以刪除某些服務,使用時請特別小心,
別將其他系統服務刪除。
【實作筆記】
以上教學透過Windows實作MRTG,跟Linux實作差不多,假若說有什麼要特別注意的地方,
應該是SNMP服務的安全性設定,不管是統計流量端或被偵測端,記得要「public」、「從
下列主機接受 SNMP 封包」設定再次確認。否則,可能在一開始安裝MRTG就會出現錯誤訊
息了。假若有防火牆的限制,也別忘了開啟對內、對外的規則,再加上index.html 編輯,
就能做出適合瀏覽的流量統計。
【Windows 2003 Server MRTG PDF Download】
Download :
Windows 2003 Server MRTG PDF【參考資料】
MRTG 官網‧
http://oss.oetiker.ch/mrtg/doc/mrtg-nt-guide.en.html鳥哥私房菜‧
http://linux.vbird.org/linux_security/old/04mrtg.phpEETo工作坊‧
http://www.eeto.net/MrtgSnmp-MS/MAX.TAIWAN‧
http://max.idv.tw/wordpress/archives/2004/04/06/16/註:以上教學是小弟的實作教學,提供 PDF讓大家參考使用,說
不定,隔個一兩年這份教學又無效,這也不一定,確定的是
目前假若應用在 Winodws平台應該是沒有太大的問題才是!
Paul
--
