新聞中心

EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 視頻監(jiān)控落地四要素:預(yù)測、檢測、報警及定位

視頻監(jiān)控落地四要素:預(yù)測、檢測、報警及定位

作者: 時間:2018-08-02 來源:網(wǎng)絡(luò) 收藏

背景介紹

本文引用地址:http://2s4d.com/article/201808/384998.htm

該分享是阿里媽媽Goldeneye業(yè)務(wù)監(jiān)控平臺的智能監(jiān)控解決方案。

這個分享主要包括智能監(jiān)控的技術(shù)實現(xiàn),以及大規(guī)模日志監(jiān)測數(shù)據(jù)的自動化接入兩部分。我先介紹一下智能監(jiān)控部分,下一期分享中我的兩位同事將給大家著重介紹日志分析處理的計算。智能監(jiān)控現(xiàn)在其他一些公司也有在做,希望通過這次分享能夠給大家?guī)硪恍┬碌膯l(fā),也歡迎大家能夠提出問題和建議,互相切磋交流經(jīng)驗。——馬小鵬

相關(guān)廠商內(nèi)容

分享內(nèi)容的提綱如下:Goldeneye智能監(jiān)控的業(yè)務(wù)背景、技術(shù)思想、技術(shù)實現(xiàn)細(xì)節(jié)、難點和今后的優(yōu)化方向。

嘉賓介紹

馬小鵬,阿里媽媽全景業(yè)務(wù)監(jiān)控平臺技術(shù)負(fù)責(zé)人。2013 起在阿里從事大規(guī)模系統(tǒng)日志分析及應(yīng)用的研發(fā),曾經(jīng)主導(dǎo)了直通車廣告主報表平臺和實時報表存儲選型。在加入阿里之前,曾負(fù)責(zé)網(wǎng)易電商 App 數(shù)據(jù)統(tǒng)計平臺的研發(fā)。

一、Goldeneye智能監(jiān)控的背景

Goldeneye作為阿里媽媽業(yè)務(wù)監(jiān)控平臺,主要在業(yè)務(wù)日志、數(shù)據(jù)的實時統(tǒng)計分析基礎(chǔ)上做監(jiān)控報警以及輔助定位。阿里集團(tuán)內(nèi)部也有很多優(yōu)秀的監(jiān)控平臺,它們在開放性上做的很好,接入成本也不高,但是監(jiān)控閾值也是開放給用戶自己設(shè)定。這種情況下,對于業(yè)務(wù)監(jiān)控人工維護(hù)閾值就比較復(fù)雜,需要有豐富的經(jīng)驗來拍定閾值,需要人工持續(xù)的維護(hù)不同監(jiān)控項的監(jiān)控閾值。所以,在業(yè)務(wù)快速發(fā)展的前提下,傳統(tǒng)的靜態(tài)閾值監(jiān)控很容易出現(xiàn)了誤報、漏報的問題,而且人工維護(hù)成本高,監(jiān)控視野局限。Goldeneye就是在這種基礎(chǔ)上,我們試著從大數(shù)據(jù)應(yīng)用的角度,去解決業(yè)務(wù)監(jiān)控中的問題,由此誕生的。

1. 業(yè)務(wù)背景:

(1)體量大:Goldeneye現(xiàn)在接入的業(yè)務(wù)線覆蓋了阿里媽媽主體的90%業(yè)務(wù),每天處理的日志量在100T以上,業(yè)務(wù)監(jiān)控需要對各業(yè)務(wù)線的流量分層級實時監(jiān)控,核心數(shù)據(jù)以1分鐘為周期,一般監(jiān)測數(shù)據(jù)以5分鐘或1小時為周期,監(jiān)控目標(biāo)非常多,按人工維護(hù)這些監(jiān)控的閾值、啟停、生效實效等幾乎是達(dá)不到的。

