RHEL5.3下MRTG+SNMP的搭建
一、MRTG的簡介
Mrtg(Multi Router Traffic Grapher,MRTG)是一個(gè)監(jiān)控網(wǎng)絡(luò)鏈路流量負(fù)載的工具軟件,它通過snmp協(xié)議從設(shè)備得到設(shè)備的流量信息,并將流量負(fù)載以包含PNG格式的圖形的HTML文檔方式顯示給用戶,以非常直觀的形式顯示流量負(fù)載(可以在網(wǎng)站http://www.stat.ee.ethz.ch/mrtg/)得到mrtg的輸出結(jié)果示例。
關(guān)于mrtg的最詳細(xì)的信息可以從http://people.ee.ethz.ch/~oetiker/webtools/mrtg 得到。
mrtg具有以下特色:
可移植性:目前可以運(yùn)行在大多數(shù)Unix系統(tǒng)和Windows NT之上。
源碼開放:Mrtg是用perl編寫的,源代碼完全開放。
高可移植性的SNMP支持:Mrtg采用了Simon Leinen編寫的具有高可移植性的SNMP實(shí)現(xiàn)模塊,從而不依賴于操作系統(tǒng)的SNMP模塊支持。
支持SNMPv2c:MRTG可以讀取SNMPv2c的64位的記數(shù)器,從而大大減少了記數(shù)器回轉(zhuǎn)次數(shù)。
可靠的接口標(biāo)識:被監(jiān)控的設(shè)備的接口可以以IP地址、設(shè)備描述、SNMP對接口的編號及Mac地址來標(biāo)識。
常量大小的日志文件:MRTG的日志不會變大,因?yàn)檫@里使用了獨(dú)特的數(shù)據(jù)合并算法。
自動配置功能:MRTG自身有配置工具套件,使得配置過程非常簡單。
性能:時(shí)間敏感的部分使用C代碼編寫,因此具有很好的性能。
PNG格式圖形:圖形采用GD庫直接產(chǎn)生PNG格式。
可定制性:MRTG產(chǎn)生的web頁面是完全可以定制的。
mrtg的主頁是http://www.mrtg.org,可以從這里下載軟件。
二、SNMP的簡介
一個(gè)網(wǎng)絡(luò)管理系統(tǒng)一般要包含以下幾個(gè)元素:①若干個(gè)(可能很多個(gè))需要被管理的網(wǎng)絡(luò)設(shè)備節(jié)點(diǎn),如路由器、服務(wù)器等設(shè)備,每個(gè)節(jié)點(diǎn)上都運(yùn)行著一個(gè)稱為設(shè)備代理(agent)的應(yīng)用進(jìn)程,其實(shí)現(xiàn)對被管理設(shè)備的各種被管理對象的信息如流量等的搜集和對這些被管對象的訪問的支持;②至少一個(gè)管理工作站,該管理站運(yùn)行著管理平臺應(yīng)用系統(tǒng),實(shí)現(xiàn)為管理員提供對被管設(shè)備的可視化的圖形界面,從而使管理員可以方便的進(jìn)行管理;③一個(gè)管理協(xié)議,用來定義設(shè)備代理和管理工作站之間管理信息傳送的規(guī)程。其中管理協(xié)議的操作是在管理框架下進(jìn)行的,管理框架定義了和安全相關(guān)的認(rèn)證,授權(quán),訪問控制和加密策略等各種安全防護(hù)框架。
在運(yùn)行TCP/IP協(xié)議的互聯(lián)網(wǎng)環(huán)境中,管理協(xié)議標(biāo)準(zhǔn)是簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP),其定義了傳送管理信息的協(xié)議消息格式及管理站和設(shè)備代理相互之間進(jìn)行消息傳送的規(guī)程。
出于業(yè)界對網(wǎng)絡(luò)管理協(xié)議標(biāo)準(zhǔn)化的迫切要求的驅(qū)動,IETF于1990發(fā)布了SNMPv1的正式RFC文檔;其設(shè)計(jì)思想重點(diǎn)放在保證協(xié)議的簡單性、靈活性和可擴(kuò)展性上,并希望把SNMP作為一個(gè)過渡性的網(wǎng)管協(xié)議來作為實(shí)現(xiàn)對互連的網(wǎng)絡(luò)設(shè)備進(jìn)行管理時(shí)遵循的標(biāo)準(zhǔn),待OSI的網(wǎng)絡(luò)管理協(xié)議—CMIP的開發(fā)、實(shí)現(xiàn)和標(biāo)準(zhǔn)化成熟和完善到可以在業(yè)界推廣之后,再用CMIP來替換SNMP。但是由于各種的原因,CMIP并沒有替代SNMP,而SNMP發(fā)展為業(yè)界的標(biāo)準(zhǔn)。
SNMP一共發(fā)展有3個(gè)主版本,分別為SNMPv1 ,SNMPv2和SNMPv3。其中SNMPv2又分為若干個(gè)子版本,其中SNMPv2c應(yīng)用最為廣泛:
SNMPv1: 是第一個(gè)正式協(xié)議版本,在RFC1155-RFC1158中定義,該版本采用了基于共同體名的安全機(jī)制;
SNMPv2c: 這個(gè)版本被稱為基于共同體名的SNMPv2,使用基于共同體名的安全機(jī)制和SNMPv2p做出的協(xié)議操作方面的擴(kuò)充,由RFC1901-RFC1906定義;
SNMPv3: 該協(xié)議版本采用基于用戶的安全機(jī)制,其安全機(jī)制是在SNMPv2u和SNMPv2*基礎(chǔ)上進(jìn)行大量的評議以后進(jìn)行了更新,并且對協(xié)議機(jī)的邏輯功能模塊的進(jìn)行了劃分而保證了良好的可擴(kuò)充性,由RFC2271-RFC2275所定義。
運(yùn)行SNMP管理系統(tǒng)的原理及SNMP協(xié)議
使用SNMP協(xié)議的網(wǎng)絡(luò)管理系統(tǒng)管理結(jié)構(gòu)工作一般包括:管理進(jìn)程通過定時(shí)向各個(gè)設(shè)備的設(shè)備代理進(jìn)程發(fā)送查詢請求消息(以輪詢方式),來跟蹤各個(gè)設(shè)備的狀態(tài);而當(dāng)設(shè)備出現(xiàn)異常事件如設(shè)備冷啟動等時(shí),設(shè)備代理進(jìn)程主動向管理進(jìn)程發(fā)送陷阱消息,匯報(bào)出現(xiàn)的異常事件。這些輪詢消息和陷阱消息的發(fā)送和接受規(guī)程及其格式定義都是由SNMP協(xié)議定義的;而被管理設(shè)備將其各種管理對象的信息都存放在一個(gè)稱為管理信息庫(Management Information Base)庫結(jié)構(gòu)中。
其中SNMP協(xié)議是運(yùn)行在UDP協(xié)議之上,它利用的是UDP協(xié)議的161/162端口。其中161端口被設(shè)備代理監(jiān)聽,等待接受管理者進(jìn)程發(fā)送的管理信息查詢請求消息;162端口由管理者進(jìn)程監(jiān)聽等待設(shè)備代理進(jìn)程發(fā)送的異常事件報(bào)告陷阱消息,如Trap。
設(shè)備的所有的需要被管理的信息被看作一個(gè)各種被管理對象的集合,這些被管理對象由OSI定義在一個(gè)被稱作管理信息庫(Management Information Base,MIB)的虛擬的信息庫中。
管理對象庫MIB
MIB是一個(gè)按照層次結(jié)構(gòu)組織的樹狀結(jié)構(gòu)(定義方式類似于域名系統(tǒng)),管理對象為定義為樹中的相應(yīng)葉子節(jié)點(diǎn)。管理對象是按照模塊的形式組織,每個(gè)對象的父節(jié)點(diǎn)表示該種對象屬于上層的哪一個(gè)模塊。而且OSI為樹中每一層的每個(gè)節(jié)點(diǎn)定義唯一的一個(gè)數(shù)字標(biāo)識,每層中的該數(shù)字標(biāo)識從1開始遞增,這樣樹中的每個(gè)節(jié)點(diǎn)都可以用從根開始到目的節(jié)點(diǎn)的相應(yīng)的標(biāo)識對應(yīng)的一連串的數(shù)字來表示,如1.3.6.1.2.1.1表示了MIBII中系統(tǒng)組子樹,而1.3.6.1.2.1.1.1.0表示系統(tǒng)組中的系統(tǒng)描述(sytem Descrption)對象。每個(gè)對象的一連串?dāng)?shù)字表示被稱為對象標(biāo)識符(Object Indentifier,OID)。
相關(guān)的一組對象的集合被定義為一個(gè)MIB模塊。這些模塊使用OSI的抽象語法標(biāo)記(Abstract Syntax Notation One,ASN.1)的一個(gè)子集寫成。該子集被定義為管理信息結(jié)構(gòu)(Management Information,SMI)。
SNMP的消息在發(fā)送和傳輸時(shí)消息是采用基本編碼規(guī)則(BER)對消息進(jìn)行編碼。
SNMP基本的標(biāo)準(zhǔn)MIB庫是MIBII,具體請參考RFC 1213。
SNMP協(xié)議操作
SNMP提供有三類操作,分別為Get,Set和Trap。
Get操作實(shí)現(xiàn)對被管理對象所表示的管理信息的讀操作。在SNMPv1中,GET操作具體一共有兩種形式
Get和GetNext操作: Get操作指示直接讀取操作參數(shù)指定的OID所表示的被管理對象的管理信息值。GetNext操作指示讀取操作參數(shù)指定的OID所表示的被管理對象在MIB樹中按照字典順序的下一個(gè)被管理對象的管理信息的值。在SNMPv2中,增加了一種GetBulk操作,其是Get和GetNext的綜合,是為了提高對被管理信息的訪問的效率而增加的。
Set操作實(shí)現(xiàn)對被管理對象的管理信息進(jìn)行寫操作,其實(shí)現(xiàn)直接對操作參數(shù)指定的OID所表示的被管理對象對應(yīng)的管理信息的值的設(shè)置。
前面幾種消息是由管理工作站主動實(shí)現(xiàn)對被管理設(shè)備進(jìn)行輪詢訪問時(shí)發(fā)出以得到被管理設(shè)備的各種信息;而在被管理設(shè)備出現(xiàn)異常事件需要及時(shí)向管理工作站報(bào)告時(shí),就需要Trap操作,該操作實(shí)現(xiàn)被管理設(shè)備向管理工作站報(bào)告設(shè)備上出現(xiàn)的異常事件,如網(wǎng)絡(luò)接口出現(xiàn)故障或恢復(fù)工作,設(shè)備重新啟動等信息。另外在SNMPv2中新增加了一種Inform操作來實(shí)現(xiàn)管理站與管理站之間的通信。
其中上述操作的消息都可以在操作參數(shù)中一次指定一個(gè)或多個(gè)管理對象OID信息,也就是說一個(gè)消息一次可以實(shí)現(xiàn)對多個(gè)被管理對象的操作。
SNMPv1和SNMPv2c采用了一種簡單的基于共同體名的安全機(jī)制:
管理站和被管設(shè)備上都存儲有該充當(dāng)密碼作用的共同體名;消息發(fā)送者(一般是管理者)在要發(fā)送的消息中的共同體名字段中填入對應(yīng)于接收者的共同體名,然后以明文方式在網(wǎng)絡(luò)上發(fā)送消息,接收方(被管理設(shè)備)接收到消息以后,如果消息格式是正確的,則讀取該字段,與自身保存的共同體名相比較,來實(shí)現(xiàn)對發(fā)送消息者的認(rèn)證。在一些實(shí)現(xiàn)中,對應(yīng)于每個(gè)共同體名還有一個(gè)機(jī)器地址列表,來表示只有地址在這個(gè)列表中的機(jī)器使用該共同體名發(fā)送的消息才認(rèn)為是可信的。這里的共同體名就擔(dān)任密碼的作用。同時(shí)對應(yīng)于每個(gè)共同體名都有一個(gè)訪問控制權(quán)限,可能值為讀或讀寫。只有請求的操作和使用的共同體名的權(quán)限一致才允許進(jìn)行。
詳細(xì)情況請參考RFC 1157、RFC 1902、RFC 2273、RFC 2274。
三、配置MRTG+SNMP
1、檢查軟件包(都在RHEL5光盤中)
gd-2.0.33-9.4.el5
gd-devel-2.0.33-9.4.el5
perl-5.8.8-18.el5
mod_perl-2.0.4-6.el5
libpng-1.2.10-7.1.el5
libpng-devel-1.2.10-7.1.el5
gcc-4.1.2-44.el5
gcc-c++-4.1.2-44.el5
zlib-1.2.3-3
zlib-devel-1.2.3-3
httpd-2.2.3-22.el5
net-snmp-5.3.2.2-5.el5
mrtg-2.11.1.tar.gz 這個(gè)我們用源代碼包
檢查裝有沒有上面rpm包,沒安裝的話使用yum安裝
2、配置SNMP
被管理站地址為:192.168.0.5
[root@localhost Server]# vi /etc/snmp/snmpd.conf
把文件89行的#去掉
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
在修改文件62行
access notConfigGroup "" any noauth exact systemview none none
改成
access notConfigGroup "" any noauth exact mib2 none none
在文件最后添加
rocommuntity public
3、配置MRTG
配置mrtg,實(shí)現(xiàn)對網(wǎng)絡(luò)設(shè)備的監(jiān)控。mrtg的配置信息都是保存在mrtg.cfg文件中的,創(chuàng)建該文件并且在其中定義希望的監(jiān)控特性。幸運(yùn)的是一般不需要直接手工編輯該配置文件,因?yàn)閙rtg軟件包提供有cfgmaker配置工具,這是一個(gè)腳本文件,根據(jù)運(yùn)行參數(shù)可以自動生成mrtg.cfg配置文件。在mrtg源碼目錄的bin子目錄下你可以得到該工具。
[root@localhost media]# tar -zxvf mrtg-2.11.1.tar.gz -C /usr/local/src/
[root@localhost media]# cd /usr/local/src/mrtg-2.11.1/
[root@localhost mrtg-2.11.1]# ./configure --prefix=/usr/local/mrtg
[root@localhost mrtg-2.11.1]# make && make install
首先在www服務(wù)器的DocumentRoot目錄下創(chuàng)建一個(gè)子目錄用來存放mrtg生成的統(tǒng)計(jì)文件,這里假設(shè)apache是默認(rèn)安裝,因此DocumentRoot在/var/www/html目錄下,我們在該目錄下創(chuàng)建子目錄mrtg:
[root@localhost Server]# mkdir /var/www/html/mrtg
再/var/www/html/mrtg下建一個(gè)p_w_picpaths目錄
[root@localhost ~]# mkdir /var/www/html/mrtg/p_w_picpaths
[root@localhost ~]# cd /usr/local/src/mrtg-2.11.1/
[root@localhost mrtg-2.11.1]# cp ./p_w_picpaths/* /var/www/html/mrtg/p_w_picpaths/
然后需要創(chuàng)建一個(gè)配置文件:
[root@localhost mrtg-2.11.1]# /usr/local/mrtg/bin/cfgmaker
public@192.168.0.5 --global "WorkDir: /var/www/html/mrtg"
--output=/var/www/html/mrtg/lxy.cfg
修改配置文件:已在root目錄下
[root@localhost mrtg-2.11.1]# vi /var/www/html/mrtg/lxy.cfg
將#Options[_]: growright, bits前面的#去掉,在最后加上Language: GB2312
下來運(yùn)行程序
# /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/lxy.cfg
# env LANG=C /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/lxy.cfg
如果有警告錯(cuò),多運(yùn)行幾次次,警告錯(cuò)不再出現(xiàn)就ok了。
制作首頁:
#/usr/local/mrtg/bin/indexmaker --output=/var/www/html/mrtg/index.html --title="CrazyLinux's mrtg server" /var/www/html/mrtg/lxy.cfg
設(shè)定5分鐘運(yùn)行一次:
#crontab -e 編輯模式輸入
[root@localhost Server]# crontab -e
*/5 * * * * /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/lxy.cfg
4、啟動服務(wù)
[root@localhost Server]# service snmpd start
[root@localhost Server]# service http start
http://192.168.0.5/mrtg 你應(yīng)該就可以看到網(wǎng)絡(luò)使用情況的曲線了。
本文出自 “crazylinux工作室” 博客,轉(zhuǎn)載請與作者聯(lián)系!
本文出自 51CTO.COM技術(shù)博客轉(zhuǎn)載于:https://blog.51cto.com/tetop/381951
總結(jié)
以上是生活随笔為你收集整理的RHEL5.3下MRTG+SNMP的搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NFC测试
- 下一篇: ws2_32.dll下载-ws2_32.