隨著(zhù)Linux應用的日益廣泛,有大量的網(wǎng)絡(luò )服務(wù)器使用Linux操作系統。為了全面衡量網(wǎng)絡(luò )運行狀況,就需要對網(wǎng)絡(luò )狀態(tài)做更細致、更精確的測量。SNMP協(xié)議的制訂為互聯(lián)網(wǎng)測量提供了有力支持。MRTG(MultiRouter Traffic Grapher, MRTG)就是基于SNMP的典型網(wǎng)絡(luò )流量統計分析工具。它耗用的系統資源很小,因此有很多外掛的程序也依附在MRTG下。它通過(guò)SNMP協(xié)議從設備得到其流量信息,并將流量負載以包含JPEG格式圖形的HTML文檔的方式顯示給用戶(hù),以非常直觀(guān)的形式顯示流量負載。工作原理網(wǎng)絡(luò )服務(wù)器的資料總流量(網(wǎng)卡的資料傳送總數)、CPU使用率以及特殊服務(wù)(例如Squid的代理服務(wù))等的封包傳送率(或者說(shuō)是流量)是網(wǎng)絡(luò )管理人員所必須要注意的事項。因為當主機的CPU使用率過(guò)高時(shí),系統可能呈現不穩定的狀態(tài),這就需要注意是哪一個(gè)服務(wù)或者誰(shuí)在嘗試竊取我們的資料。因此,網(wǎng)絡(luò )管理方面,有必要了解我們主機的流量狀態(tài),并視流量來(lái)加以限制或者是加大帶寬。我們可以從MRTG的主頁(yè):http://www.mrtg.org下載MRTG軟件。在網(wǎng)站:http://www.stat.ee.ethz.ch/mrtg/可以得到MRTG流量監測圖的輸出結果。示例如圖1所示。

