在一個網絡中,作為網絡工程師或者網絡管理員,需要隨時了解網絡的各種狀態,以判斷網絡是否處於健康狀態或者隨時了解網絡的流量、每個路由器的流量、每個交換機端口的流量…,以供年度報告時向上級領導提供詳實的數據及圖形報告。在這裡,我先把自己有關如何獲取網絡流量的方法向大家講解一下,如果有必要,您可以立即動手,自己做一個公司的網絡流量監控圖出來。網絡流量的監控需要涉及到SNMP、PERL、MRTG和一點網頁的相關知識,現在我就 STEP BY STEP給大家講解怎麼具體實施。我的水平有限,如有錯誤或者更好的解決辦法,還懇請大家提出,謝謝!
注:文中有部份資料從Internet網絡收集。
目錄
在WINDOWS下安裝MRTG全攻略--網絡流量監控 1
代序 1
目錄 1
SNMP簡介 2
MRTG簡介 4
STEP BY STEP教您安裝PERL 7
STEP BY STEP教您設置SNMP 11
STEP BY STEP教您安裝MRTG 14
把流量圖加入您的網站 19
SNMP簡介
一個網絡管理系統一般要包含以下幾個元素:①若干個(可能很多個)需要被管理的網絡設 備節點,如 路由器、服務器等設備,每個節點上都運行著一個稱為設備代理(agent)的應 用進程,其實現對被管理設 備的各種被管理對象的信息如流量等的搜集和對這些被管對象 的訪問的支持;②至少一個管理工作站,該 管理站運行著管理平台應用系統,實現為管理 員提供對被管設備的可視化的圖形界面,從而使管理員可以 方便的進行管理;③一個管理 協議,用來定義設備代理和管理工作站之間管理信息傳送的規程。其中管理 協議的操作是 在管理框架下進行的,管理框架定義了和安全相關的認證,授權,訪問控制和加密策略等各 種安全防護框架。
在運行TCP/IP協議的互聯網環境中,管理協議標准是簡單網絡管理協議(Simple Network Management Protocol,SNMP),其定義了傳送管理信息的協議消息格式及管理站和設備代 理相互之間進行消息傳送的規 程。
出於業界對網絡管理協議標准化的迫切要求的驅動,IETF於1990發布了SNMPv1的正式RFC 文檔;其設 計思想重點放在保證協議的簡單性、靈活性和可擴展性上,並希望把SNMP作為 一個過渡性的網管協議來作 為實現對互連的網絡設備進行管理時遵循的標准,待OSI的網 絡管理協議—CMIP的開發、實現和標准化成 熟和完善到可以在業界推廣之後,再用CMIP來 替換SNMP。但是由於各種的原因,CMIP並沒有替代SNMP,而 SNMP發展為業界的標准。
SNMP一共發展有3個主版本,分別為SNMPv1 ,SNMPv2和SNMPv3。其中SNMPv2又分為若干個 子版本,其中 SNMPv2c應用最為廣泛:
SNMPv1: 是第一個正式協議版本,在RFC1155-RFC1158中定義,該版本采用了基於共同體 名的安全機制;
SNMPv2c: 這個版本被稱為基於共同體名的SNMPv2,使用基於共同體名的安全機制和 SNMPv2p做出的協議操 作方面的擴充,由RFC1901-RFC1906定義;
SNMPv3: 該協議版本采用基於用戶的安全機制,其安全機制是在SNMPv2u和SNMPv2*基礎上 進行大量的評議 以後進行了更新,並且對協議機的邏輯功能模塊的進行了劃分而保證了良 好的可擴充性,由RFC2271- RFC2275所定義。
運行SNMP管理系統的原理及SNMP協議
使用SNMP協議的網絡管理系統管理結構工作一般包括:管理進程通過定時向各個設備的設 備代理進程 發送查詢請求消息(以輪詢方式),來跟蹤各個設備的狀態;而當設備出現異常 事件如設備冷啟動等時,設 備代理進程主動向管理進程發送陷阱消息,匯報出現的異常事 件。這些輪詢消息和陷阱消息的發送和接受 規程及其格式定義都是由SNMP協議定義的;而 被管理設備將其各種管理對象的信息都存放在一個稱為管理 信息庫(Management Information Base)庫結構中。
其中SNMP協議是運行在UDP協議之上,它利用的是UDP協議的161/162端口。其中161端口被 設備代理監 聽,等待接受管理者進程發送的管理信息查詢請求消息;162端口由管理者進 程監聽等待設備代理進程發 送的異常事件報告陷阱消息,如Trap。
設備的所有的需要被管理的信息被看作一個各種被管理對象的集合,這些被管理對象由 OSI定義在一 個被稱作管理信息庫(Management Information Base,MIB)的虛擬的信息庫 中。
管理對象庫MIB
MIB 是一個按照層次結構組織的樹狀結構(定義方式類似於域名系統),管理對象為定義 為樹中的相 應葉子節點。管理對象是按照模塊的形式組織,每個對象的父節點表示該種對 象屬於上層的哪一個模塊。 而且OSI為樹中每一層的每個節點定義唯一的一個數字標識, 每層中的該數字標識從1開始遞增,這樣樹中 的每個節點都可以用從根開始到目的節點的 相應的標識對應的一連串的數字來表示,如1.3.6.1.2.1.1表 示了MIBII中系統組子樹,而 1.3.6.1.2.1.1.1.0表示系統組中的系統描述(sytem Descrption)對象。每個 對象的一連 串數字表示被稱為對象標識符(Object Indentifier,OID)。
相關的一組對象的集合被定義為一個MIB模塊。這些模塊使用OSI的抽象語法標記 (Abstract Syntax Notation One,ASN.1)的一個子集寫成。該子集被定義為管理信息結 構(Management Information,SMI)。
SNMP的消息在發送和傳輸時消息是采用基本編碼規則(BER)對消息進行編碼。
SNMP基本的標准MIB庫是MIBII,具體請參考RFC 1213。
SNMP協議操作
SNMP提供有三類操作,分別為Get,Set和Trap。
Get操作實現對被管理對象所表示的管理信息的讀操作。在SNMPv1中,GET操作具體一共有 兩種形式
Get 和GetNext操作: Get操作指示直接讀取操作參數指定的OID所表示的被管理對象的管 理信息 值。GetNext操作指示讀取操作參數指定的OID所表示的被管理對象在MIB樹中按照 字典順序的下一個被管 理對象的管理信息的值。在SNMPv2中,增加了一種GetBulk操作, 其是Get和GetNext的綜合,是為了提高 對被管理信息的訪問的效率而增加的。
Set操作實現對被管理對象的管理信息進行寫操作,其實現直接對操作參數指定的OID所表 示的被管理 對象對應的管理信息的值的設置。
前面幾種消息是由管理工作站主動實現對被管理設備進行輪詢訪問時發出以得到被管理設 備的各種信 息;而在被管理設備出現異常事件需要及時向管理工作站報告時,就需要Trap 操作,該操作實現被管理設 備向管理工作站報告設備上出現的異常事件,如網絡接口出現 故障或恢復工作,設備重新啟動等信息。另 外在SNMPv2中新增加了一種Inform操作來實現 管理站與管理站之間的通信。
其中上述操作的消息都可以在操作參數中一次指定一個或多個管理對象OID信息,也就是 說一個消息 一次可以實現對多個被管理對象的操作。
SNMPv1和SNMPv2c采用了一種簡單的基於共同體名的安全機制:
管理站和被管設備上都存儲有該充當密碼作用的共同體名;消息發送者(一般是管理者)在 要發送的消 息中的共同體名字段中填入對應於接收者的共同體名,然後以明文方式在網絡 上發送消息,接收方(被管 理設備)接收到消息以後,如果消息格式是正確的,則讀取該字 段,與自身保存的共同體名相比較,來實 現對發送消息者的認證。在一些實現中,對應於 每個共同體名還有一個機器地址列表,來表示只有地址在 這個列表中的機器使用該共同體 名發送的消息才認為是可信的。這裡的共同體名就擔任密碼的作用。同時 對應於每個共同 體名都有一個訪問控制權限,可能值為讀或讀寫。只有請求的操作和使用的共同體名的權 限一致才允許進行。
詳細情況請參考RFC 1157、RFC 1902、RFC 2273、RFC 2274。
MRTG簡介
mrtg具有以下特色:
可移植性:目前可以運行在大多數Unix系統和Windows NT之上。
源碼開放:Mrtg是用perl編寫的,源代碼完全開放。
高可移植性的SNMP支持:Mrtg采用了Simon Leinen編寫的具有高可移植性的SNMP實現模 塊,從而不依賴於 操作系統的SNMP模塊支持。
支持SNMPv2c:MRTG可以讀取SNMPv2c的64位的記數器,從而大大減少了記數器回轉次數。
可靠的接口標識:被監控的設備的接口可以以IP地址、設備描述、SNMP對接口的編號及 Mac地址來標識。
常量大小的日志文件:MRTG的日志不會變大,因為這裡使用了獨特的數據合並算法。
自動配置功能:MRTG自身有配置工具套件,使得配置過程非常簡單。
性能:時間敏感的部分使用C代碼編寫,因此具有很好的性能。
PNG格式圖形:圖形采用GD庫直接產生PNG格式。
可定制性:MRTG產生的web頁面是完全可以定制的。
mrtg的主頁是http://www.mrtg.org,可以從這裡下載軟件。
Mrtg兼容性
mrtg軟件可以運行在以下的操作系統上:
Linux 1.2.x, 2.0.x, 2.2.x, 2.4.x (Intel and Alpha and Sparc and PowerPC)
Linux MIPS, Linux S/390
SunOS 4.1.3
Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8
AIX 4.1.4, 4.2.0.0, 4.3.2
HPUX 9,10,11
WindowsNT 3.51, 4.0, 2k, XP
IRIX 5.3, 6.2
BSDI BSD/OS 2.1, 4.x, 3.1
NetBSD 1.5.x
FreeBSD 2.1.x, 2.2.x, 3.1, 3.4, 4.x
OpenBSD 2.x
Digital Unix 4.0
SCO Open Server 5.0
Reliant UNIX
NeXTStep 3.3
OpenStep 4.2
Mac OS X 10.1
And about and other sensible Unix
可以通過mrtg監控的設備(目前市場上絕大多數產品都支持SNMP協議,只要支持SNMP協議的設備就都可以 使用MRTG來監控):
3Com NETBuilders, LANplex 6012 and 2500
3Com etherswitches and hubs
3Com Linkswitch 1000 1100 3300
3Com