使用MRTG打造IDC網(wǎng)絡流量監(jiān)控平臺 |
發(fā)布時間: 2012/9/16 1:32:17 |
一個IDC機房,倘若沒有流量監(jiān)控平臺,那就等于兩眼一抹黑。利用流量監(jiān)控不僅能監(jiān)控一些服務器的訪問量情況,而且還能監(jiān)控一些大規(guī)模的網(wǎng)絡攻擊。下面我們來看一個比較老的流量監(jiān)控軟件—MRTG MRTG有windows版本和Linux版本。今天我們看一下Linux的MRTG是如何搭建的。
MRTG(Multi Router Traffic Grapher),通常講是一個監(jiān)控網(wǎng)絡鏈路流量負載的開源軟件,它可以從所有運行SNMP協(xié)議的設備上(包括服務器、路由器、交換機等)抓取信息。事實上它不僅可以監(jiān)控網(wǎng)絡設備,任何其它的支持SNMP協(xié)議的設備都可以做為MRTG的監(jiān)控對象,并自動生成包含PNG圖形格式的HTML文檔,通過HTTP方式顯示給用戶。
一、安裝GD庫(用于圖片的生成)
1、安裝libpng
#tar xvf libpng-
#cd libpng-
#./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-
#cd freetype-
#./configure --prefix=/usr/local/freetype
#make;make install
4、安裝fontconfig
#tar zxvf fontconfig-
#cd fontconfig-
#./configure --prefix=/usr/local/fontconfig --with-freetype-config=/usr/local/freetype/bin/freetype-config
#make;make install
5、安裝GD
#tar zxvf gd-
#cd gd-
#./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
** Configuration summary for gd
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-
#tar zxvf zlib-
#cd zlib-
#./configure --prefix=/usr/local/zlib
#make && make install
#./configure --prefix=/usr/local/apache --enable-modules=most
#make && make install
三、安裝MRTG
#tar -zxvf mrtg-
#cd mrtg-
#./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了一下,發(fā)現(xiàn)由于使用的新的 libpng 1.4版本,去掉了png_check_sig函數(shù),替換為了png_sig_check函數(shù) ,于是編輯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是我們所要監(jiān)控的交換機,luwenju為交換機SNMP的團體名,202.106.0.20是交換機的管理IP地址。交換機上如何開啟SNMP請自行參閱資料,有一點切忌:為了服務器的安全起見,交換機上的SNMP配置時應該配置成只讀,不允許有寫入或者執(zhí)行權限!
2、修改MRTG配置文件mrtg.cfg
#vi /usr/local/mrtg/etc/mrtg.cfg
把Workdir后的路徑改成/usr/local/apache/htdocs 意思是指定mrtg流量頁面存放目錄.把#Options[_]: growright, bits 前面的#去掉,意思是定義流量單位大小,然后在另起一行,加入Language:Chinese 意思是使mrtg支持中文
3、收集交換機每個端口的狀態(tài)信息并把搜集的信息存儲到MRTG配置文件當中
#env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
注:執(zhí)行時多執(zhí)行幾遍,只到不出現(xiàn)任何提示信息
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監(jiān)控信息自動更新
我們可以利用cron進程,讓MRTG自動刷新,方法如下
#crontab -e
然后寫入*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
意思是讓MRTG每5分子更新一次
6.測試
下面我們在瀏覽器中輸入服務器的IP地址或者域名就可以看到我們要監(jiān)控的流量了,如下圖
四、為MRTG做授權訪問
倘若一個機房的網(wǎng)絡帶寬使用情況誰查看都可以,那未免也有點太那啥了吧。。。 因此,我們做授權訪問是有必要的
1. 建立虛擬用戶
建立這個虛擬用戶的目的就在于只讓這個用戶訪問MRTG的監(jiān)控頁面,首先我們建立一個目錄,用于存放虛擬用戶的用戶密碼
# mkdir /etc/webpasswd
#/usr/local/apache/bin/htpasswd -c /etc/webpasswd/luwenjupwd luwenju
注:執(zhí)行完上述命令后會要求設置此用戶的密碼,我們輸入想要設置的密碼即可。Apache自帶的htpasswd命令提供了建立和更新存儲用戶名、密碼的文本文件的功能。-c選項表示無論口令文件是否已經(jīng)存在,都會重新寫入文件并刪去原有內(nèi)容。
2、配置用戶認證
修改apache配置文件vi /usr/local/apache/conf/httpd.conf 在配置文件最后加入以下內(nèi)容(倘若我們想在某個虛擬主機中實現(xiàn)身份驗證,那么我們就把如下信息加入某個虛擬主機中即可)
<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的流量監(jiān)控頁面了,如下圖
在這篇文章中我有一個很大的疑惑:我沒有在Linux系統(tǒng)中安裝SNMP,在網(wǎng)上,我看到不少網(wǎng)友針對交換機每個端口流量的監(jiān)控還在系統(tǒng)上再安裝SNMP,個人感覺沒必要,因為我們是監(jiān)控的交換機每個端口出入的流量。倘若我們要監(jiān)控的是某臺服務器的流量,才需要在某臺服務器上安裝SNMP。
億恩-天使(QQ:530997) 電話 037160135991 服務器租用,托管歡迎咨詢。 本文出自:億恩科技【mszdt.com】 |