雲系統中的異常檢測方法

雲系統中的異常檢測方法

隨著雲技術的飛速發展,雲系統的複雜性和規模不斷增加,雲系統的穩定性受到了極大挑戰。為了解決運維問題,運營商會透過指標(Metrics)、日誌(Logs)等多個維度資訊來了解雲系統的執行狀態。

本文介紹的方法是透過分析系統指標(如CPU 使用率、I/O 請求數、網路吞吐量等)對雲系統進行異常檢測。

對於這些指標資料,研究人員提出了單變數的時間序列異常檢測方法。但隨著雲系統複雜性的增加,運維人員可以收集的指標越來越多,該方法往往無法反映雲系統整體的異常情況。

基於此種情況,研究人員又提出了多元時間序列異常檢測,這種方法雖然考慮了雲系統中多個指標,但沒有將雲系統中的組織結構考慮進來,適用性也不太好。

在複雜的雲系統中我們以系統拓撲結構為基礎,獲得系統狀態的基於圖的表示,進而進行異常檢測。隨著深度神經網路的迅速發展,研究人員提出了基於深度學習的異常檢測方法,將圖神經網路與RNN和CNN一起應用來同時考慮空間和時間關係,對雲系統中資料以及拓撲結構進行建模。

一、常用的異常檢測方法

1。 傳統異常檢測方法

靜態閾值

:原指標超過閾值即異常。

3sigma

:計算當前值是否偏離歷史均值且偏離程度達3個標準差。

基於分類的方法

,例如支援向量機。

基於最鄰近方法

,例如區域性異常因子。

2。 深度學習方法

充分利用指標中的時序資訊進行異常檢測。

基於預測的方法:

雲系統中的異常檢測方法

基於重構的方法:

雲系統中的異常檢測方法

基於深度學習的方法是根據歷史資料利用深度學習模型進行建模,對需要檢測的資料進行預測或重構,誤差大則判定為異常。

二、TopoMAD 方法特點

1。 TopoMAD引入了圖神經網路(GNN),與傳統DNN相比有如下優勢:

雲系統中的異常檢測方法

▲ GNN相比DNN的優勢

2。 TopoMAD引入了拓撲資訊:

● 圖神經網路的特徵提取器共享於來自不同元件的同類指標之間,有助於在統一的特徵學習下捕獲相同指標型別之間的相似模式。

● 透過圖神經網路,元件可以由與其他元件之間的連線來定義,這為對系統中所有元件的模式和行為進行端到端學習提供了便利。

● 拓撲資訊可以引導模型將注意力集中在現實中具有直接連線的元件的互動上,這有助於防止我們的模型過度擬合。

3。 相比於其他方法的閾值選擇,引入無監督的方式來生成閾值,不需要對閾值進行調參,可以減少模型的調參難度。

三、TopoMAD 方法介紹

本文介紹一種基於變分自動編碼器(VAE)設計的異常檢測器。

這是一種拓撲感知多元時間序列的異常檢測器(TopoMAD),它結合了圖神經網路(GNN)、長短期記憶 (LSTM) 和變分自動編碼器VAE為雲系統執行無監督異常檢測。

TopoMAD方法主要有以下幾個方面的特點:

● TopoMAD是一種無監督異常檢測方法,該方法考慮了雲系統的拓撲資訊。我們將此拓撲資訊與雲系統中收集的指標相結合,構建了基於圖的異常檢測表示。

● TopoMAD將圖神經網路和 LSTM 作為 VAE 的基本結構粘合在一起,在拓撲時間序列中進行異常檢測。圖神經網路提取雲系統的空間拓撲資訊,LSTM隨著時間視窗從滑動視窗提取資訊。

● TopoMAD利用隨機模型VAE以完全無監督的方式對雲系統進行異常檢測,在包括正常和異常的資料上訓練模型,同時還提出了一種無監督的閾值選擇方法。

TopoMAD的整體流程如下:

雲系統中的異常檢測方法

▲ TopoMAD總體結構

透過資料標準化轉換從不同節點收集的不同資料,獲得從每個節點收集的指標X和描述系統拓撲的陣列E。

模型訓練

以離線批處理的方式使用歷史資料訓練模型。模型訓練好後,我們根據訓練資料的異常分數分佈選擇一個閾值。

閾值選擇

該方法以無監督方法選擇了一個閾值,該閾值使正常資料和異常資料集合之間的距離最大化。

線上異常檢測

使用這個經過適當訓練的模型計算新觀察的異常分數。如果觀察的異常分數高於我們選擇的閾值,則會觸發警報。

1。 資料整合和預處理

在資料預處理期間,我們透過資料標準化過程轉換從不同節點收集的不同指標,然後在這些集合和處理後的資料中取出一定長度的滑動視窗作為輸入。

輸入資料有兩類:

● X為指標矩陣,橫座標是節點(Node),縱座標是指標(Metric),矩陣每行表示節點各個指標的數值。

● E為系統的拓撲結構,系統拓撲中兩個具有相關關係的節點為一條邊,每條邊構成E的一個列向量。

雲系統中的異常檢測方法

▲ 輸入資料樣例

2。 模型設計

TopoMAD方法中模型的架構流程如下:

雲系統中的異常檢測方法

3。 基本單元GraphLSTM

● 透過進一步計算X_t的異常分數可以判斷異常,當異常分數高於閾值時,就會檢測到異常。

● 提出了一種閾值選擇方法,透過此閾值切割訓練資料集,使正常和異常兩個區域距離最大。

3。 基本單元GraphLSTM

GraphLSTM是編碼器和解碼器中的一部分,是圖神經網路和LSTM的組合。將LSTM中的全連線層替換為圖神經層即可得到GraphLSTM,它的結構如下:

雲系統中的異常檢測方法

▲ GraphLSTM的總體結構

4。 線上異常檢測過程

TopoMAD線上異常檢測流程如此下:

雲系統中的異常檢測方法

▲ TopoMAD線上異常檢測流程

四、總結

本文介紹的方法較已有的方法主要更多關注系統的拓撲資訊,將系統拓撲資訊融入到系統檢測的過程中,

主要有以下幾個方面優點

● 在傳統的LSTM中使用圖神經網路(GNN)的方法引入了拓撲的資訊,綜合考慮多維時間序列的時空資訊,將雲系統元件間的聯絡考慮進來,有助於在統一的特徵學習下捕獲相同指標型別之間的相似模式。

● 透過VAE+Seq2Seq的形式,增加模型的學習能力,相比於傳統方法模型效果更好。

● 該方法是一種無監督異常檢測方法,不需要帶標註的資料就能進行異常檢測,同時以無監督的方式計算閾值,相比於有監督方法對樣本要求更低,計算更簡單。