侯天雄 馬迅飛 張進鐸 張俊 趙葉平
摘 要: 描述了一種網絡監控系統的設計與實現過程,闡述了系統的功能、設計原理、系統架構及功能模塊,給出了具體實現技術和方法。采用MySQL數據庫系統和PHP編程語言,實現了網絡監控系統的關鍵功能。該系統實現了網絡系統的綜合監控,并通過可視化界面與用戶友好交互。
關鍵詞: 網絡技術; 實時監控; 數據庫; PHP; 可視化
中圖分類號:TP393 文獻標志碼:A 文章編號:1006-8228(2016)01-25-04
Design and implementation of network monitoring system
Hou Tianxiong, Ma Xunfei, Zhang Jinduo, Zhang Jun, Zhao Yeping
(BGP, CNPC, Zhuozhou, Hebei 072750, China)
Abstract: This paper describes the design and implementation of a network monitoring system, the function of the system, design principles, system architecture and functional modules, and shows the specific techniques and methods of implementation. This system adopts MySQL database system and PHP programming language to implement the key functions. The system is a comprehensive monitoring network system which achieves a friendly interaction with the user through a visual interface.
Key words: network technology; real-time monitoring; database; PHP; visualization
0 引言
在信息化時代的大背景下,網絡深入到了人們生活、學習、工作和娛樂等各個領域。網絡技術的飛速發展給人類帶來了前所未有的方便,與此同時,隨著網絡規模的不斷壯大,一個突出的、急需解決的問題也隨之產生,那就是網絡運行的監管。
目前,網絡監控系統分為兩類:一類是網絡設備廠商研發的與設備配套的軟件,這類軟件兼容性較差,只能與配套的硬件設備同時使用,不適用于多種不同廠商的設備混合使用的網絡環境,而且這種軟件價格偏高;另一類網絡監控軟件是第三方通用軟件,這種軟件操作復雜,要求用戶有較高的專業技術水平,而且,這類軟件一般都是針對網絡結構進行分層監管,不能很好的兼顧用戶的日常工作,因此,很難將一款第三方軟件應用到實際工作中去。
針對目前網絡監控軟件的現狀和缺陷,我們設計開發了一套網絡監控系統,通過可視化界面展示監控內容,并能與用戶實現友好交互。
1 SNMP協議
1.1 SNMP簡介
簡單網絡管理協議(SNMP:Simple Network ManagementProtocol)[1-3]是由互聯網工程任務組(IETF:Internet Engineering Task Force)定義的一套網絡管理協議。該協議基于簡單網關監視協議(SGMP:Simple Gateway Monitor Protocol),是管理進程和代理進程之間的通信協議。它由一組網絡管理的標準組成,包含一個應用層協議、數據庫模型和一組資源對象。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何狀況發生。
SNMP管理的網絡主要由三部分組成:被管理的設備、SNMP代理和網絡管理系統(NMS)。網絡中被管理的每個設備都存在一個管理信息庫(MIB),用于收集并儲存管理信息。通過SNMP協議,NMS能獲取這些信息。被管理設備,又稱為網絡單元或者網絡節點,可以是支持SNMP協議的路由器、交換機、服務器或者主機等。
SNMP代理是被管理設備上的一個網絡管理軟件模塊,擁有本地設備的相關管理信息,并用于將他們轉換成與SNMP兼容的格式,傳遞給NMS。NMS運行應用程序來實現監控被管理設備的功能。另外,NMS還為網絡管理提供大量的處理程序及必須的儲存資源。
1.2 利用SNMP計算帶寬
網絡帶寬利用率=(每秒收到字節數+發送字節數)/帶寬。對于半雙工來說,在計算利用率時使用公式[4-5]:
⑴
對于全雙工來說,在計算利用率時使用公式:
⑵
然而,這種方法隱藏了指令的使用率,它的價值和精確度較低。更準確的方法是使用以下公式測量輸入效用和輸出效用:
⑶
⑷
對于以上各個公式,其參數說明如下:
ΔifINOctets:表示輸入流量的字節數;
ΔifOutOctets:表示輸出流量的字節數;
ifSpeed:為snmp監測對象的接口速率。
2 系統概述
2.1 系統功能概述
該網絡監控系統從用戶角度出發,著重于用戶所關心的實際問題,從網絡通斷、網絡使用情況、網絡設備的運行狀態等多個方面對整個網絡進行實時監控,并提供報警信息。
該系統的主要功能有以下。
⑴ 實時提供網絡連接拓撲圖,用不同顏色表示不同的帶寬占用情況。
⑵ 實時提供網絡參數,如網絡帶寬、時延、抖動等。
⑶ 實時監控網絡設備的運行情況,通過SNMP協議獲得網絡設備運行狀態,并用圖表形式顯示出來。
⑷ 網絡測試,通過網絡命令對網絡線路進行測試,提供測試結果。
⑸ 通過發送郵件實時放映網絡運行中的某些突發事件,如網絡中斷、網絡占用帶寬大于某個設定值、網絡延遲大、網絡抖動及網絡設備開關機等。
2.2 系統功能特點
系統簡單實用、易于操作、無須培訓、界面友好,能兼顧不同水平的網絡管理人員,是一個直觀且可視化操作的系統。同時,該系統全面監控網絡各個環節可能出現的故障,是一個功能全面、兼容性高的實用系統。
系統采取基于權限的訪問,針對不同級別的操作員分別授予不同的操作權限,給不同級別的用戶以不同的權限,高級用可以對下一級別的用戶進行監控,保證了系統安全平穩有序運行。
2.3 系統體系架構
系統采用B/S架構,在服務器端實現所有的邏輯處理,用戶通過Web瀏覽器實現界面交互。該系統采用了模塊化設計思想,用戶可以根據不同的需求,在集成平臺上增加或減少功能模塊來改變系統功能。這樣的設計使得系統具備了很好的靈活性、適應性和可拓展性,同時也具備了二次開發能力。
集成平臺集成了數據庫及Web動態邏輯規劃,網絡監控的各項功能分別被模塊化,提供通用的接口和功能支持。系統架構示意圖如圖1所示。
2.4 系統運行環境
系統服務器端部署在一臺Linux服務器上,服務器接入到網絡核心的位置,所有被監控單元都通過網絡與服務器連接,并且這些被監控單元都支持SNMP協議、ICMP協議和HTTP協議。為了實現24小時不間斷監控,在網絡關鍵位置都安裝了交換機或者路由器。
3 系統功能的設計實現
3.1 總體設計
一個系統是否設計科學,是一個很重要的問題,這將決定整個項目的成敗。好的系統架構可以縮短整個項目的開發周期,提高效率。綜合考慮本系統的功能特點,將體系結構分為三層:應用層、邏輯層和數據層。如圖2所示。
⑴ 應用層:應用層是系統在用戶面前的直接展示,實現與用戶的交互功能,將系統內部的機器語言轉化為用戶能夠理解和獲取價值的語言。因此,應用層主要功能就是向用戶提供操作支持和信息顯示。系統在設計及實現主要功能的同時,對界面作了美化處理,使得其在與用戶的交互過程中更友好。
⑵ 邏輯層:邏輯層也叫業務層或中間層,是整個系統的核心,負責在分布式系統中間層處理數據,那里有事務處理規則和業務流程約束數據的處理。這一層主要用于大批量處理、事務支持、大型配置、信息傳送和網絡通信。由此可以看出這一中間層很復雜。
邏輯層很重要,它包含了目前提供特殊服務的數目最大的組件對象。這種靈活性是大型的企業應用程序所需要的,它可以根據應用層的用戶請求,從數據層獲取、處理并返回數據,以響應用戶需求。
⑶ 數據層:數據層實際上就是資源管理層。與應用層相比,沒有或較少有數據處理,而是定義了大量數據的管理任務,數據庫和資源會變得越來越多,因此,這項任務也變得越來越困難。
通常數據層使用大型的RDBMS來管理,如Oracle。使用RDBMS來管理數據的好處是可以協助數據的處理,提高數據的使用效率。RDBMS處理數據除了完成數據庫本身的插入新數據、修改數據、執行系統函數等SQL操作外,還可以通過存儲過程和觸發器,來自動地在數據庫上存儲應用程序的商務邏輯和函數模塊,這樣在數據層上就可以對數據做出相關的功能強大的處理,而不是僅僅把請求結果返回給客戶機。
在計算機應用逐步發展的今天,需要維護的數據量已經在某些領域達到了超大規模,因此,數據服務這個領域的發展空間和挑戰也越來越大,數據服務層的結構也朝著復雜化、大規模化的方向發展,在為我們帶來強大功能的數據支持的同時,也對計算機硬件的技術進步提出了迫切要求。
在此基礎上,將系統的層次具體化,如圖3所示。
3.2 系統功能模塊實現
⑴ 網絡拓撲圖模塊
實時提供網絡連接狀態,用不同顏色表示線路的運行狀態。其中紅色虛線表示網絡連接出問題,同時會顯示相應的字樣—“問題”;綠色實線表示網絡帶寬占用率在0~20%;黃色實線表示網絡帶寬占用率在20%~80%,紅色實線表示網絡帶寬占用率在80%~100%。如圖4所示。
⑵ 網絡數據模塊
實時提供網絡運行參數。通過統計不同時刻網絡運行的狀態信息,繪制曲線圖,實時顯示該線路的網絡帶寬、時延、抖動等。如圖5所示。
⑶ 設備監控模塊
實時監控網絡設備的運行情況。用戶通過Web頁面可以查看網絡中各個設備的運行狀態;同時,也可以查看到這些設備所占用的網絡帶寬,從而估計出此時該網絡的運行情況。
⑷ 網絡測試模塊
在Web客戶端頁面提供簡單的網絡測試工具,在用戶使用這些工具時,客戶端會發送一串指令給服務器端,服務器完成指令的編譯、執行,然后將結果發送到客戶端,客戶端將結果以自然語言的形式顯示。
⑸ 事故報警模塊
系統給每個網絡參數設置閾值,如果統計的網絡參數數值超過了閾值,就會發送指令給服務器,服務器通過分析,按照指定格式發送報警郵件給用戶,用戶可以通過登錄注冊郵箱查看報警信息。
4 結束語
本文描述了網絡監控設計的背景、網絡監控系統整體情況、系統設計和模塊設計,以及功能實現。本系統完成后經過實際測試,在各個方面均達到了預期目標,在Web頁面顯示、網絡監控及事件報警等方面都得到了完全實現。
設計一個功能強大、維護簡單且運行穩定的網絡監控系統,對所有中小型網絡的管理,都有著很大的實用價值。本文設計的系統適用于大多數網絡系統,但仍然存在缺陷,如無法監控虛擬專線網絡。因此,還需要對系統繼續挖潛,進一步完善其功能。
參考文獻(References):
[1] 李明江.SNMP簡單網絡管理協議[M].電子工業出版社,
2007.
[2] 郭軍.網絡管理[M].北京郵電大學出版社,2003.
[3] 王瑋.基于SNMP網絡管理系統的設計與實現[D].北京郵電
大學,2011.
[4] Case J D, Fedor M, Schoffstall M L, et al. Simple network
management protocol (SNMP)[R]. 1990.
[5] Stallings W,胡成松,汪凱.SNMP網絡管理[M].中國電力出版
社,2001.