臧其事 周俊琦 謝立帆
摘要:隨著數據中心的不斷發展,設備的種類與數據都在增加,從小型機,PC服務器,到交換機,UPS,存儲設備,虛擬機和vCenter,系統管理人員需要一種通用靈活的易用的設備監控與管理方式,以提高數據中心設備的管理效率。本文首先介紹了簡單網絡管理協議(SNMP)的工作原理,分析了 SNMP v3 協議的加密實現。并以農行上海分行的基于 SNMP 的設備監測系統為例,實現了對數據中心各類設備資源的實時管理,通過主動探知與被動告警兩種模式,監測設備失效信息并主動告警,提高了數據中心設備的管理效率。
關鍵詞:簡單網絡管理協議;監控系統;安全性
中圖分類號:TP308 文獻標識碼:A 文章編號:1007-9416(2018)09-0112-02
1 引言
隨著IT技術的發展,數據中心的作用和地位日益重要,承載的設備數量日益龐大,設備類型日益復雜。傳統形式上,采用對機房進行定時的人工巡檢,被證明是一種低效和滯后的監控方式,系統管理員需要實時或準實時的了解設備的基本狀況,如網絡是否聯通、硬件是否故障、UPS電壓是否在正常范圍內等。針對上述需求,中國農業銀行上海市分行考察了多種解決方案,認為簡單網絡管理協議(Simple Network Management Protocol,SNMP)具有通用與靈活等優點,可以在原設備的基礎硬件上實時地進行監控。
盡管有著良好的易用性,但SNMP協議自身存在著一些缺點,主要亟待解決的問題是安全性。在考慮靈活與通用的同時,需要同步考慮安全問題,SNMP v3版本的出現,其兩個核心模塊是基于用戶的安全模型 (USM) 和基于視圖的訪問控制模型 (VACM),大大增強了安全性,因此,本文采用了SNMP v3版本的技術進行具體實施。
2 SNMP協議安全性分析
SNMP使用Community名稱進行認證,而其默認的名稱Public通常不會被管理員刻意更改,而嘗試使用此名稱進行網絡訪問,通常能夠輕易獲得訪問許可。同時,此協議在傳輸時并不加密,使用網絡抓包工具如Sniff能夠輕易抓取SNMP協議報文,并分析出使用的Community名稱。還有一些特別的技巧可以逃避Community認證,例如通過對非標準字段進行注入,導致緩沖區溢出,從而構成一次成功的攻擊。
SNMPv3為了解決安全性問題,主要引入了USM(基于用戶的安全模型)和VACM(基于視圖的訪問控制模型)兩種技術。USM提供了認證和加密功能,VACM確定用戶是否允許訪問特定的MIB對象以及訪問方式。USM引入了用戶名和組的概念,可以設置認證和加密功能。它指定使用HMAC-MD5和HMAC-SHA進行身份驗證,指定使用CBC-DES進行信息加密。在提交RFC 2574(USM)時,這三種安全協議被認為是(可接受的)安全的。而VACM技術定義了組、安全等級、上下文、MIB視圖、訪問策略五個元素,這些元素同時決定用戶是否具有訪問的權限,只有具有了訪問權限的用戶才能管理操作對象。
3 設備監控系統的設計
本系統的設計目標是監測數據中心各類設備以獲得性能參數,主要有主動和被動兩種模式。其中主動模式是由服務器主動通過OID向客戶端進行詢問,包含CPU負載,風扇轉速,磁盤使用,UPS電壓,網絡流量等性能數據;被動模式是通過客戶端主動向服務器發起異常消息通知,例如網絡中斷,磁盤拔出,風扇停轉,或者是某一部件失效。一個典型的異常消息如下所示:
2017-09-14 10:15:32
2 Green Red alarm.NetworkRedundancy LostAlarm - Event: Lost Network Redundancy (74862)
Summary: Lost uplink redundancy on virtual switch "vSwitch1". Physical NIC vmnic5 is down. Affected portgroups:"VLAN1001", "VLAN4000".
通過上述兩種監測,可以有效的監控和探知設備的使用狀態,根據歷史數據進行分析和預警。
3.1 總體設計
通過對 SNMP 協議的研究,設計和構建了基于B/S 架構的系統結構模型,如圖1所示。
由于采集產生了大量數據,這些數據以分topic的類別被投送到kafka集群,由下游消費者接收消息并進行分析,最后將分析結果入庫或放入HDFS。從而形成一個經典,可插拔的生產-消費者架構。按我行的情況設計,針對不同的設備使用了不同的消費者進行數據接收和分析,例如ATM的消費者,UPS的消費者,以及vCenter的消費者。
采用生產-消費者這一經典架構,可以通過調節生產和消費者的數量使系統效率達到最大化,例如我行的ATM數量較多,從而可以通過部署多個消費者的形式處理大量的ATM性能數據。
3.2 功能設計
3.2.1 數據采集
數據采集處于系統的生產者的位置,通過主動詢問的方式采集設備的性能數據,并將采集得到的數據結果按不同的topic放入kafka隊列。 主要是通過各個廠商提供的MiB文件,提取系統需要采集的關鍵指標,如UPS的電壓,服務器風扇轉速等數據,通過給定的OID向設備進行詢問,將返回結果解析后放入消息隊列。該功能作為系統的基礎部分,通過時間驅動來確保實時性。
3.2.2 數據分析
數據分析作為系統的消費者存在,主要接收來自數據采集功能采集的基礎數據,包括主機信息、IP信息、磁盤信息、進程信息、CPU信息等數據,結合設備的具體特征,根據歷史數據得出baseline以及正常浮動范圍,對于超出浮動范圍的部分編制告警信息,并發送給運維人員。
3.2.3 數據展示
數據展示主要是以圖表方式呈現被監測設備性能歷史數據,其圖表如圖2所示:
3.2.4 告警
對于超過浮動閾值的性能數據,以及被動接收到的錯誤信息,將主動通過短信,微信以及語音電話等方式通知運維人員。實現方式是將編制的告警信息放入kafka上另一個topic的消息隊列實現,由另外一個告警消費者負責從中讀告警內容并分發給告警人。
4 結語
我行的設備監控系統以SNMPv3為基準協議,實現了對數據中心設備資源的實時監控,并將監測到的性能數據以圖形方式直觀顯示出來,提高了設備管理的工作效率,為設備管理提供了一種安全高效的方式。同時完成了對于失效事件的主動告警,將錯誤信息及時推送給運維人員,將反應時間由分鐘縮短到了秒級。由于使用了高安全性的SNMPv3協議,系統的安全性也得到了較為完善的保障,達到了性能與安全性的平衡,在類似系統的設計中具有一定的借鑒意義。
參考文獻
[1]施勝強.淺析計算機網絡管理[J].計算機光盤軟件與應用,2012,(16):36-38.
[2]趙小錄.SNMPv3在商業交換機中的研究與應用[D].廣州:廣東工業大學,2014.
[3]楊曉東,劉玉珍,張煥國.基于SNMP的安全威脅及防范策略分析[J].計算機工程,2004,30(22):122-124.
[4]王金京.云計算環境下的計算機網絡安全問題探析[J].網絡安全技術與應用,2015,(8):37-38.