李凱
[摘 要]隨著平安城市建設的蓬勃發(fā)展,運維已經(jīng)成為了它的一個不可分割的部分。運維系統(tǒng)主要對基礎資料進行管理,接受告警數(shù)據(jù),處理告警數(shù)據(jù)。然而一個城市的設備之多,舉不勝舉,產(chǎn)生的告警量更多的驚人。當前,運維告警每天接受到的告警和實時監(jiān)控數(shù)據(jù)多達5萬條,總數(shù)據(jù)更是多達4000萬。在這么多驚人的數(shù)據(jù)中,如果實現(xiàn)高效的存儲?如果快速的查詢?如果迅速展現(xiàn)客戶需要的數(shù)據(jù)?
[關鍵詞]分布式存儲 大數(shù)據(jù) 平安城市 智能分析 告警 運維 集群
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-914X(2016)04-0308-01
一、 運維系統(tǒng)總體概述
運維系統(tǒng)作為平安城市的重要一個環(huán)節(jié),主要就是對平安城市相關設備的監(jiān)控,實現(xiàn)對攝像頭的上下線、高度、暗度、清晰度、雪花、色偏、條紋、凍結(jié)、抖動、遮擋的監(jiān)控;實現(xiàn)對機房設備(UPS,空調(diào),門禁,煙感,測漏,溫感)的實時監(jiān)控和告警的接受及處理;實現(xiàn)對服務器等設備的實時監(jiān)控和智能分析。然而系統(tǒng)每天接受告警和實時數(shù)據(jù)多達5萬條,可是高效的存儲和讀取數(shù)據(jù)已經(jīng)成為傳統(tǒng)數(shù)據(jù)庫的難點。所以本系統(tǒng)采用分布式存儲方法,實現(xiàn)數(shù)據(jù)的高效插入和讀取,大大優(yōu)化了用戶的體驗效果。
二、 分布式存儲說明
傳統(tǒng)的數(shù)據(jù)存儲主要采用集中存儲,把所有的數(shù)據(jù)存儲在一個存儲服務器中,然而大量數(shù)據(jù)的集中,導致了系統(tǒng)性能的下降,可靠性和安全性也成為了焦點。
分布式存儲,就是通過集群,提高系統(tǒng)的可靠性、可用性和存取效率。簡單的說,就是將大量數(shù)據(jù)分別存儲在不同的設備上。分布式存儲采用可擴展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務器分擔存儲負荷,利用位置服務器定位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴展。如圖1
三、 實現(xiàn)過程
運維系統(tǒng)監(jiān)控數(shù)據(jù)主要分兩種,設備告警數(shù)據(jù)和設備實時數(shù)據(jù)。實時數(shù)據(jù)主要是方便查看設備的當前狀態(tài),并可以通過告警配置,系統(tǒng)經(jīng)過智能分析判斷設備是否出現(xiàn)故障,如果出現(xiàn)故障則產(chǎn)生告警;告警數(shù)據(jù)則是由設備自動推送告警,并在運維系統(tǒng)中加以處理。具體實現(xiàn)如下:
一、集群搭建,服務添加
建立由幾臺服務器并行的計算集群環(huán)境,并配置計算節(jié)點和數(shù)據(jù)節(jié)點服務器。配置其中1到2臺服務器為管理節(jié)點和計算節(jié)點,其他服務器為數(shù)據(jù)節(jié)點。安裝與集群環(huán)境版本匹配的數(shù)據(jù)訪問中間件,開發(fā)計算器安裝數(shù)據(jù)訪問中間件的客戶端,可以做可視化的數(shù)據(jù)操作。
二、設計運維告警數(shù)據(jù)存儲結(jié)構(gòu),并建立索引
1、根據(jù)告警的處理和設備性質(zhì),告警設置的字段主要有:“報警名稱”、“報警級別”、“報警來源”、“報警種類”、“報警時間”、“設備名稱”、“設備類型”、“處理狀態(tài)”、“處理時間”等存儲字段。
2、索引的建立?!皥缶墑e”、“報警種類”、“設備名稱”、“設備類型”、“處理狀態(tài)”,這四個字段為最常用查詢字段,所以由這4個字段建立分布式可變索引??勺兯饕梢噪S著數(shù)據(jù)插入自動更新索引數(shù)據(jù),數(shù)據(jù)通過LSM樹的數(shù)據(jù)結(jié)構(gòu)存儲在分布式數(shù)據(jù)庫。結(jié)構(gòu)例如:1001+1001002+“服務器001”。
由于分布式存儲數(shù)據(jù)對設備名稱的模糊查詢效率較低,于是針對設備名稱建立的分布式索引。將設備名稱的分布式索引存儲在集群中的分布式文件系統(tǒng)中。例如:設備名稱:服務器001,在分布式索引中建立的索引是:“服、服務、服務器、服務器0、服務器00、服務器001、務、務器、務器0、務器00、務器001、器、器0、器00、器001、0、00、001、01 1 ” 。
3、分布式索引。生產(chǎn)環(huán)境下,由多臺服務器組成的分布式集群使用的是分布式文件系統(tǒng)。如果將索引文件建立在一臺服務器上,則不能體現(xiàn)設備名稱的分布式處理。為了保證整個查詢過程的高效性,同樣需要把索引文件分布式的存儲在整個集群中。
用戶在輸入一個字符之后,即可通過分布式索引文件的查詢返回包含該字符的10個設備名稱。返回設備名稱之后,系統(tǒng)根據(jù)最相似的設備名稱進行全字段匹配查詢,從而提高整體的查詢速度。
三、設計運維系統(tǒng)實時監(jiān)控數(shù)據(jù)存儲結(jié)構(gòu),并建立索引
1、根據(jù)實時監(jiān)控的需要,實時數(shù)據(jù)字段主要有:“機房ID”、“設備ID”、“監(jiān)控時間”以及各種設備參數(shù)字段。
2、索引的建立。由于實時監(jiān)控查詢相對簡單,直接建立“機房ID”、“設備ID”索引就可以滿足用戶的需求了,在這里面就不在多做闡述。
四、接入各設備信息數(shù)據(jù)
經(jīng)過數(shù)據(jù)合法性和業(yè)務處理,數(shù)據(jù)通過中間件入庫,自動更新索引表,同時更新設備名稱的分布式索引。
五、數(shù)據(jù)的讀取和業(yè)務處理
程序查詢條件包含對索引的字段進行查詢,可在100毫秒之內(nèi)返回相應數(shù)據(jù)。如圖2
參考文獻
[1] 《大規(guī)模分布式存儲系統(tǒng):原理解析與架構(gòu)實戰(zhàn)》 楊傳輝.
[2] 《大型分布式網(wǎng)站架構(gòu)設計與實踐》 陳康賢.
[3] 《云計算與分布式系統(tǒng):從并行處理到物聯(lián)網(wǎng)》 [美] Kai Hwang,[美] Geoffrey C.Fox,[美] Jack J.Dongarra.
[4] 《大型網(wǎng)站系統(tǒng)與Java中間件實踐》曾憲杰.