MRTG的網絡流量監測研究與應用(研究篇)
目前,IP綜合網管系統已實現了基于IP的網絡設備的拓撲管理、性能和告警等多項指標的管理,功能非常強大,但在實際使用過程中發現由于接入層設備種類繁雜,端口數量也非常多,如果全部由這套系統來管理,會加重系統的負荷,造成系統過于龐大,影響實際使用效果。
當網絡發生故障時,我們希望能最快地發現故障、定位故障并解決故障,因此,要對所有接人設備進行管理,要了解網絡的詳細運行情況,包括端口數據流量(如端口總速率、數據包速率)、設備運行性能(如CPU利用率)、網絡健康狀況(如網絡時延)等各項指標,并將它們直觀地表現出來。
因此一款操作簡單、功能齊全的流量監測軟件將為網絡管理提供更多的便利,解決網絡管理人員面臨的諸多技術問題。MRTG(Multi Router Traffic Grapher)是一個典型的流量監測工具,由于具有良好的可移植性、可擴展性和圖形化界面,同時還是開放源代碼的免費軟件,因此在國際范圍內得到了非常廣泛的應用。
1 SNMP協議
簡單網絡管理協議(Simple Network ManagementProtocol,SNMP)是基于TCP/IP的互聯網管理協議,它是由SGMP協議發展而來的。
SNMP定義了傳送管理信息的協議消息格式及管理站和設備代理之間進行消息傳送的規程,能對互聯網中不同類型的設備進行監控和管理。Internet上的SNMP運行在TCP/IP協議族之上,但是其傳輸層協議采用的是無連接的UDP而不是TCP。
基于SNMP的網絡管理模型包括四個關鍵元素:網絡管理站(NMS)、管理代理(Agent)、管理信息庫(MIB)和網絡管理協議。SNMP采用了C/S模型的特殊形式——代理/管理站模型,對于網絡設備的管理是通過管理工作站與SNMP代理間的交互工作完成的。其工作原理如圖1所示。
Agent是常駐在被管對象上的軟件,它接收來自NMS的指令和發送響應信息,操作MIB并對網絡設備進行監控和配置。NMS和Agent通過發送SNMP消息進行通信。SNMP協議提供了Get,Set和Trap三類操作。SNMP協議利用UDP協議的161/162端口進行通信。
在SNMP中,采用了符合ASN.1(AbstractSyntax Notation)規范的對象標識方法OID(ObjectIdentifier),以此來惟一地標識網絡所需管理的對象或對象組。如IP協議的OID為{1,3,6,1,2,1,4}。
SNMP從產生到現在一共發展有3個主版本,分別為SNMPv1,SNMPv2和SNMPv3。其中SNMPv2又分為若干個子版本,其中SNMPv2c應用最為廣泛,它在計數時使用了64位字長,而SNMPv1使用的是32位。
2 MRTG的工作原理及組成
MRTG(多路由器流量圖示器)是一個基于SNMP協議的監控網絡流量和主機資源的開放源代碼的管理工具。它通過SNMP請求得到被監控對象的流量信息,將這些流量信息以PNG格式的圖形表示,并將包含這些圖形的HTML文檔通過Web方式顯示給用戶,非常直觀地顯示流量負載。
MRTG是用Per1和C編寫的,可以工作在Unix和Windows NT環境下。MRTG的Perl腳本用以使用SNMP來讀取路由器的流量信息,性能高的C程序則用來記錄負載數據,創建代表被監控網絡連接的圖形,這些圖嵌入在Web頁面中。除了獲得每天的詳細信息之外,MRTG還可以創建前7天、前4個星期甚至前12個月內網絡流量的直觀表示。
MRTG主要由4個模塊組成:
基礎模塊 包括定義SMI要求的數據結構,并提供相應的方法通過SNMP操作獲取被管對象信息的SNMP模塊和MRTG支持模塊。
日志文件 MRTG使用的日志文件以ASCII文本形式來記錄測得的流量數據,日志文件由Rate Up模塊進行更新。
日志更新和繪圖工具 在該模塊中,MRTG使用C語言程序來完成日志文件的更新和統計圖形的生成,與原來用Perl實現相比,大大提高了效率。
配置和網頁組織工具 MRTG提供了相關的配置文件生成工具cfgmaker和網頁組織工具indexmaker。通過運行cfgmaker,利用SNMP協議讀取被管設備中的對象信息,自動生成該設備的框架配置文件。Index-maker通過讀取配置文件中的Target描述獲得對象信息,并用這些信息組織成該對象的HTML頁。
下一節:應用篇
【編輯推薦】