孫啟民 胡莉麗 黃 威,2
(1.北京全路通信信號研究設計院集團有限公司,北京 100070;2.北京市高速鐵路軌道交通運行控制系統工程技術研究中心,北京 100073)
?
基于SNMP&Amcharts的性能監測技術在動環監控系統的應用
孫啟民1胡莉麗1黃 威1,2
(1.北京全路通信信號研究設計院集團有限公司,北京 100070;2.北京市高速鐵路軌道交通運行控制系統工程技術研究中心,北京 100073)
鐵路通信機房動環監控系統需要采集監控中心服務器的實時性能參數值,采用SNMP&Amcharts技術開發動環監控系統的服務器性能監測模塊,可擴大模塊的適用場合、提高開發效率、減少系統維護工作量。
性能監測;SNMP;Amcharts;Ajax;采樣周期
隨著我國高速鐵路的飛速發展,鐵路信息化進程也在逐步推進,各類科學先進的管理工具相繼被引入到鐵路的日常運維管理工作中,為我國鐵路的安全穩定運營提供了有力的支持和保障。
動環監控系統是鐵路信息化建設過程中引入的重要管理工具之一,尤其是在近幾年鐵路客運專線大規模建設的背景下,動環監控系統的重要性日益凸顯。由于我國的CTCS-3級列控系統通過GSM-R網絡實現車地信息的交互,因此在鐵路沿線架設了大量的通信基站,同時為每個基站也建設了各自的通信機房。通信基站機房日常均無人值守,如何保障機房內設備安全穩定的工作,不因通信設備故障影響列車的正常運行,動環監控系統在這一環節發揮了重要的作用。
動環監控系統采用監控中心、監控站兩級結構設計[1],能夠遙測、遙信和遙控監控對象,能夠監視系統設備的工作狀態,具備配置、告警、性能和安全管理功能。監控中心還能夠管理視頻單元和智能門禁單元,實現對視頻單元和智能門禁單元的遠程控制。另外監控站側還提供遠程登錄功能,支持用戶遠程配置和緊急情況下單站的監視控制操作。
動環監控系統功能模塊設計如圖1所示。
為了保證動環監控系統自身的穩定運行,監控中心性能管理模塊要能采集監控中心服務器的CPU、內存及磁盤利用率,并能以直觀的形式顯示[1],本文所述的服務器性能監測技術即用于實現該功能模塊。
隨著計算機技術的不斷發展,作為網絡主體之一的網絡服務器性能越來越強大,服務器承載的處理任務越來越繁瑣,地位也越來越重要。為了保障服務器可靠穩定的運行,防止因服務器性能瓶頸影響正常的業務使用,技術人員提出多種服務器性能監測手段,用以監視服務器的軟硬件工作狀態。

基于操作系統的類型、監測軟件自身的架構等不同因素,各類監測技術的處理方式也不盡相同,下面把Windows和Linux系統常用的幾類性能監測技術進行簡單的比對分析,如表1所示。

表1 常用服務器性能監測技術列表
考慮到操作系統的兼容性及軟件結構的靈活性,在實現動環監控系統的服務器性能監測模塊時,我們選用SNMP技術。
本文所述的動環監控系統采用B/S架構實現,為了滿足能夠直觀顯示服務器性能參數的要求,綜合比較B/S模式下常用的Canvas、Amcharts、ActiveX、Applet等圖形繪制技術后,我們選用Amcharts技術跟蹤顯示服務器的性能參數曲線。
4.1SNMP技術簡介
SNMP是一種基于TCP/IP的互聯網網管協議,它能對互聯網中不同類型的設備進行監控和管理,對網絡中存在的問題進行定位[3]。
1) SNMP版本演進
SNMP最早始于20世紀70年代[4],經歷多個版本的演進,最終主要保留了3個版本:SNMP v1、SNMP v2c以及SNMP v3,SNMP版本演進過程如圖2所示。

SNMP v1和SNMP v2c版本對用戶的唯一限制是訪問口令,而沒有用戶和權限分級的概念,只要提供相應的口令(即community),就可以對設備進行read或read/write操作,安全性相對薄弱。SNMP v1和SNMP v2c均使用明文發送報文。相對SNMP v1,SNMP v2c定義了一個新的分組類型get-bulk-request,它高效率地從代理進程讀取大塊數據。
SNMP v3實現了提高安全性能的預期目標,尤其是在身份驗證(如用戶初始接入的身份驗證、信息完整性的分析、重復操作的預防)、加密、授權和訪問控制、適當的遠程安全配置和管理能力等方面。SNMP v3是在SNMP v2基礎之上增加、完善了安全和管理機制。
2) SNMP管理模型
SNMP管理模型由管理站、網管代理、管理信息庫(MIB)和SNMP協議4部分組成,這4部分的邏輯關系如圖3所示[4]。

