大鵬講堂:智能監控在袋鼠雲日誌中的運用

傳統監控範圍小
智能監控效率高
你說到底怎麼用
大鵬給你來支招

簡介

傳統監控是通過對監控項設置一個固定值(閾值),當監控項指標超過這個閾值時就通知人們關注這個指標項。傳統監控一般適用於一定範圍波動的業務指標,比如磁盤的使用率,CPU的使用率等,當指標超過一定值時就意味着系統可能出現故障,但是遇到波動範圍比較大的場景時,比如某銀行的交易09:00~18:00之間交易量大,在其他時間交易量可能爲0,工作日交易一般,非工作日交易劇增,又比如某網站的點擊量在白天很大,在深夜點擊量可能爲0,如果使用傳統監控對上面的場景進行指標監控,往往不能很好的反映系統和業務的狀態,產生很多誤報的情況,增加人工成本,而且甚至會讓人們對告警產生麻木,不信任感。所以我們加入了機器學習算法,對過去的監控指標進行訓練,對當前值的異常判斷不再僅僅取決於一個固定的閾值,而是同期數據,歷史週期性數據進行了參考,通過這是動態閾值的方法對異常數據進行檢測。

技術架構

在這裏插入圖片描述
模型訓練器:雲日誌以固定頻率採集的業務指標形成時間序列,輸送到模型訓練器中,模型訓練器有一系列的數學模型組成(可動態添加),每個模型都得到預測值,觀察值與預測值之前存在的誤差,對比誤差我們將得到一個與業務最匹配的數學模型。利用這個訓練出的最佳模型,輸入未來時間點,得到預測值,繪製未來業務圖。
異常檢測器:訓練的數學模型預測的值與實際的觀察值存在一定的誤差,這個殘差系列輸送到異常檢測器中,異常檢測器也是由一系列的數學模型組成(可動態添加),模型檢查的誤差點與業務的異常點最匹配的模型將作爲異常檢測模型,將後續檢測出的異常點發送給預警系統。

時間序列建模

採集的時間序列數據並非是散亂,毫無規律的一組數據,它往往伴隨業務的變化而變化,有的具有很強的週期性規則,有的具有相對平滑的趨勢,我們需要利用對應的數學模型來擬合,一下是我們常用的幾種數學模型。

模型 描述
OlympicModel 季節模型,其中下一個點是先前n個時期的平滑平均值
MovingAverageModel 移動平均模型,下一個點在給定時間段的平均值
MultipleLinearRegressionModel 多元線性迴歸模型,使用一個或者多個變量對x和y的關係進行建模
PolynomialRegressionModel 多項式迴歸模型,高緯度數據建模
exponentialSmoothingModel 指數平滑模型,分一次,二次,三次指數平滑,對週期,趨勢,季節性特徵數據
weightedMovingAverageModel 多項式迴歸模型,高緯度數據建模

對不同特徵的時間序列,不同的數學模型所計算出的誤差也截然不同,我們從以下列表的指標來衡量這些數學模型的匹配度。

指標 描述
Bias 誤差的算術平均值
MAD 平均絕對偏差,也稱爲MAE
MAPE 平均絕對百分比誤差
MSE 誤差的均方
SAE 絕對錯誤的總和
ME 平均誤差
MASE 平均絕對比例誤差
MPE 平均百分比誤差

在經過以上指標衡量預測模型的優劣後,我得到最契合業務的擬合曲線,得到最佳的訓練模型。然後輸入未來時間點得到那個時間點的預測值,然後繪製出預測曲線

異常檢測

在預測出未來時間點的數據後,如何檢測這個業務數據是否異常,我們也有對應的異常檢測模型,如下表所示

模型 描述
cpModel 基於內核的波動點檢測
DBScanModel 基於密度的聚類算法檢測
kSigmaModel 經典的k-sigma模型,概率檢測
extremeLowDensityModel 基於密度的異常檢測,範圍檢測

將殘差指標用以上模型計算之後,與過去的業務異常點進行對比,選擇最接近的異常檢測模型,作爲後續的異常檢測,當模型檢測數數據異常時,即時發送預警給巡檢員,防患於未來。

雲日誌裏說乾坤
日誌分析真有用
監控告警樣樣行
紅燒產品來祭天

注:本文作者—大鵬(袋鼠雲日誌團隊,後端研發工程師)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章