基于MRTG的網(wǎng)絡(luò)流量監(jiān)測(cè)研究與應(yīng)用
1 SNMP協(xié)議
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network ManagementProtocol,SNMP)是基于TCP/IP的互聯(lián)網(wǎng)管理協(xié)議,它是由SGMP協(xié)議發(fā)展而來(lái)的。SNMP定義了傳送管理信息的協(xié)議消息格式及管理站和設(shè)備代理之間進(jìn)行消息傳送的規(guī)程,能對(duì)互聯(lián)網(wǎng)中不同類型的設(shè)備進(jìn)行監(jiān)控和管理。Internet上的SNMP運(yùn)行在TCP/IP協(xié)議族之上,但是其傳輸層協(xié)議采用的是無(wú)連接的UDP而不是TCP。
基于SNMP的網(wǎng)絡(luò)管理模型包括四個(gè)關(guān)鍵元素:網(wǎng)絡(luò)管理站(NMS)、管理代理(Agent)、管理信息庫(kù)(MIB)和網(wǎng)絡(luò)管理協(xié)議。SNMP采用了C/S模型的特殊形式——代理/管理站模型,對(duì)于網(wǎng)絡(luò)設(shè)備的管理是通過(guò)管理工作站與SNMP代理間的交互工作完成的。其工作原理如圖1所示。
Agent是常駐在被管對(duì)象上的軟件,它接收來(lái)自NMS的指令和發(fā)送響應(yīng)信息,操作MIB并對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行監(jiān)控和配置。NMS和Agent通過(guò)發(fā)送SNMP消息進(jìn)行通信。SNMP協(xié)議提供了Get,Set和Trap三類操作。SNMP協(xié)議利用UDP協(xié)議的161/162端口進(jìn)行通信。在SNMP中,采用了符合ASN.1(AbstractSyntax Notation)規(guī)范的對(duì)象標(biāo)識(shí)方法OID(ObjectIdentifier),以此來(lái)惟一地標(biāo)識(shí)網(wǎng)絡(luò)所需管理的對(duì)象或?qū)ο蠼M。如IP協(xié)議的OID為{1,3,6,1,2,1,4}。
本文引用地址:http://m.butianyuan.cn/article/201706/353704.htm
SNMP從產(chǎn)生到現(xiàn)在一共發(fā)展有3個(gè)主版本,分別為SNMPv1,SNMPv2和SNMPv3。其中SNMPv2又分為若干個(gè)子版本,其中SNMPv2c應(yīng)用最為廣泛,它在計(jì)數(shù)時(shí)使用了64位字長(zhǎng),而SNMPv1使用的是32位。
2 MRTG的工作原理及組成
MRTG(多路由器流量圖示器)是一個(gè)基于SNMP協(xié)議的監(jiān)控網(wǎng)絡(luò)流量和主機(jī)資源的開放源代碼的管理工具。它通過(guò)SNMP請(qǐng)求得到被監(jiān)控對(duì)象的流量信息,將這些流量信息以PNG格式的圖形表示,并將包含這些圖形的HTML文檔通過(guò)Web方式顯示給用戶,非常直觀地顯示流量負(fù)載。
MRTG是用Per1和C編寫的,可以工作在Unix和Windows NT環(huán)境下。MRTG的Perl腳本用以使用SNMP來(lái)讀取路由器的流量信息,性能高的C程序則用來(lái)記錄負(fù)載數(shù)據(jù),創(chuàng)建代表被監(jiān)控網(wǎng)絡(luò)連接的圖形,這些圖嵌入在Web頁(yè)面中。除了獲得每天的詳細(xì)信息之外,MRTG還可以創(chuàng)建前7天、前4個(gè)星期甚至前12個(gè)月內(nèi)網(wǎng)絡(luò)流量的直觀表示。
MRTG主要由4個(gè)模塊組成:
基礎(chǔ)模塊 包括定義SMI要求的數(shù)據(jù)結(jié)構(gòu),并提供相應(yīng)的方法通過(guò)SNMP操作獲取被管對(duì)象信息的SNMP模塊和MRTG支持模塊。
日志文件 MRTG使用的日志文件以ASCII文本形式來(lái)記錄測(cè)得的流量數(shù)據(jù),日志文件由Rate Up模塊進(jìn)行更新。
日志更新和繪圖工具 在該模塊中,MRTG使用C語(yǔ)言程序來(lái)完成日志文件的更新和統(tǒng)計(jì)圖形的生成,與原來(lái)用Perl實(shí)現(xiàn)相比,大大提高了效率。
配置和網(wǎng)頁(yè)組織工具 MRTG提供了相關(guān)的配置文件生成工具cfgmaker和網(wǎng)頁(yè)組織工具indexmaker。通過(guò)運(yùn)行cfgmaker,利用SNMP協(xié)議讀取被管設(shè)備中的對(duì)象信息,自動(dòng)生成該設(shè)備的框架配置文件。Index-maker通過(guò)讀取配置文件中的Target描述獲得對(duì)象信息,并用這些信息組織成該對(duì)象的HTML頁(yè)。
3基于MRTG的流量監(jiān)測(cè)的實(shí)現(xiàn)與分析
3.1 MRTG的安裝
MRTG是用Perl編寫的,它的運(yùn)行需要Perl的支持,所以在安裝MRTG之前必須下載并安裝Perl語(yǔ)言。由于MRTG的流量監(jiān)測(cè)是基于Web頁(yè)面的,必須安裝Web服務(wù)器軟件,在這里選擇了運(yùn)用非常廣泛的Apache。在安裝MRTG時(shí),選擇了目前比較穩(wěn)定的版本MRTG-2.12.2。
3.2 MRTG的配置
MRTG的配置是實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)流量監(jiān)測(cè)的關(guān)鍵,而MRTG的配置信息都保存在mrtg.cfg文件中,對(duì)MRTG的配置實(shí)際上就是生成和配置mrtg.cfg文件。
在配置系統(tǒng)之前,需要收集以下信息:被監(jiān)控設(shè)備的IP地址或主機(jī)名;如果還想監(jiān)測(cè)除字節(jié)流量以外的其他信息,需要知道設(shè)備的SNMP OID;最后還要知道所監(jiān)控設(shè)備的SNMP共同體認(rèn)證名(community string)信息,缺省值是public。
MRTG的配置信息都是保存在mrtg.cfg文件中的,創(chuàng)建該文件并且在其中定義希望的監(jiān)控特性。一般不需要直接手工編輯該配置文件,因?yàn)镸RTG軟件包提供有cfgmaker配置工具,根據(jù)運(yùn)行參數(shù)可以自動(dòng)生成mrtg.cfg配置文件。
首先在www服務(wù)器的Document Root目錄下創(chuàng)建一個(gè)子目錄用來(lái)存放MRTG生成的統(tǒng)計(jì)文件,這里假設(shè)apache是默認(rèn)安裝,因此Document Root在/var/www/html目錄下創(chuàng)建子目錄mrtg。下面就生成MRTG配置文件:
這里的一global參數(shù)表示后面的選項(xiàng)是對(duì)后面指定的設(shè)備都是有效的(如果希望對(duì)多個(gè)設(shè)備進(jìn)行監(jiān)控時(shí),該參數(shù)就會(huì)發(fā)生作用)。WorkDir用來(lái)指示MRTG的工作目錄;Options用來(lái)指定一些特定的選項(xiàng),這里的grow-right,bits是用來(lái)指定默認(rèn)options配置的,對(duì)于常見的應(yīng)用來(lái)說(shuō)默認(rèn)options配置就可以滿足需求了。
3.3設(shè)備端口流量監(jiān)控
可以手工生成配置文件,但對(duì)于一般情況,可以使用MRTG自帶的腳本來(lái)生成配置文件,如:
前面提到,SNMPv1是使用32位字長(zhǎng)進(jìn)行計(jì)數(shù),因此如果采集間隔是5 min,所能正確表示的最大流量應(yīng)該是:
因此,如果鏈路流量在接近或超過(guò)此數(shù)值時(shí),計(jì)算出來(lái)的結(jié)果不再準(zhǔn)確,這時(shí)候便只能使用SNMPv2計(jì)數(shù)器,在配置MRTG腳本,可以使用public@x.x.x.x.:::::2來(lái)指定讀取SNMPv2的MIB值。
3.4 PING時(shí)延監(jiān)控
在進(jìn)行PING時(shí)延監(jiān)控時(shí),我們使用了另一個(gè)Perl腳本mrtg-ping,同時(shí)也可以監(jiān)控丟包率,配置文件如下:
從以上例子可以看出,MRTG的監(jiān)控對(duì)象就是Target語(yǔ)句后的內(nèi)容,這里可以是SNMP的MIB對(duì)象,也可是執(zhí)行腳本得到的數(shù)值。由此可以看到,MRTG監(jiān)控的可擴(kuò)充性非常好,可以自己編寫腳本來(lái)獲得感興趣的數(shù)據(jù),如服務(wù)器CPU利用率、內(nèi)存利用率、磁盤空間、DNS服務(wù)器查詢次數(shù)、Cache服務(wù)器Hit次數(shù)、甚至CPU溫度等,MRTG都可將它們用直觀圖表呈現(xiàn)出來(lái)。
4結(jié)語(yǔ)
綜上所述,MRTG在網(wǎng)絡(luò)管理中的應(yīng)用是非常有效的。我們只要靈活運(yùn)用SNMP查詢工具、系統(tǒng)狀態(tài)檢測(cè)工具,配合Per1編寫傳回字符串處理程序,即可完成MRTG的外掛程序,最后再搭配合適的MRTG配置命令即可產(chǎn)生另類實(shí)時(shí)流量統(tǒng)計(jì)圖表。因此,對(duì)MRTG的應(yīng)用和持續(xù)開發(fā),不但可以幫助網(wǎng)絡(luò)管理員隨時(shí)掌握網(wǎng)絡(luò)系統(tǒng)和設(shè)備運(yùn)行狀態(tài),還可以降低企業(yè)或組織的網(wǎng)絡(luò)設(shè)備維護(hù)成本。
評(píng)論