管理站(Manager)通過發送SNMP報文從網管代理(Agent)獲取被管理設備信息,實施對網絡設備的監視和管理。網管代理接收來自管理站的SNMP請求并進行響應,完成相應操作,網管代理還能主動向管理站發送異常報告。
3) SNMP v1協議
動環監控系統服務器性能監測模塊中的管理站、網管代理和被監測設備處于同一局域網內,網絡環境相對安全,且管理站通過主動獲取的方式從網管代理處獲取被監測設備的性能參數信息,因此在實現該模塊時,選用SNMP v1協議。
SNMP v1定義了5種操作,包括:
Get:管理站從被管理節點提取標量對象值,包括get-request和get-next-request操作,可通過變量綁定方式一次獲取多個標量對象值;
Set:管理站更新被管理節點中的對象標量值;
Trap:被管理節點向管理站主動發送一個標量對象值;
Get-response:被管理節點對管理站Get和Set操作的響應。
SNMP v1的每個消息包含一個指示版本的版本號,一個用于安全控制的共同體名以及一個指明操作類型的協議數據單元(PDU),SNMP協議格式如表2所示。

表2 SNMP v1消息格式
其中,Get PDU格式如表3所示。

表3 Get PDU格式
4.2Amcharts技術簡介
Amcharts提供了基于JavaScript/HTML5、Flex和WPF&Silverlight 3種平臺技術的圖表組件,同時提供Flash和Flex的地圖組件。
Amcharts支持柱狀圖、條形圖、線形圖、面積圖、燭臺圖等基本圖形。Amcharts支持動態繪圖,可實現數據自動刷新,并可預設自動刷新頻率。
上文已提到本文所述的動環監控系統(以下簡稱“本系統”)采用B/S架構實現,其中客戶端(B)通過JavaScript/HTML5技術實現,服務器端(S)通過Java技術實現。在實現服務器性能監測模塊時,客戶端使用Amcharts和Ajax等技術實現服務器實時性能曲線圖的繪制;服務器端通過多線程,使用SNMP、Java和MySQL等技術實現服務器性能數據的獲取及存儲。
服務器性能數據的獲取、存儲及服務器實時性能曲線繪制處理流程如圖4、5所示。


本系統使用Tomcat5.5發布服務器端程序,Tomcat啟動時會加載本系統設定的Listener,在Listener中讀取需要監測的服務器列表,并為每個服務器開啟一個性能數據處理線程,之后各線程按設定的采樣周期循環進行數據處理。
在數據處理線程中,首先判斷操作系統類型,根據操作系統類型進行不同的處理,最終將獲取到的性能數據保存到數據庫,并更新內存中的靜態變量,方便客戶端繪制流程圖時獲取。
基于SNMP&Amcharts的性能監測技術大大提高了動環監控系統的開發效率,既適用于動環監控系統,同時也可應用到其他需要服務器性能監測的場合。該技術可應用于多個操作系統,無需在被監測設備側進行另外的開發,大大減少開發工作量,同時提高了維護效率。
[1] QCR 10-2014 鐵路通信機房及環境監控系統技術條件[S].
[2]王曉琰.單機Linux下監測系統性能的設計與實現[J].現代科技(現代物業下旬刊),2009(8):110-112.
[3]陳雷,董博,王雪.基于SNMP協議的全局網絡流量分析系統的設計與實現[J].大連理工大學學報,2005(增I):69-72.
[4]王煥然,徐明偉.SNMP網絡管理綜述[J].小型微型計算機系統,2004(3):358-366.
The power and environment monitoring systems in railway communication rooms need to collect the real-time performance parameters of the monitoring center servers. Using SNMP and Amcharts technologies to develop the server performance monitoring module of the power and environment monitoring system can expand the usable scope of the module, improve development effi ciency and can reduce system maintenance works.
performance monitoring; Simple Network Management Protocol; Amcharts; Asynchronous JavaScript and XML; sampling period
10.3969/j.issn.1673-4440.2016.02.009
2015-04-09)