(2)變化多:業(yè)務(wù)監(jiān)控的監(jiān)測數(shù)據(jù)大都是業(yè)務(wù)指標(biāo),不同于系統(tǒng)運維指標(biāo),比如RT/QPS/TPS等一般是比較穩(wěn)定的,業(yè)務(wù)指標(biāo)具有周期性變化的特點,比如工作日和節(jié)假日的區(qū)別、業(yè)務(wù)營銷策略調(diào)整的影響等,在這種情況下人工設(shè)定的靜態(tài)報警閾值準(zhǔn)確性就很難保障了。

(3)迭代快:隨著阿里媽媽資源整合和業(yè)務(wù)的快速發(fā)展,監(jiān)控目標(biāo)也經(jīng)常發(fā)生變化,比如流量監(jiān)控資源位的調(diào)整、效果監(jiān)控的產(chǎn)品類型劃分等,曾經(jīng)出現(xiàn)過新流量上線后的監(jiān)控盲點。

2. 技術(shù)背景:

圖1 Goldeneye技術(shù)背景

通常的業(yè)務(wù)監(jiān)控系統(tǒng)或平臺,都是由采集、數(shù)據(jù)處理、檢測、報警等模塊組成的,Goldeneye也是如此,不過它的技術(shù)架構(gòu)上用了阿里內(nèi)部的一些技術(shù)中間件,比如采集我們使用TimeTunnel(它有agent在各臺日志服務(wù)器上拉日志到Topic,并且負(fù)責(zé)將離線日志放到ODPS上),這部分我不再介紹了。

數(shù)據(jù)處理我們使用的jstorm和ODPS MR job分別對日志進(jìn)行實時、離線批處理,主要包括日志解析、校驗、時間周期歸一化、聚合、寫存儲(HBase)等操作,這部分下一期分享中我的同事會詳細(xì)介紹。今天的分享主要集中在閾值預(yù)測、監(jiān)控檢測、報警生成通知、輔助定位這四部分。

二、技術(shù)思想

智能監(jiān)控就是讓系統(tǒng)在業(yè)務(wù)監(jiān)控的某些環(huán)節(jié)上代替人工執(zhí)行和判斷的過程。人工維護(hù)監(jiān)控目標(biāo)和閾值是以經(jīng)驗為參考的,系統(tǒng)如何自動判斷哪些目標(biāo)需要監(jiān)控、自動設(shè)定監(jiān)控目標(biāo)的閾值水位、不用人力維護(hù),是基于對歷史樣本數(shù)據(jù)統(tǒng)計分析得出判斷依據(jù)。

通過收集監(jiān)測數(shù)據(jù)的樣本,并使用智能檢測算法模型,讓程序自動對監(jiān)控項指標(biāo)的基準(zhǔn)值、閾值做預(yù)測,在檢測判斷異常報警時使用規(guī)則組合和均值漂移算法,能精確地判斷需要報警的異常點和變點。

1.閾值水位自適應(yīng)變化

以往我們添加監(jiān)控有兩種做法:

給指標(biāo)M1設(shè)置一個水位線,低于(或高于)水位,觸發(fā)報警;

給指標(biāo)M1設(shè)置同比、環(huán)比波動幅度,比如同比波動20%、環(huán)比波動10%觸發(fā)報警;

以上兩種方式,是平常大家常用的監(jiān)控方式,但是效果確不理想,這種靜態(tài)閾值長期來看沒有適應(yīng)變化的能力,需要人工維護(hù),而且報警準(zhǔn)確性也依賴于同環(huán)比數(shù)據(jù)的穩(wěn)定性。

我們能否讓系統(tǒng)具備自動適應(yīng)變化的能力,自動調(diào)整閾值水位?就如同手動擋的汽車換成自動擋一樣,可以根據(jù)速度自己調(diào)節(jié)檔位。

2.監(jiān)控項自動發(fā)現(xiàn)

當(dāng)我們的監(jiān)控系統(tǒng)具備預(yù)測動態(tài)閾值的能力后,監(jiān)控項的維護(hù)是否也可以交給系統(tǒng)去做?

可能大家也曾遇到過類似的情況,舊的監(jiān)控項已經(jīng)沒有數(shù)據(jù)了,新的監(jiān)控目標(biāo)卻因為各種原因被漏掉,人工維護(hù)監(jiān)控項需要及時同步上下線變更,但是當(dāng)我們需要監(jiān)控的目標(biāo)有一千個、一萬個甚至更多的時候,人力是無法一直跟進(jìn)這些監(jiān)控項的維護(hù)工作的,或者說這種工作比較單調(diào)容易被忽視。

我們能否將判斷如何篩選監(jiān)控項的規(guī)則交給系統(tǒng),讓它去定期檢查哪些監(jiān)控項已經(jīng)實效,哪些監(jiān)控項需要新增,哪些監(jiān)控項的閾值需要調(diào)節(jié)。這種發(fā)現(xiàn)規(guī)則是穩(wěn)定的,僅僅是依據(jù)發(fā)現(xiàn)規(guī)則得出的監(jiān)控項內(nèi)容在不斷變化而已。

3.過濾誤報時欲擒故縱

當(dāng)我們的監(jiān)控系統(tǒng)具備預(yù)測動態(tài)閾值、自動發(fā)現(xiàn)并維護(hù)監(jiān)控項的能力后,如何達(dá)到不漏報和不誤報之間的平衡?

對于監(jiān)控而言,漏報是不可容忍的,但是誤報過多也容易使人麻木。

通常的做法是為了不被誤報干擾至麻木,會把閾值調(diào)節(jié)得寬松些,但是這種做法容易產(chǎn)生漏報,尤其是下跌不太明顯的情況。

Goldeneye采取的思路是對誤報case欲擒故縱,在首先確保不漏報的基礎(chǔ)上降低誤報率。先監(jiān)控產(chǎn)生疑似異常點,這一環(huán)節(jié)我們基于動態(tài)閾值去檢測時相對嚴(yán)格一些(或者說這一環(huán)節(jié)不用考慮報警收斂的問題),然后對這些疑似異常點再做驗證、過濾,最終生成報警通知,驗證和過濾的依據(jù)是預(yù)先定義的規(guī)則,比如指標(biāo)組合判斷、報警收斂表達(dá)式等。

三、技術(shù)實現(xiàn)細(xì)節(jié)

下面介紹技術(shù)實現(xiàn)的一些細(xì)節(jié),分為監(jiān)控系統(tǒng)的架構(gòu)、動態(tài)閾值、變點檢測、智能全景、輔助定位五個點。

1、整體介紹

Goldeneye監(jiān)控系統(tǒng)的四個輸入:實時監(jiān)測數(shù)據(jù)、歷史數(shù)據(jù)、預(yù)測策略、報警過濾規(guī)則。

其中,歷史數(shù)據(jù)是實時監(jiān)測數(shù)據(jù)的積累。

而預(yù)測策略主要包括:

(1)閾值參數(shù):設(shè)置基于預(yù)測基準(zhǔn)值的系數(shù)決定閾值上下限區(qū)間、分時段閾值預(yù)測系數(shù)、分報警靈敏度閾值預(yù)測系數(shù);

(2)預(yù)測參數(shù):樣本數(shù)量、異常樣本過濾的高斯函數(shù)水位或者過濾比例、基于均值漂移模型的樣本分段選取置信度等。

關(guān)于報警過濾規(guī)則,主要是為了在充分捕捉疑似異常點的前提下,過濾不必要的報警。比如指標(biāo)M1異常,但是組合規(guī)則是M1和M2同時異常才報警,這種就會過濾掉。再比如,按照報警收斂規(guī)則,一個監(jiān)控項的第1次,第2次,第10次,第50次連續(xù)報警值得關(guān)注,可以設(shè)置收斂表達(dá)式為1,2,10,50,那么在報警通知生成時對于第3,4,…,9,11,12,…,49次報警可以忽略,因為反復(fù)通知的意義不大,這個規(guī)則可以按需要達(dá)到自動收斂。也可以在同一監(jiān)控項的多個實例同時發(fā)生異常報警的情況下,按規(guī)則合并成一條報警,這些規(guī)則可以按具體情況去實現(xiàn),最終的目的是以最簡潔的方式暴露最值得關(guān)注的報警。

(這里補充一句,我們最近在考慮新的收斂方式,對第1條和最后1條報警,并且自動計算出累積gap,這樣異常的起止和影響范圍更明顯)

圖2 Goldeneye報警系統(tǒng)架構(gòu)

2、動態(tài)閾值

監(jiān)控使用控制圖,對監(jiān)測指標(biāo)的時間序列可視化,讓人們可以清楚的看到指標(biāo)的波動?;诳刂茍D的監(jiān)控,以往很多都是靜態(tài)閾值方式,比如前面提到的靜態(tài)水位線、同環(huán)比。動態(tài)閾值是為控制圖的時間序列每個點,預(yù)估該點對應(yīng)時刻這個指標(biāo)的基準(zhǔn)值、閾值上限、閾值下限,從而讓程序可以自動判斷是否有異常。因為這種預(yù)估基于過去幾個月甚至更多的歷史樣本作為參考,所以比同環(huán)比兩個數(shù)據(jù)作為參照的準(zhǔn)確度要高。動態(tài)閾值預(yù)測的理論基礎(chǔ)是高斯分布和均值漂移模型。

圖3 動態(tài)閾值原理

動態(tài)閾值預(yù)測的步驟主要是這樣:

(1)樣本選?。哼@個根據(jù)自己的需要,一般建議選取過去50天左右的樣本。

(2)異常樣本篩除:這個過程主要使用高斯分布函數(shù)過濾掉函數(shù)值小于0.01,或者標(biāo)準(zhǔn)方差絕對值大于1的樣本。

(3)樣本截?。阂驗楹髞砦覀儍?yōu)化的版本,在(2)的基礎(chǔ)上使用均值漂移模型對歷史樣本在時間序列上進(jìn)行分段檢驗,如果有周期性變化、或者持續(xù)單調(diào)變化,則會反復(fù)迭代均值漂移模型尋找均值漂移點,然后截取離當(dāng)前日期最近第一段(或者可以理解為最近一段時間最平穩(wěn)的樣本序列)。樣本選取還有一個需要注意的問題,節(jié)假日和工作日的樣本要分開選取,預(yù)測工作日的閾值要選擇工作日的樣本,節(jié)假日亦然,也就是對預(yù)測樣本從日期、周末、平穩(wěn)性三個維度拆分選取。

(4)預(yù)測基準(zhǔn)值:經(jīng)過(2)和(3)的篩選、截取,剩下的樣本基本上是最理想的樣本了,在此基礎(chǔ)上,保持樣本在日期上的順序,按指數(shù)平滑法預(yù)測目標(biāo)日期的基準(zhǔn)值,得到基準(zhǔn)值以后根據(jù)靈敏度或閾值系數(shù),計算閾值上下限。

(補充說明:第四步預(yù)測基準(zhǔn)值,有些人可能之前用過指數(shù)平滑法預(yù)測,跟第四步我們在樣本權(quán)重加權(quán)時的做法很相近,但是他們預(yù)測的效果不理想,因為對樣本整體沒有充分的過濾選取最穩(wěn)定的樣本集合)

3、變點檢測

動態(tài)閾值用數(shù)據(jù)統(tǒng)計分析的辦法解決了靜態(tài)閾值的誤報漏報問題,節(jié)省了人工維護(hù)的成本,一定程度上降低了監(jiān)控風(fēng)險。不過在微量波動、持續(xù)陰跌的故障面前,動態(tài)閾值也有局限性,閾值區(qū)間收的太緊誤報會增多,區(qū)間寬松就會漏報一些不太顯著的故障。在review漏報case時,我們從控制圖上發(fā)現(xiàn)這些微量波動肉眼可以觀察到趨勢,但是程序通過閾值區(qū)間擊穿的判斷方式很難控制,所以引入了均值漂移模型來尋找變點。所謂變點,就是持續(xù)微量下跌到一定時間,累積變化量到一定程度后,使得變點前后監(jiān)測指標(biāo)在一段時間內(nèi)的均值發(fā)生漂移。


上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