使用MRTG打造IDC網絡流量監控平臺

        一個IDC機房,倘若沒有流量監控平臺,那就等於兩眼一抹黑。利用流量監控不僅能監控一些服務器的訪問量情況,而且還能監控一些大規模的網絡***。下面我們來看一個比較老的流量監控軟件—MRTG MRTG有windows版本和Linux版本。今天我們看一下Linux的MRTG是如何搭建的。
      MRTG(Multi Router Traffic Grapher),通常講是一個監控網絡鏈路流量負載的開源軟件,它可以從所有運行SNMP協議的設備上(包括服務器、路由器、交換機等)抓取信息。事實上它不僅可以監控網絡設備,任何其它的支持SNMP協議的設備都可以做爲MRTG的監控對象,並自動生成包含PNG圖形格式的HTML文檔,通過HTTP方式顯示給用戶。

 
一、安裝GD庫(用於圖片的生成)

1、安裝libpng

#tar xvf libpng-1.2.10.tar.tar

#cd libpng-1.2.10

#./configure  --prefix=/usr/local/png

#make;make install

#ln -s /usr/local/png/lib/* /usr/lib/

 

2、安裝jpeg

#mkdir /usr/local/jpeg

#mkdir /usr/local/jpeg/bin

#mkdir /usr/local/jpeg/lib

#mkdir /usr/local/jpeg/include

#mkdir /usr/local/jpeg/man

#mkdir /usr/local/jpeg/man/man1

#tar xvf jpegsrc.v7.tar.tar

#cd jpeg-7

#./configure --prefix=/usr/local/jpeg --enable-shared --enable-static

#make;make install

#ln -s /usr/local/jpeg/lib/* /usr/lib/

 

3、安裝 freetype

#tar xvf freetype-2.3.9.tar.tar

#cd freetype-2.3.9

#./configure --prefix=/usr/local/freetype

#make;make install

 

4、安裝fontconfig

#tar zxvf fontconfig-2.4.2.tar.gz

#cd fontconfig-2.4.2

#./configure --prefix=/usr/local/fontconfig --with-freetype-config=/usr/local/freetype/bin/freetype-config

#make;make install

 

5、安裝GD

#tar zxvf gd-2.0.32.tar.gz

#cd gd-2.0.32

#./configure --prefix=/usr/local/gd --with-png=/usr/local/png --with-jpeg=/usr/local/jpeg --with- freetype=/usr/local/freetype --with-

fontconfig=/usr/local/fontconfig

 

出現如下信息則說明GD配置正確

** Configuration summary for gd 2.0.32:**

   Support for PNG library:          yes

   Support for JPEG library:         yes

   Support for Freetype 2.x library:    yes

   Support for Fontconfig library:     yes

   Support for Xpm library:          no

   Support for pthreads:             yes

 

#cp /usr/local/png/include/png.h ./

#cp /usr/local/png/include/pngconf.h ./

#make;make install

 

6、安裝zlib-1.2.3.tar.gz

#tar zxvf zlib-1.2.3.tar.gz

#cd zlib-1.2.3

#./configure --prefix=/usr/local/zlib

#make && make install

 

 

二。安裝Apache

#tar zxvf httpd-2.2.11.tar,gz

#cd httpd-2.2.11

#./configure --prefix=/usr/local/apache --enable-modules=most
#make && make install

 

 

三、安裝MRTG

#tar -zxvf mrtg-2.13.2.tar.gz

#cd mrtg-2.13.2

#./configure --prefix=/usr/local/mrtg --with-gd=/usr/local/gd --with-gd-lib=/usr/local/gd/lib --with-gd-inc=/usr/local/gd/include --with-

png=/usr/local/png --with-png-lib=/usr/local/png/lib --with-zlib=/usr/local/zlib --with-zlib-lib=/usr/local/zlib/lib

#make&&make install
 
 

