網絡流量監控器(MRTG)配置

ChinaUnix上看見一篇關於網絡流量監控器(Multi Router Traffic Graphermrtg全攻略,照着做了遍沒想到居然成功了,這不是我主要的工作。也不知道下一次正需要使用它是什麼時候了,所以把它寫下來以後就不用到處去找了。

需要的軟件:

Gd   圖形處理庫

<?xml:namespace prefix = st1 ns = "Tencent" />Libpng    png處理庫

Perl         mrtg有部分腳本用了perl

       Zlib         不知道是什麼,這幾天安裝軟件都說要這個

       Apache    用來發布檢測結果

       Gcc        c++編譯器,如果用rpm安裝就不需要。

       Net-snmp       網絡管理協議代理。

       以前一直以爲mrtg是一個類似嗅探器一樣工作在網絡中,採用抓包的方式分析每一個結點的流量。而且是實時分析,看到需要net-snmp的時候,一下明白了根本不像想象的那樣。Mrtg只是一個snmp的客戶端而已(我只瞭解一點snmp),通過snmp從各個設備的snmp代理上取得數據,然後以圖形的方式生成報表。真正的流量統計分析,是由各個結點設置完成。每隔一段時間後mrtg從設置中取一次數據,然後再更新報告。仔細想一想這樣的工作方式也可以啊,實現簡單,而且擴展性強,只要設置支持snmp管理就行,而且不會因爲網絡臨聽影響到網絡通信質量。明白了mrtg的工作原理後,安裝起來也不至於是一頭霧水,只是照着別人說的那樣做,出了錯自己也不能解決。Mrtg安裝主要需要熟悉snmp的一些知識,至少必要概念需要知道,apache也需要了解,至少要知道虛擬目錄是怎麼回事。前面兩樣配置好了,mrtg就簡單多了(我是隻是簡單應用)。

       下面以監視本機的網絡流量爲例進行安裝:(RedHat9.0

1.  安裝net-snmp,RedHat光盤中有rpm安裝包。

a)         安裝完以後,修改配置文件/etc/snmp/snmpd.conf

把下面的#符號去掉:

#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

       把下面的語句:

access notConfigGroup "" any noauth exact systemview none none
改成:
access notConfigGroup "" any noauth exact mib2 none none

       完成以後,就可啓動snmpd服務了。

#/sbin/service snmpd start

2.  安裝mrtg,下載網站: http://mrtg.matrix.com.br/

a)         可以直接下載rpm包,下載的時候注意一下前面依賴的軟件版本。我下載的mrtg-<?xml:namespace prefix = st2 ns = "urn:schemas-microsoft-com:office:smarttags" />2.10.5-1.i386.rpm,結果是gdlibpng的版本都太低了,還得去找相應的升級包。

b)        可以下載tar.gz下來編譯,我開始下了一個但是沒有編譯通過,主要是我以前都是直接通過rpm安裝的依賴的包,所有有些頭文件沒有找到。編譯沒有什麼複雜的主要就是要準備正確的頭文件。如果有時間在網上找就行了。

c)        配置mrtg,

                                       i.              cfgmaker --output=/etc/mrtg/mrtg.cfg [email protected]

                                     ii.              爲設備202.115.29.94生成一個配置文件名爲:/etc/mrtg/mrtg.cfg,後面取分析數據的時候就按照/etc/mrtg/mrtg.cfg來取。這裏面配置了些什麼暫時也沒有看懂,好像和snmp相關。

1.         修改上面生成的配置文件。

vi /etc/mrtg/mrtg.cfg

WorkDir: /var/www/html/mrtg  #apache的一個目錄,將這兒生成html格式的報告文件。按自己的實際情況修改
Options[_]: growright, bits
 #還不清楚是什麼
Language:big5                   
#一看就知道是什麼了,但是不知道有什麼有,以後慢慢學習。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

d)        運行mrtg

                                       i.              #mrtg /etc/mrtg/mrtg.cfg

按照配置文件中的信息從設置中取數據。但是這是一次性的,取後更新報告的圖片。這也我想象中也不一樣,以爲運行一性就在後臺自動的讀取數據了。

                     運行的時候出了一點錯如下:

                     -----------------------------------------------------------------------

ERROR: Mrtg will most likely not work propperly when the environment

                   variable LANG is set to UTF-8. Please run mrtg in an environment

      where this is not the case:

                     env LANG=C /usr/bin/mrtg ...

-----------------------------------------------------------------------

這可能與Language:big5設置有關,因爲我沒有找到Language,所以也就沒有修改。我是修改了環境變量:

#export LANG=C

運行:

#mrtg /etc/mrtg/mrtg.cfg

前面兩次都出現了錯誤信息,好像主要是因爲snmp沒有初始化之類,運行第三次後就正常了。

運行成功後就可以在前面設置的WorkDir那個目錄下面,生成了html格式的文件和一些png的圖片。一看就明白是怎麼回事了,也說明了前面在分析工作原理時是正確的。

e)         生成報告的主頁。

                                       i.              indexmaker mrtg.cfg --output=/var/www/html/mrtg/index.html

f)         mrtg添加到cron中,定期運行就可以一直監視設備的網絡流量了。

  # crontab -e

       */5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg

g)        監視多個設備。

#. Chgmaker <config.cfg> <snmp>

crontab -e

#indexmaker <config.cfg> >><index.html>

             

              最後:對於Linux的學習一直都是斷斷續續的,有空的時候又學一點,沒有留筆記過後就忘記了,用的時候又得重新學習。因爲一直徘徊在J2EElinux之間,這兩者對來真是痛苦的選擇。最近有空弄了一段時間的Linux終於從一個初學者長成菜鳥了,雖然很菜,但是總算是有翅膀了。

       由於公司一直在做網絡數據傳輸,今天早上突然奇想,打算寫一個基於Http協議的JDBC,通過Http訪問遠程的數據庫。說起來也很簡單就是使用一個ProxyJDBC操作序列化後封裝到Http中去,基本上是用了板橋里人的通用EJB遠程調用框架的思想。這樣一來又要把Linux放一段時間了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章