天天看點

使用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

#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

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

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 ./

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

三、安裝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 */

再次編譯通過

來源: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支援中文

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

  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打造IDC網絡流量監控平台

四、為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打造IDC網絡流量監控平台

然後我們輸入正确的使用者名和密碼後就可以看到MRTG的流量監控頁面了,如下圖

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

在這篇文章中我有一個很大的疑惑:我沒有在Linux系統中安裝SNMP,在網上,我看到不少網友針對交換機每個端口流量的監控還在系統上再安裝SNMP,個人感覺沒必要,因為我們是監控的交換機每個端口出入的流量。倘若我們要監控的是某台伺服器的流量,才需要在某台伺服器上安裝SNMP。

本文出自 “陸文舉” 部落格,請務必保留此出處http://luwenju.blog.51cto.com/620835/246892

繼續閱讀