需要gd庫,同樣採用源碼編譯,在編譯過程中碰到 `png_check_sig’ 錯誤。
google了一下,發現由於使用的新的 libpng 1.4版本,去掉了png_check_sig函數,替換爲了png_sig_check函數
,於是編輯gd庫的 gd_png.c文件,將

if (!png_check_sig (sig, 8)) { /* bad signature */
    return NULL;
}
修改爲

if (png_sig_cmp (sig, 0, 8)) { /* bad signature */
    return NULL;
}
再次編譯通過
來源:http://www.sunnyu.com/?p=211

 

 
四、配置MRTG

 1 生成MRTG配置文件mrtg.cfg,用於存放mrtg的配置信息

首先我們新建一個目錄,用於存放MRTG配置文件

#mkdir /usr/local/mrtg/etc

#/usr/local/mrtg/bin/cfgmaker --output /usr/local/mrtg/etc/mrtg.cfg luwenju @202.106.0.20

 注:luwenju @202.106.0.20是我們所要監控的交換機,luwenju爲交換機SNMP的團體名,202.106.0.20是交換機的管理IP地址。交換機上如何開啓SNMP請自行參閱資料,有一點切忌:爲了服務器的安全起見,交換機上的SNMP配置時應該配置成只讀,不允許有寫入或者執行權限!

 
 2、修改MRTG配置文件mrtg.cfg

#vi /usr/local/mrtg/etc/mrtg.cfg

     Workdir後的路徑改成/usr/local/apache/htdocs  意思是指定mrtg流量頁面存放目錄.#Options[_]: growright, bits  前面的#去掉,意思是定義流量單位大小,然後在另起一行,加入Language:Chinese   意思是使mrtg支持中文

 

  3收集交換機每個端口的狀態信息並把蒐集的信息存儲到MRTG配置文件當中
#env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg  
注:執行時多執行幾遍,只到不出現任何提示信息

 

4、爲交換機生成html文件,以供用戶訪問

# /usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/index.html --title=ruishengIDC --sort=title --sort=name --sort=descr --sort=original  /usr/local/mrtg/etc/mrtg.cfg

 

 

5、讓MRTG監控信息自動更新

我們可以利用cron進程,讓MRTG自動刷新,方法如下

  #crontab -e

然後寫入*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
意思是讓MRTG每5分子更新一次

 

6.測試

下面我們在瀏覽器中輸入服務器的IP地址或者域名就可以看到我們要監控的流量了,如下圖

 

 
四、爲MRTG做授權訪問

倘若一個機房的網絡帶寬使用情況誰查看都可以,那未免也有點太那啥了吧。。。  因此,我們做授權訪問是有必要的

1.       建立虛擬用戶
建立這個虛擬用戶的目的就在於只讓這個用戶訪問MRTG的監控頁面,首先我們建立一個目錄,用於存放虛擬用戶的用戶密碼

# mkdir /etc/webpasswd

 

建立虛擬用戶,我們創建一個虛擬用戶luwenju,將其配置文件放到/etc/webpasswd/luwenjupwd

#/usr/local/apache/bin/htpasswd -c /etc/webpasswd/luwenjupwd luwenju

注:執行完上述命令後會要求設置此用戶的密碼,我們輸入想要設置的密碼即可。Apache自帶的htpasswd命令提供了建立和更新存儲用戶名、密碼的文本文件的功能。-c選項表示無論口令文件是否已經存在,都會重新寫入文件並刪去原有內容。

 

2、配置用戶認證

修改apache配置文件vi /usr/local/apache/conf/httpd.conf  在配置文件最後加入以下內容(倘若我們想在某個虛擬主機中實現身份驗證,那麼我們就把如下信息加入某個虛擬主機中即可)

<Directory "/usr/local/apache/htdocs">

AuthType Basic

AuthName "Rui Sheng IDC"

AuthUserFile /etc/webpasswd/luwenjupwd

Require user luwenju

</Directory>

注:Directory定義我們針對那麼目錄進行授權,我們配置MRTG時讓html文件生成到了/usr/local/apache/htdocs

AuthType 的意思是採用哪種模式進行驗證,我們使用basic

AuthName 的意思是登陸窗口的名稱

AuthUserFile 的的意思是指定用戶的密碼配置文件

Require user 的意思是允許哪個用戶來訪問

 

OK,完成上面設置後我們重啓一下Apache,然後再瀏覽器中訪問時會彈出以下頁面

 

 
然後我們輸入正確的用戶名和密碼後就可以看到MRTG的流量監控頁面了,如下圖
 
 
在這篇文章中我有一個很大的疑惑:我沒有在Linux系統中安裝SNMP,在網上,我看到不少網友針對交換機每個端口流量的監控還在系統上再安裝SNMP,個人感覺沒必要,因爲我們是監控的交換機每個端口出入的流量。倘若我們要監控的是某臺服務器的流量,才需要在某臺服務器上安裝SNMP。

 

 

本文出自 “陸文舉” 博客,請務必保留此出處http://luwenju.blog.51cto.com/620835/246892
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章