曹靖城 張繼東 吳春平
1引言
傳統(tǒng)監(jiān)控系統(tǒng)能夠?qū)崟r采集各項閾值類監(jiān)控項相關(guān)監(jiān)控數(shù)據(jù)并進行分析,結(jié)合預先設(shè)定的閾值進行故障檢測和告警,但在異常判定閾值的設(shè)定上存在不足。對不同的應(yīng)用場景使用統(tǒng)一設(shè)定的閾值難以做適配,即使人為根據(jù)具體情況進行不同的閾值設(shè)定,也無法避免會有主觀因素的影響。本方案提出在保證異常檢測可靠的前提下進一步使檢測閾值合理化,提高監(jiān)控和告警效率。
2系統(tǒng)總體方案
2.1方案設(shè)計
使用一定周期內(nèi)各項指標的置信區(qū)間來設(shè)定閾值,在大量數(shù)據(jù)的基礎(chǔ)上,采用統(tǒng)計學方法計算出合理的閾值區(qū)間,采用分時段、動態(tài)閾值的方式對指標進行監(jiān)控并對異常發(fā)出告警。同時設(shè)置置信區(qū)間更新機制應(yīng)對突發(fā)情況,一旦監(jiān)控數(shù)據(jù)超出置信區(qū)間或系統(tǒng)硬件參數(shù)發(fā)生變化,可在發(fā)出系統(tǒng)警告的同時清除當前置信區(qū)間,重新統(tǒng)計,生成新的置信區(qū)間。在新的置信區(qū)間未生成時,依據(jù)人工設(shè)定初始閾值,待新的置信區(qū)間統(tǒng)計完成,自動切換為新的置信區(qū)間。
2.2方案架構(gòu)
本方案包括5個核心模塊,方案整體架構(gòu)如圖1所示。
①指標采集模塊,對監(jiān)控對象分時段周期進行指標數(shù)據(jù)采集。
②置信區(qū)間計算模塊,計算每一時段內(nèi)指標的平均值、標準差,并結(jié)合相關(guān)數(shù)據(jù)對每一周期設(shè)置置信水平,計算置信區(qū)間。
③指標監(jiān)測模塊,通過劃分時段的方法計算每個周期內(nèi)對應(yīng)指標的相關(guān)統(tǒng)計數(shù)據(jù),可對每個周期分別動態(tài)設(shè)置置信區(qū)間。
④動態(tài)閾值微調(diào)模塊,指標監(jiān)測正常則將采集到的數(shù)據(jù)用來更新相關(guān)統(tǒng)計值并微調(diào)動態(tài)閾值。
⑤動態(tài)閾值更新模塊,指標監(jiān)測異常則重新采集數(shù)據(jù),計算并更新閾值區(qū)間,采用設(shè)定閾值保持監(jiān)控,在異?;謴推陂g重新采集數(shù)據(jù)進行閾值自適應(yīng)更新。
2.3系統(tǒng)流程及核心算法
系統(tǒng)設(shè)計整體流程如圖2所示,具體步驟如下(以CPU利用率為例)。
步驟1:根據(jù)具體應(yīng)用場景的實際要求,將一天劃分成不同的時間周期,周期可自定義,采集不同時間周期內(nèi)的CPU利用率并進行統(tǒng)計分析。
步驟2:計算連續(xù)個周期的CPU利用率數(shù)據(jù),每一時間周期的數(shù)據(jù)分別統(tǒng)計,計算每個時間周期內(nèi)的平均值、標準差,對每一時間周期設(shè)置置信水平,按下式計算置信區(qū)間:
式(2)用于計算某一周期內(nèi)CPU利用率的標準差,其中為樣本數(shù)量,為式(1)計算得到的樣本均值。
選擇適用于場景的置信度并計算誤差范圍,結(jié)合樣本均值生成對應(yīng)置信度的置信區(qū)間,計算公式如下:
步驟3:使用計算得出的置信區(qū)間作為當前周期的動態(tài)閾值進行CPU利用率監(jiān)測,若數(shù)據(jù)處于置信區(qū)間內(nèi)則反饋到置信區(qū)間計算模塊進行閾值的微調(diào),若數(shù)據(jù)超出置信區(qū)間則觸發(fā)告警。
步驟4:觸發(fā)告警后進入置信區(qū)間更新狀態(tài),重新采集一定量的數(shù)據(jù)并進行統(tǒng)計分析,將計算得出的新置信區(qū)間更新為動態(tài)閾值。更新數(shù)據(jù)采集期間使用人為設(shè)定的固定閾值進行異常檢測,數(shù)值超出告警閾值則觸發(fā)告警。
2.4測試結(jié)果及分析
本測試采用CPU使用率數(shù)據(jù)為例進行分析,采用95 %的置信水平進行置信區(qū)間的計算。實驗數(shù)據(jù)表示,正常情況下CPU的使用率在20 %上下浮動,而當某一時間點加入新服務(wù)后,該服務(wù)器的CPU使用率上升,維持在80 %上下浮動。若使用固定閾值,并不能很好地反映當前CPU的負載水平,只能依靠人為修改閾值。若使用動態(tài)閾值,根據(jù)統(tǒng)計數(shù)據(jù)計算置信區(qū)間,得到較為合理的浮動閾值,并且在服務(wù)增加之后能夠自適應(yīng)地調(diào)整閾值以適配業(yè)務(wù)環(huán)境變化,可以更好地反應(yīng)當前CPU的負載水平,基于置信區(qū)間對業(yè)務(wù)系統(tǒng)設(shè)置“分時+分區(qū)”的個性化閾值動態(tài)設(shè)定,規(guī)避人為主觀性,極大地提升準確告警能力。
3結(jié)束語
文章簡要介紹了監(jiān)控預警自適應(yīng)的系統(tǒng)方案、模塊設(shè)計、流程說明以及對測試結(jié)果的分析,本設(shè)計支持嵌入監(jiān)控系統(tǒng)具有較好的實用性,動態(tài)閾值設(shè)定精準高效,能夠應(yīng)對各種突發(fā)情況并自動適配多種數(shù)值監(jiān)控告警場景。