圖1 MRTG流量監測圖的輸出結果 MRTG是用Perl寫(xiě)成的,并且使用了zlib、gd以及png等函數(zlib用來(lái)壓縮圖表、gd用來(lái)繪制圖表)。服務(wù)器中已經(jīng)含有下列的軟件:perl(perl-5.0xx以上)、zlib(zlib-1.1.3-xx以上)、gd(gd-1.3.xx以上)、libpng和Apache??梢杂肦PM來(lái)確認它們: rpm -qa | grep perl rpm -qa | grep zlib rpm -qa | grep gd rpm -qa | grep libpng
另外,由于MRTG以HTTP的格式輸出成圖表來(lái)顯示,因此必須要安裝好Apache。以下,我們使用了預設的Apache路徑,為/usr/local/apache/htdocs這個(gè)路徑來(lái)安裝MRTG輸出的圖表。要注意,如果沒(méi)有Apache,雖然仍可以強行執行MRTG,但那就無(wú)法顯示圖表了。安裝MRTG 由于MRTG是通過(guò)SNMP通訊協(xié)議來(lái)要求資料,因此Linux上需要先安裝相應的軟件,通常是安裝ucd-snmp這套軟件。1.下載ucd-snmp-4.2.1.tar.gz,mrtg-2.9.17.tar.gz2.安裝ucd-snmp-4.2.1.tar.gz [root@tsai/root]#cd /usr/local/src [root@tsaisrc]#cp /root/ucd-snmp-4.2.1.tar.gz [root@tsaisrc]#tar -zxvfucd-snmp-4.2.1.tar.gz [root@tsaisrc]#cd ucd-snmp-4.2.1 [root@tsaiucd-snmp-4.2.1]# ./configure--prefix=/usr/local/snmp [root@tsaiucd-snmp-4.2.1]# make [root@tsaiucd-snmp-4.2.1]# makeinstall
3.啟動(dòng)ucd-snmp直接在shell下面打上/usr/local/snmp/sbin/snmpd即可,或者直接加在/etc/rc.d/rc.local當中,就可以自動(dòng)開(kāi)機啟動(dòng)了。4.安裝 [root@tsai/root]# cd/usr/local/src [root@tsaisrc]# cp/root/mrtg-2.9.17.tar.gz. [root@tsaisrc]# tar-zxvfmrtg-2.9.17.tar.gz [root@tsaisrc]# cdmrtg-2.9.17 [root@tsaimrtg-2.9.17]# ./configure--prefix=/usr/local/mrtg-2 >--with-gd=/usr/include >--with-gd-lib=/usr/lib >--with-gd-inc=/usr/include >--with-png=/usr/include >--with-zlib=/usr/include [root@tsaimrtg-2.9.17]# make;makeinstall [root@tsaimrtg-2.9.17]# mkdir/usr/local/apache/htdocs/mrtg
請注意,這里與你的WWW主頁(yè)的放置地點(diǎn)有關(guān),請按照你的系統來(lái)設定,另外,由于我們需要設定網(wǎng)絡(luò )流量、CPU使用率,因此在mrtg中,再建立兩個(gè)子目錄,比較容易管理。 [root@tsaimrtg-2.9.17]# mkdir/usr/local/apache/htdocs/mrtg/net [root@tsaimrtg-2.9.17]# cpimages/*/usr/local/apache/htdocs/mrtg/net
到現在我們就已經(jīng)正確地安裝了MRTG系統。檢測網(wǎng)卡流量 要使用MRTG來(lái)作圖非常簡(jiǎn)單,只要幾個(gè)小步驟就可以自動(dòng)監測流量。首先以MRTG附的程序來(lái)制作一個(gè)參數項(預設為mrtg.cfg),然后修改一下mrtg.cfg這個(gè)參數項,再直接執行三次參數文件,之后用MRTG程序的小軟件直接制作成首頁(yè),就可以察看圖表了。設定MRTG的方法如下: [root@tsaimrtg-2.9.17]# cd/usr/local/mrtg-2/bin [root@tsaibin]#. /cfgmaker-- output=/usr/local/apache/htdocs/mrtg/net/mrtg.cfg >public@vbird.adsldns.org [root@tsaibin]# vi/usr/local/apache/htdocs/mrtg/net/mrtg.cfg
不過(guò)由于程序自動(dòng)設定的mrtg.cfg會(huì )有問(wèn)題,因此,請將下面這三行修改成你自己的樣式。 WorkDir:/usr/local/apache/htdocs/mrtg/net/ Options[_]:growright,bits Language:GB2312 [root@tsaibin]# ./mrtg/usr/local/apache/htdocs/mrtg/net/mrtg.cfg
開(kāi)始測試你的參數項,要執行三次,就可以正常工作了,不過(guò),若是有問(wèn)題的話(huà),就需要改mrtg.cfg,再執行直到?jīng)]有錯誤發(fā)生為止。 [root@tsaibin]# ./indexmaker >--output=/usr/local/apache/htdocs/mrtg/net/index.html >--title=VBird主機流量統計表 >/usr/local/apache/htdocs/mrtg/net/mrtg.cfg
上面這個(gè)程序indexmaker是在制作首頁(yè)。會(huì )自動(dòng)地輸出一個(gè)index.html的文件中。 /usr/local/apache/htdocs/mrtg/net
注意:在public@vbird. adsldns.org這一行,public是有其意義的(在SNMP這個(gè)通訊服務(wù)里面的預設搜尋的一個(gè)代碼)。如果主機的動(dòng)態(tài)DNS名稱(chēng)為your.domain.name,則就一定要寫(xiě)成public@your. domain.name才行。在設定五分鐘檢測一次之后,就可以開(kāi)始檢測。然后就可以通過(guò)瀏覽器訪(fǎng)問(wèn)地址http://192.168.0.1/mrtg/,選擇適當的接口地址察看流量信息了。如果希望生成類(lèi)似于http://www.stat.ee.ethz.ch/mrtg/的信息,就需要自己手工編輯一個(gè)index.html文檔,存放在/var/www/html/mrtg目錄下,內容為接口說(shuō)明以及該接口的日統計信息的圖表。檢測CPU負載量 檢測CPU負載量時(shí),需要使用到額外的外掛程序,就是sysstat這個(gè)程序。1.下載并安裝sysstat-4.0.2-1.i386.rpm: $ rpm-ivhsysstat-4.0.2-1.i386.rpm
2. 編寫(xiě)外掛程序可以應用安裝完sysstat套件后產(chǎn)生的/usr/bin/sar程序進(jìn)行外掛程序的編寫(xiě),也可以使用bash寫(xiě)一個(gè)監測CPU的小程序。示例如下: [root@tsaicpu]#vimrtg.cpu ---程序開(kāi)始---- # !/bin/bash # 這個(gè)程序是用來(lái)檢測CPU的小外掛程序。 # 1.開(kāi)始使用sar來(lái)監測CPU的user及System負載率 cpuusr=`/usr/bin/sar-u13|grepAverage|awk'{print$3}'` cpusys=`/usr/bin/sar-u13|grepAverage|awk'{print$5}'` UPtime=`/usr/bin/uptime|awk'{print$3""$4""$5}'` #2.列出四個(gè)數據(前兩個(gè)為數字) echo$cpuusr echo$cpusys echo$UPtime echovbird.adsldns.org(這里寫(xiě)你的主機名稱(chēng)) ----程序結束---- [root@tsaicpu]#chmod755mrtg.cpu(設定成可執行) [root@tsaicpu]#./mrtg.cpu(測試看可執行否) 2.0 5.4 1day,22:30, vbird.adsldns.org
3.開(kāi)始設定MRTG參數項,方法如下: [root@tsaicpu] # vi mrtg.cfg.cpu ----程序開(kāi)始---- ###GlobalConfigOptions ###Togetbitsinsteadofbytesandgraphs growingtotheright WorkDir:/usr/local/apache/htdocs/mrtg/cpu/ Language:GB2313 Target [localhost]:`/usr/local/apache/htdocs/mrtg/cpu/mrtg.cpu` MaxBytes[localhost]:100 Options[localhost]:gauge,nopercent,growright YLegend[localhost]:CPUloading(%) ShortLegend[localhost]:% LegendO[localhost]: CPU使用者負載; LegendI[localhost]: CPU純系統負載; Title[localhost]:CPU?t???v PageTop[localhost]:
這之后開(kāi)始執行參數項,注意,要執行三次以上: /usr/local/mrtg-2 /bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu
4.寫(xiě)入到/etc/crontab當中: */2****root/usr/local/mrtg-2 /bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu>/dev/null2>&1
這樣就OK了,直接將Web指向http://your.host.domain/mrtg/cpu/localhost.html。再來(lái)說(shuō)說(shuō)sar?;旧?,sar可以用來(lái)檢測很多的東西,例如:sar- u 1 5,每一秒鐘測一次CPU,共計五次后算平均;sarr 3 3,每三秒看一次實(shí)體與虛擬內存用量,三次后算平均。我們主要介紹了MRTG安裝前的準備工作、開(kāi)始安裝、檢測網(wǎng)卡流量、檢測CPU負荷等。其實(shí)MRTG還有許多功能,希望讀者進(jìn)一步挖掘。(T004)