張開芳 張 東 高曉鋒 郭 鋒 段誼海
1(鄭州大學信息工程學院 河南 鄭州 450001)2(浪潮電子信息產業(yè)股份有限公司 山東 濟南 250101)3(鄭州云海信息技術有限公司 河南 鄭州 450019)
數據中心是收集、存儲、共享和處理數據的平臺。IDC調查顯示[1],2010年我國數據中心和機房的總數量已經達到504 155個。預計到2020年,我國數據中心保有量將超過8萬個,總面積將超過3 000萬平方米[2]。數據中心在日常生產生活中發(fā)揮重要作用,若是宕機,會帶來巨大的財產損失。Ponemon研究所調查表明單次數據中心宕機的平均成本約73萬美元[3]。在2016年8月,Delta航空公司數據中心宕機,導致公司損失了1.5億美元[4]。因此保障數據中心安全平穩(wěn)運行有著重要意義。數據中心運維方式由數據中心監(jiān)控平臺向運維人員發(fā)送告警通知,運維人員通過告警通知提前發(fā)現問題,檢查相關部件,及時做出反應,維護設備安全。
工程應用上,目前數據中心監(jiān)控平臺有兩種,一種是商用類型,如IBM的Tivoli[5]和HP公司的OpenView[6]監(jiān)控產品;另一種是開源類型,如Zabbix[7]、Nagios[8]等。由于商用類型的監(jiān)控平臺價格昂貴,目前企業(yè)級監(jiān)控一般采用開源監(jiān)控平臺。其對監(jiān)控項的告警方式一般由運維人員依據經驗設定固定閾值,通過腳本編程實現。但該方法無法體現監(jiān)控項數據的波動變化,因此可能引起較大誤差,造成缺失告警或錯誤告警,無法滿足實時復雜情況下的告警需求。
在理論和方法研究上,文獻[9]實現了對數據中心各機房電源、空調和煙感等環(huán)境監(jiān)控量監(jiān)控,主要解決機房不同品牌設備之間因接口不兼容導致通信失敗的問題,但對環(huán)境監(jiān)控量的告警通知由人為制造(如人為釋放煙霧看是否產生告警),并且未提及相關監(jiān)控量的閾值問題。文獻[10]側重于設計實現數據中心實際工作需求的監(jiān)控軟件,在軟件的告警子系統中對基本事件流的告警方式基于閾值。文獻[11]重點在降低監(jiān)控任務負載與監(jiān)控可擴展的研究上,其告警模塊基于Nagios[8]監(jiān)控軟件采集監(jiān)控項數據,人工編寫腳本實現告警功能。文獻[12]實現了基于動態(tài)閾值的網絡性能管理系統,實現動態(tài)閾值的方法是采用前四周同一時刻的數據,通過線性回歸分析預測當前時刻的閾值,但該方法基于性能監(jiān)控的周期性前提實現,無法較好地反映數據波動且研究對象為網絡性能管理。文獻[3]通過自定義CPU、內存和磁盤的過載閾值,經由模型訓練預測未來三天內上述監(jiān)控指標的負載,文獻數據來自百度股份有限公司。文獻[13]設計了Hdoctor通用框架實現磁盤的故障預測。文獻[14]提出了基于神經網絡的框架,側重CPU、內存、磁盤與網絡的資源利用率等監(jiān)控指標的負載預測。文獻[15]提出兩個基于約束編程和神經網絡的負載預測模型,完成對云數據中心物理服務器CPU利用率的預測。
上述研究大都集中于數據中心監(jiān)控系統的設計與實現,在監(jiān)控指標研究上更關注的是如CPU、內存和磁盤等的利用率或故障預測方面,很少有文獻涉及到監(jiān)控項閾值問題告警層面的研究分析。對此,本文提出了一種基于EFT特征提取的無閾值告警模型,通過分析監(jiān)控項數據特點,提出從監(jiān)控項的能量、波動與時間三個方面提取特征,最終輸入到隨機森林模型訓練,經投票得出實時監(jiān)控數據告警結果,完成監(jiān)控項無閾值告警研究。
首先對監(jiān)控項數據預處理,經由人工經驗知識判斷實時監(jiān)控數據是否告警,接著基于EFT方法提取特征,輸入到訓練好的隨機森林模型中得到最終判決結果。基于EFT的無閾值告警模型流程示意圖如圖1所示。

圖1 基于EFT的無閾值告警模型流程示意圖
為保證獲得高質量的數據,對于數據采集中由設備故障等原因造成的數據缺失,本文采用數據填充法處理,即用前后數據點的平均值來填充中間的缺失數據。
經數據預處理后,通過滑窗構造數據集中的樣本。窗口大小代表每個窗口中包含監(jiān)控值的個數。窗口數即為樣本數。在監(jiān)控平臺中,業(yè)務需求等因素會影響各監(jiān)控項數據變化,若窗口取值過大,太靠前的數據與當前時刻數據關聯不大;若窗口取值過小,則提取的特征無法完整地體現局部數據變化。本文取窗口大小為5,監(jiān)控項每5分鐘獲取一次監(jiān)控值,即每個窗口的時間段為20分鐘。滑窗法構造數據集示例如圖2所示。設監(jiān)控項經由數據填充之后得到N個監(jiān)控值,則得到樣本N-5+1個。

圖2 滑窗構造數據集示例
本文通過分析數據中心監(jiān)控項數據特點,提出一種基于EFT特征提取方法,即從監(jiān)控項數據的能量、波動和時間特性三個方面提取特征值。其中,能量反映監(jiān)控值的大小,波動反映監(jiān)控項數據的變化,時間聯合當前監(jiān)控值分析。在能量方面,提取當前窗口的監(jiān)控值、平均值和能量值。在波動方面,提取當前窗口的斜率、標準差和相鄰波動及高于均值的個數(當前窗口中所提取的標準差與高于均值個數中的平均值為監(jiān)控項所有數據的平均值)。在時間方面,以一周為周期,將時間細化到分鐘,進一步挖掘監(jiān)控數據與時間的關聯。為了更進一步體現以往窗口對當前窗口監(jiān)控結果的影響,本文采取組合特征的方式,即將當前窗口t與前兩個的窗口t-1、t-2所提取出來的特征組合在一起,作為最終特征集。每個窗口提取特征Pt的表達式如式(1)所示;最終組合特征集Fi如式(2)所示。表1為基于EFT方法提取的特征及計算方法,其中t代表窗口大小。
Pt=[f1,f2,…,f9]
(1)
Fi=[Pt-2,Pt-1,Pt]t=1,2,…,t-3+1
(2)

表1 基于EFT提取特征及計算方法
隨機森林[16]是包含一系列樹結構分類器的集合{h(x,Θk,k=1,2,…)}。Θk是具有獨立均勻分布的隨機向量,在輸入x時,每棵樹具有相同權重,投票最多的類別即輸入x的所屬分類。建立多顆決策樹的概念第一次由Williams[17]提出。Ho[18]提出了集成過程中對每棵樹構造使用特征子空間的方法。Dietterich[19]對構造樹提出隨機分裂策略。隨后,Breiman[16]在2001年提出了隨機森林算法。
基于隨機森林的分類過程可分為三步:① 子訓練集生成。從原始的數據集(大小為N)中采用Bootstrap方法有放回地采樣N次,構成各子訓練集,重復上述過程,共構造M個子訓練集,對應隨機森林中樹的顆數M。② 特征選擇。對于森林中樹的各節(jié)點,從所有特征中隨機選擇一定數目的特征,采用基尼指數選取最優(yōu)的特征劃分節(jié)點,構造決策樹。③ 所有決策樹最大深度生長不剪枝,最終形成由M顆樹組成的森林。森林中每棵樹具有相同的權重,對于測試樣本,通過森林投票選出的最多的類別即是該測試樣本的最終分類結果。算法流程如圖3所示。

圖3 隨機森林算法流程
基尼指數是隨機森林特征選擇準則,代表數據不純度,其值越低,純度越高,即數據的一致性越好,其計算方法如下。
對于給定的樣本D,假設它有K個類別,第k個類別的數量為Ck,則樣本D的基尼指數計算式為:
特別地,對于樣本D,如果根據特征A的某個值a,把D分為D1和D2兩個部分,則在特征A條件下,D的基尼指數計算式為:
隨機森林訓練速度快、抗噪聲能力強、準確率高,不容易出現過擬合,能夠對多種數據有效分類,可處理高維數據等優(yōu)點,本文將隨機森林引入無閾值告警模型。
本文的實驗設備為PC,配置處理器為Intel(R) Core(TM)i5-3210M CPU @ 2.50 GHz,RAM 4 GB,Windows 7操作系統,開發(fā)環(huán)境是Python 3.7.3。本文實驗監(jiān)控項數據來源于企業(yè)級監(jiān)控平臺采集。采集2019年4月19日到5月19日共1個月內500臺服務器的監(jiān)控項數據,表2為部分監(jiān)控指標及采集頻率。經由數據預處理與滑窗構造數據集。

表2 部分監(jiān)控指標及采集頻率
分類算法的評價指標較多。其中準確率代表分類的樣本個數與總體樣本的比值,數值越高,代表測試樣本中分類正確的數目越多。但它無法對類別不均衡的樣本做出準確評價,只采用這一指標太單一,且無法準確多角度評價本文提出的無閾值告警模型。精確率代表分類結果是告警的樣本數中真實樣本為告警的樣本比例,其值越高,誤報數越少。召回率代表正確預測為告警的樣本數與屬于告警樣本總數之間的比值,其值越高,漏報數越少。所以加入精確率和召回率用以模型評價。上述評價指標可由混淆矩陣計算得到,本文中混淆矩陣由表3所示。

表3 混淆矩陣
準確率acc、精確率pre和召回率re計算式分別為:
圖4、圖5為本文提出特征提取方法的示例圖,其中畫有圓圈的部分即為告警數據。示例圖中的入風口溫度與服務器功耗的數據分別為某臺服務器含告警數據一周內的數據(60×24×715=2 016),通過滑窗得到樣本(2 016-5+1=2 012),從樣本中提取特征,鑒于篇幅有限,畫出的特征示例分別為能量中的當前窗口能量值、波動中當前窗口的斜率與標準差、時間時分。由圖4、圖5可見,本文提出的基于EFT的特征提取方法能夠較好地體現實時告警數據的變化,證實提取特征的有效性。

圖4 入風口溫度提取特征

圖5 服務器功耗提取特征

圖6-圖8分別所示為十次實驗中入風口溫度和服務器功耗準確率和精確率與召回率的數值,可以看出,兩種監(jiān)控項的準確率均高達95%以上,且十次實驗結果比較穩(wěn)定。精確率與召回率相較于準確率波動大,并且精確率波動相較于召回率更大,說明模型相較于誤報下更不易于漏報,并且誤報差錯率值也在10%以下。這證實了模型的有效性,可滿足實時條件下監(jiān)控項的告警需求。

圖6 準確率

圖7 精確率

圖8 召回率
本文主要研究了數據中心監(jiān)控平臺監(jiān)控項的閾值告警問題,通過結合監(jiān)控項的數據特點,提出了一種基于EFT特征提取方法,最終建立了隨機森林數據中心監(jiān)控項無閾值告警模型。實驗表明本文模型表現良好,準確率、精確率與召回率均達到90%以上,證實了其有效性,可反映實時條件下監(jiān)控項的波動,滿足實時告警需求,并具有一定實用性,有助于運維人員分析處理數據中心告警情況。未來工作將研究內容轉向多指標融合告警的根因分析,因為單個監(jiān)控項的告警不利于運維人員排查根本原因,多指標融合告警的根因分析可幫助運維人員分析告警源頭,提高工作效率。