使用MRTG打造IDC網(wǎng)絡(luò)流量監(jiān)控平臺(tái) |
發(fā)布時(shí)間: 2012/9/16 1:32:17 |
一個(gè)IDC機(jī)房,倘若沒(méi)有流量監(jiān)控平臺(tái),那就等于兩眼一抹黑。利用流量監(jiān)控不僅能監(jiān)控一些服務(wù)器的訪問(wèn)量情況,而且還能監(jiān)控一些大規(guī)模的網(wǎng)絡(luò)攻擊。下面我們來(lái)看一個(gè)比較老的流量監(jiān)控軟件—MRTG MRTG有windows版本和Linux版本。今天我們看一下Linux的MRTG是如何搭建的。
MRTG(Multi Router Traffic Grapher),通常講是一個(gè)監(jiān)控網(wǎng)絡(luò)鏈路流量負(fù)載的開(kāi)源軟件,它可以從所有運(yùn)行SNMP協(xié)議的設(shè)備上(包括服務(wù)器、路由器、交換機(jī)等)抓取信息。事實(shí)上它不僅可以監(jiān)控網(wǎng)絡(luò)設(shè)備,任何其它的支持SNMP協(xié)議的設(shè)備都可以做為MRTG的監(jiān)控對(duì)象,并自動(dòng)生成包含PNG圖形格式的HTML文檔,通過(guò)HTTP方式顯示給用戶(hù)。
一、安裝GD庫(kù)(用于圖片的生成)
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庫(kù),同樣采用源碼編譯,在編譯過(guò)程中碰到 `png_check_sig’ 錯(cuò)誤。
google了一下,發(fā)現(xiàn)由于使用的新的 libpng 1.4版本,去掉了png_check_sig函數(shù),替換為了png_sig_check函數(shù) ,于是編輯gd庫(kù)的 gd_png.c文件,將 if (!png_check_sig (sig, 8)) { /* bad signature */ return NULL; } 修改為 if (png_sig_cmp (sig, 0, 8)) { /* bad signature */ return NULL; } 再次編譯通過(guò) 來(lái)源:http://www.sunnyu.com/?p=211 四、配置MRTG
1、 生成MRTG配置文件mrtg.cfg,用于存放mrtg的配置信息
首先我們新建一個(gè)目錄,用于存放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)控的交換機(jī),luwenju為交換機(jī)SNMP的團(tuán)體名,202.106.0.20是交換機(jī)的管理IP地址。交換機(jī)上如何開(kāi)啟SNMP請(qǐng)自行參閱資料,有一點(diǎn)切忌:為了服務(wù)器的安全起見(jiàn),交換機(jī)上的SNMP配置時(shí)應(yīng)該配置成只讀,不允許有寫(xiě)入或者執(zhí)行權(quán)限!
2、修改MRTG配置文件mrtg.cfg
#vi /usr/local/mrtg/etc/mrtg.cfg
把Workdir后的路徑改成/usr/local/apache/htdocs 意思是指定mrtg流量頁(yè)面存放目錄.把#Options[_]: growright, bits 前面的#去掉,意思是定義流量單位大小,然后在另起一行,加入Language:Chinese 意思是使mrtg支持中文
3、收集交換機(jī)每個(gè)端口的狀態(tài)信息并把搜集的信息存儲(chǔ)到MRTG配置文件當(dāng)中
#env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
注:執(zhí)行時(shí)多執(zhí)行幾遍,只到不出現(xiàn)任何提示信息
4、為交換機(jī)生成html文件,以供用戶(hù)訪問(wèn)
# /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)控信息自動(dòng)更新
我們可以利用cron進(jìn)程,讓MRTG自動(dòng)刷新,方法如下
#crontab -e
然后寫(xiě)入*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
意思是讓MRTG每5分子更新一次
6.測(cè)試
下面我們?cè)跒g覽器中輸入服務(wù)器的IP地址或者域名就可以看到我們要監(jiān)控的流量了,如下圖
四、為MRTG做授權(quán)訪問(wèn)
倘若一個(gè)機(jī)房的網(wǎng)絡(luò)帶寬使用情況誰(shuí)查看都可以,那未免也有點(diǎn)太那啥了吧。。。 因此,我們做授權(quán)訪問(wèn)是有必要的
1. 建立虛擬用戶(hù)
建立這個(gè)虛擬用戶(hù)的目的就在于只讓這個(gè)用戶(hù)訪問(wèn)MRTG的監(jiān)控頁(yè)面,首先我們建立一個(gè)目錄,用于存放虛擬用戶(hù)的用戶(hù)密碼
# mkdir /etc/webpasswd
#/usr/local/apache/bin/htpasswd -c /etc/webpasswd/luwenjupwd luwenju
注:執(zhí)行完上述命令后會(huì)要求設(shè)置此用戶(hù)的密碼,我們輸入想要設(shè)置的密碼即可。Apache自帶的htpasswd命令提供了建立和更新存儲(chǔ)用戶(hù)名、密碼的文本文件的功能。-c選項(xiàng)表示無(wú)論口令文件是否已經(jīng)存在,都會(huì)重新寫(xiě)入文件并刪去原有內(nèi)容。
2、配置用戶(hù)認(rèn)證
修改apache配置文件vi /usr/local/apache/conf/httpd.conf 在配置文件最后加入以下內(nèi)容(倘若我們想在某個(gè)虛擬主機(jī)中實(shí)現(xiàn)身份驗(yàn)證,那么我們就把如下信息加入某個(gè)虛擬主機(jī)中即可)
<Directory "/usr/local/apache/htdocs">
AuthType Basic
AuthName "Rui Sheng IDC"
AuthUserFile /etc/webpasswd/luwenjupwd
Require user luwenju
</Directory>
注:Directory定義我們針對(duì)那么目錄進(jìn)行授權(quán),我們配置MRTG時(shí)讓html文件生成到了/usr/local/apache/htdocs
AuthType 的意思是采用哪種模式進(jìn)行驗(yàn)證,我們使用basic
AuthName 的意思是登陸窗口的名稱(chēng)
AuthUserFile 的的意思是指定用戶(hù)的密碼配置文件
Require user 的意思是允許哪個(gè)用戶(hù)來(lái)訪問(wèn)
OK,完成上面設(shè)置后我們重啟一下Apache,然后再瀏覽器中訪問(wèn)時(shí)會(huì)彈出以下頁(yè)面
然后我們輸入正確的用戶(hù)名和密碼后就可以看到MRTG的流量監(jiān)控頁(yè)面了,如下圖
在這篇文章中我有一個(gè)很大的疑惑:我沒(méi)有在Linux系統(tǒng)中安裝SNMP,在網(wǎng)上,我看到不少網(wǎng)友針對(duì)交換機(jī)每個(gè)端口流量的監(jiān)控還在系統(tǒng)上再安裝SNMP,個(gè)人感覺(jué)沒(méi)必要,因?yàn)槲覀兪潜O(jiān)控的交換機(jī)每個(gè)端口出入的流量。倘若我們要監(jiān)控的是某臺(tái)服務(wù)器的流量,才需要在某臺(tái)服務(wù)器上安裝SNMP。
億恩-天使(QQ:530997) 電話 037160135991 服務(wù)器租用,托管歡迎咨詢(xún)。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |