歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux網絡

用MRTG檢測Linux網絡性能

 作者:仇立環    摘要    為了全面衡量網絡運行狀況,就需要對網絡狀態做更細致、更精確的測量。本文向你介紹一款基於SNMP的典型網絡流量統計分析工具MRTG(MultiRouter Traffic Grapher, MRTG)的使用方法    隨著Linux應用的日益廣泛,有大量的網絡服務器使用Linux操作系統。為了全面衡量網絡運行狀況,就需要對網絡狀態做更細致、更精確的測量。SNMP協議的制訂為互聯網測量提供了有力支持。MRTG(MultiRouter Traffic Grapher, MRTG)就是基於SNMP的典型網絡流量統計分析工具。它耗用的系統資源很小,因此有很多外掛的程序也依附在MRTG下。它通過SNMP協議從設備得到其流量信息,並將流量負載以包含JPEG格式圖形的Html文檔的方式顯示給用戶,以非常直觀的形式顯示流量負載。     工作原理       網絡服務器的資料總流量(網卡的資料傳送總數)、CPU使用率以及特殊服務(例如Squid的代理服務)等的封包傳送率(或者說是流量)是網絡管理人員所必須要注意的事項。因為當主機的CPU使用率過高時,系統可能呈現不穩定的狀態,這就需要注意是哪一個服務或者誰在嘗試竊取我們的資料。因此,網絡管理方面,有必要了解我們主機的流量狀態,並視流量來加以限制或者是加大帶寬。       我們可以從MRTG的主頁:http://www.mrtg.org下載MRTG軟件。在網站:http://www.stat.ee.ethz.ch/mrtg/可以得到MRTG流量監測圖的輸出結果。示例如圖1所示。     圖1 MRTG流量監測圖的輸出結果     MRTG是用Perl寫成的,並且使用了zlib、gd以及png等函數(zlib用來壓縮圖表、gd用來繪制圖表)。服務器中已經含有下列的軟件:perl(perl-5.0xx以上)、zlib(zlib-1.1.3-xx以上)、gd(gd-1.3.xx以上)、libpng和Apache。       可以用RPM來確認它們:         rpm -qa grep perl    rpm -qa grep zlib    rpm -qa grep gd    rpm -qa grep libpng           另外,由於MRTG以HTTP的格式輸出成圖表來顯示,因此必須要安裝好Apache。以下,我們使用了預設的Apache路徑,為/usr/local/apache/htdocs這個路徑來安裝MRTG輸出的圖表。要注意,如果沒有Apache,雖然仍可以強行執行MRTG,但那就無法顯示圖表了。     安裝MRTG       由於MRTG是通過SNMP通訊協議來要求資料,因此Linux上需要先安裝相應的軟件,通常是安裝UCd-snmp這套軟件。       1.下載ucd-snmp-4.2.1.tar.gz,mrtg-2.9.17.tar.gz。       2.安裝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    [[email protected]]# ./configure--prefix=/usr/local/snmp    [[email protected]]# make    [[email protected]]# makeinstall           3.啟動ucd-snmp。       直接在shell下面打上/usr/local/snmp/sbin/snmpd即可,或者直接加在/etc/rc.d/rc.local當中,就可以自動開機啟動了。      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    [[email protected]]# ./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    [[email protected]]# make;makeinstall    [[email protected]]# mkdir/usr/local/apache/htdocs/mrtg           (請注意,這裡與你的WWW主頁的放置地點有關,請按照你的系統來設定,另外,由於我們需要設定網絡流量、CPU使用率,因此在mrtg中,再建立兩個子目錄,比較容易管理。)        [[email protected]]# mkdir/usr/local/apache/htdocs/mrtg/net    [[email protected]]# cpimages/*/usr/local/apache/htdocs/mrtg/net           到現在我們就已經正確地安裝了MRTG系統。     檢測網卡流量       要使用MRTG來作圖非常簡單,只要幾個小步驟就可以自動監測流量。首先以MRTG附的程序來制作一個參數項(預設為mrtg.cfg),然後修改一下mrtg.cfg這個參數項,再直接執行三次參數文件,之後用MRTG程序的小軟件直接制作成首頁,就可以察看圖表了。       設定MRTG的方法如下:         [[email protected]]# cd/usr/local/mrtg-2/bin    [root@tsaibin]#. /cfgmaker--      output=/usr/local/apache/htdocs/mrtg/net/mrtg.cfg    >[email protected]    [root@tsaibin]# vi/usr/local/apache/htdocs/mrtg/net/mrtg.cfg           不過由於程序自動設定的mrtg.cfg會有問題,因此,請將下面這三行修改成你自己的樣式。         WorkDir:/usr/local/apache/htdocs/mrtg/net/    Options[_]:growright,bits    Language:GB2312    [root@tsaibin]# ./mrtg/usr/local/apache/htdocs/mrtg/net/mrtg.cfg           開始測試你的參數項,要執行三次,就可以正常工作了,不過,若是有問題的話,就需要改mrtg.cfg,再執行直到沒有錯誤發生為止。         [root@tsaibin]# ./indexmaker    >--output=/usr/local/apache/htdocs/mrtg/net/index.html    >--title=VBird主機流量統計表    >/usr/local/apache/htdocs/mrtg/net/mrtg.cfg           上面這個程序indexmaker是在制作首頁。會自動地輸出一個index.html的文件中。        /usr/local/apache/htdocs/mrtg/net             注意:在public@vbird. adsldns.org這一行,public是有其意義的(在SNMP這個通訊服務裡面的預設搜尋的一個代碼)。如果主機的動態DNS名稱為your.domain.name,則就一定要寫成public@your. domain.name才行。       在設定五分鐘檢測一次之後,就可以開始檢測。然後就可以通過浏覽器訪問地址http://192.168.0.1/mrtg/,選擇適當的接口地址察看流量信息了。如果希望生成類似於http://www.stat.ee.ethz.ch/mrtg/的信息,就需要自己手工編輯一個index.html文檔,存放在/var/www/html/mrtg目錄下,內容為接口說明以及該接口的日統計信息的圖表。     檢測CPU負載量       檢測CPU負載量時,需要使用到額外的外掛程序,就是sysstat這個程序。       1.下載並安裝sysstat-4.0.2-1.i386.rpm:         $ rpm-ivhsysstat-4.0.2-1.i386.rpm           2. 編寫外掛程序       可以應用安裝完sysstat套件後產生的/usr/bin/sar程序進行外掛程序的編寫,也可以使用bash寫一個監測CPU的小程序。示例如下:         [root@tsaicpu]#vimrtg.cpu    ---程序開始----    # !/bin/bash    # 這個程序是用來檢測CPU的小外掛程序。    # 1.開始使用sar來監測CPU的user及System負載率    cpuusr=`/usr/bin/sar-u13grepAverageawk'{print$3}'`    cpusys=`/usr/bin/sar-u13grepAverageawk'{print$5}'`    UPtime=`/usr/bin/uptimeawk'{print$3""$4""$5}'`    #2.列出四個數據(前兩個為數字)    echo$cpuusr    echo$cpusys    echo$UPtime    echovbird.adsldns.org(這裡寫你的主機名稱)    ----程序結束----      [root@tsaicpu]#chmod755mrtg.cpu(設定成可執行)    [root@tsaicpu]#./mrtg.cpu(測試看可執行否)  2.0    5.4    1day,22:30,    vbird.adsldns.org           3.開始設定MRTG參數項,方法如下:         [root@tsaicpu]    # vi mrtg.cfg.cpu    ----程序開始----    ###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]:         這之後開始執行參數項,注意,要執行三次以上:         /usr/local/mrtg-2      /bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu           4.寫入到/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。       再來說說sar。基本上,sar可以用來檢測很多的東西,例如:sar- u 1 5,每一秒鐘測一次CPU,共計五次後算平均;sarr 3 3,每三秒看一次實體與虛擬內存用量,三次後算平均。       我們主要介紹了MRTG安裝前的准備工作、開始安裝、檢測網卡流量、檢測CPU負荷等。其實MRTG還有許多功能,希望讀者進一步挖掘。     




 



Copyright © Linux教程網 All Rights Reserved