簡介
Mrtg (Multi Router Traffic Grapher,MRTG) 是一個監控網絡鏈路流量負載的工具軟件,它可以從所有運行SNMP協議的設備上(包括服務器、路由器、交換機等)抓取到信息,并自動生成包含PNG格式的圖形以HTML文檔方式顯示給用戶,如圖:
[center]
[/center]
準備工作
硬件環境
IP 系統版本 用途
10.0.0.1 Windows 2000 Professional MRTG管理工作站
10.0.0.2 Windows 2000 Server 被監控的服務器
軟件環境
軟件名稱 版本 下載地址
安裝路徑
MRTG 2.9.25 http://people.ee.ethz.ch/~oetiker/webtools/mrtg/
C:\Program Files\mrtg\
Active 5.8.0.805 http://www.activestate.com/Products/ActivePerl/
State C:\Perl\
Perl
SNMP文件 2000光盤自帶 http://www.ph4nt0m.net/down/snmp.rar
IPSecPol 2000資源包 http://www.ph4nt0m.net/down/ipsecpol.rar
C:\Program Files\Resource Kit\
Services 2000資源包 http://www.ph4nt0m.net/down/services.rar
C:\Program Files\mrtg\bin\
Windows 2000 上SNMP的啟用
Windows 2000 Server中內含了SNMP網絡管理協議,如果你想通過MRTG來監控一臺Windows 2000服務器的相關信息,就需要啟用該Windows 2000 Server的SNMP協議。
在Windows 2000 Server的 控制面板 中,選擇 添加或刪除程序 ,點擊 添加/刪除Windows組件 :
[center]
[/center]
雙擊 管理和監視工具 ,選中 簡單網絡管理協議 ,確定 后,選擇 下一步 ,完成安裝:
[center]
[/center]
注:如果安裝中提示插入系統光盤,而你有沒有,請下載
SNMP所需系統文件
這樣,我們就完成了SNMP協議在Windows 2000中的安裝。但是系統默認的Community是通用的Public,雖然只有只讀權限,但是出于安全性的考慮,最好修改一下。
打開 控制面板 \ 管理工具 \ 服務 ,選擇 SNMP服務 ,雙擊進入其 屬性對話框 ,點擊 安全選項卡 ,就可以看到:
[center]
[/center]
在這里,可以修改SNMP的Community,大大提高SNMP的安全性。同時,Windows 2000還提供了IP的篩選,可以指定特別的IP來訪問本機的SNMP。這里就不再詳細說明。
注:在這里設定IP篩選,雖然只接受指定IP的SNMP查詢,但是所有的人都可以看到本地的UDP 161/162端口是開放的,如果對安全性要求較高,建議使用IPSec過濾UDP 161/162端口。
通過IPSec保護SNMP
如果對安全性要求不是太高,就用SNMP的IP篩選功能即可,可以跳過本節。
由于圖形界面的IPSec配置比較麻煩,不便于敘述,故本文使用Windows 2000 Resource Kit中的一個工具ipsecpol.exe,從命令行對IPSec進行配置:
下載壓縮文件后,將壓縮包的文件解壓到一個目錄,本例中為C:\Program Files\Resource Kit\,運行 命令提示行 ,進入該目錄:
1.添加默認拒絕策略:
ipsecpol -w REG -p SNMP策略 -r 默認拒絕 -f *+10.0.0.2:161:UDP -f *+10.0.0.2:162:UDP -n BLOCK
2.允許指定主機訪問:
ipsecpol -w REG -p SNMP策略 -r 允許管理工作站訪問 -f 10.0.0.1+10.0.0.2:161:UDP -n PASS
3.指派策略:
ipsecpol -w REG -p SNMP策略 -x
這樣你就會發現,在 本地安全設置 的 IP安全策略 中,新增了一條已指派的策略 SNMP策略:
[center]
[/center]
Windows 2000上MRTG管理工作站的建立
前面的文章中已經講述了如何在Windows 2000 Server上開啟SNMP協議,下面我們將詳細討論如何在Windows 2000平臺下建立MRTG的管理工作站。
MRTG管理工作站并不要求建立在Windows 2000 Server的平臺上,Professional也可以,只要有IIS的Web服務(或者其他的Web服務)來發布監控結果就可以了。
首先,要在IIS中配置一個Web站點,用于發布MRTG的監控信息,本文假設該站點的根目錄為C:\WWWroot\MRTG\。
然后,獲取MRTG的Win32版本和ActiveState Perl,分別安裝到C:\Program Files\mrtg\和C:\Perl\,為了將MRTG作為系統服務一開機就自動運行,我們還將Windows 2000 Resource Kit中的instsrv.exe和srvany.exe復制到C:\Program Files\mrtg\bin\。
下面我們進行MRTG的配置:
1.進入C:\Program Files\mrtg\bin目錄:
cd c:\Program Files\mrtg\bin
執行CFGMaker,生成cfg文件:
perl cfgmaker phantom@10.0.0.2 --global "WorkDir: C:\WWWroot\MRTG" --output phantom.cfg
這里的phantom是10.0.0.2的Community,MRTG的監控文件保存在C:\WWWroot\MRTG\,輸出的配置文件為phantom.cfg,如果你有多臺主機要監控,可以在這里分別填入,如:
perl cfgmaker phantom@10.0.0.2 phantom@10.0.04 --global "WorkDir: C:\WWWroot\MRTG" --output phantom.cfg
perl cfgmaker phantom@10.0.0.* --global "WorkDir: C:\WWWroot\MRTG" --output phantom.cfg
具體細節,參看MRTG的說明。
2.為了讓MRTG全天24小時監控,我們在phantom.cfg中加入以下參數,使MRTG每隔5分鐘采集一次信息:
RunAsDaemon: yes
Interval: 5
可以使用命令:
echo RunAsDaemon: yes >>phantom.cfg
echo Interval:5 >>phantom.cfg
3.使用IndexMaker生成報表首頁:
perl indexmaker phantom.cfg >C:\WWWroot\MRTG\index.htm
4.運行MRTG:
perl mrtg --logging=phantom.log phantom.cfg
訪問http://127.0.0.1/MRTG/index.htm看MRTG是否可以正常工作,生成統計圖形。如果正常,終止程序,將其配置為系統服務。
將MRTG配置為系統服務:
由于MRTG需要由perl來編譯執行,不能直接添加為系統服務,所以,我們使用Windows 2000 Resource Kit中的instsrv.exe和srvany.exe這兩個程序來幫助我們把MRTG添加為系統服務:
1.添加srvany.exe為服務:
instsrv MRTG "C:\Program Files\mrtg\bin\srvany.exe"
2.配置srvany:
在注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG中,添加一個parameters項。再在parameters項中添加以下項目:
Application的字串值,內容為C:\Perl\bin\perl.exe
AppDirectory的字串值,內容為C:\Program Files\mrtg\bin\
AppParameters的字串值,內容為mrtg --logging=phantom.log phantom.cfg
3.在 控制面板 \ 管理工具 \ 服務 中,找到MRTG服務,啟用 服務,MRTG即可全天監視指定主機的網絡信息了。
[center]
[/center]
至此,MRTG已經可以正常運作,即時監控服務器網卡流量了,當然MRTG的功能遠不止這些,它可以監控任何一個支持SNMP協議的服務器/路由器的網絡流量,CPU占用信息等等。如果你有興趣可以繼續參看 利用MRTG監控Windows 2000服務器高級指導 。