天天看點

盤點監控系統中的告警智能降噪方案背景告警降噪機制常見監控/告警管理系統中的智能降噪方案總結

背景

運維監控系統/平台,一般是通過配置固定門檻值或條件,達到門檻值或滿足特定條件後自動觸發/生成告警。如網絡中斷、閃斷、系統更新更新等。在裝置多、監控内容多等情況下,可能會産生海量告警。以下為告警管理常見問題:

  • 故障期間,告警風暴,手機/郵箱會被海量告警淹沒;
  • 運維人員很難從海量告警從篩選出重要告警,容易忽略重要告警;
  • 固定門檻值控制,頻繁誤報、漏報告警;
  • ...

在監控場景下,一旦出現告警風暴,告警本身就失去了意義和價值。是以需要有一套方案,幫助使用者在不遺漏重要告警前提下,有效減少告警數量。

如果把監控告警放到機器學習領域,它是一個典型的機器學習回歸問題,是一個犧牲準确率,滿足召回率的場景,即甯可多報、誤報,也不遺漏告警。而告警降噪的目的就是在保證所有重要告警成功報出的前提下,盡量減少重複、無意義的告警(噪音)。換言之,是保證告警召回率接近 100%的前提下,盡量提升準确率(有意義、不重複的告警)。

告警降噪機制

告警降噪主要有三種機制:

  1. 自定義規則降噪
  1. 自動去重(第一種機制的子集,簡化版)
  • 通過一個或一組字段的集合來辨別一個告警的ID,ID取值相同的告警被視為同一類告警。Moogsoft中的 Deduplicate機制 便是屬于此類型。
  • 指定時間視窗内,相同ID的告警會被合并。
  • ID辨別和時間視窗可由使用者自定義,也可系統内置。
  1. 智能算法降噪(本文的主題)
  • 智能降噪的原理是以曆史資料預測目前狀态。通過曆史的告警資料來預測目前新來的告警是否需要被過濾掉。
  • 可供選擇的算法模型包括經典統計模型比如相似度模型、分類模型、預測模型,或機器學習回歸模型等。

前兩種降噪機制需要使用者手工配置規則和參數,第三種智能算法降噪則不需要使用者過多的配置。

本文主要調研了業界常見的監控/告警系統中使用到的智能算法降噪方案。

常見監控/告警管理系統中的智能降噪方案

一、Moogsoft

Moogsoft

提供了一個關聯引擎(

Correlation Engine

)來将相似的告警合并為一個事件(Incident)

盤點監控系統中的告警智能降噪方案背景告警降噪機制常見監控/告警管理系統中的智能降噪方案總結

其算法總體流程如下:

  1. (可選) 使用者選擇告警内容中的一組指定字段,并且為這一組或每個字段分别配置相似度門檻值;
  2. 告警觸發後,如果是首次觸發,則直接發送告警通知;
  3. 如果不是首次,則将該告警的指定字段值與曆史告警的指定字段值計算相似度,如果相似度高于使用者設定的門檻值,則認定為重複告警,自動靜默該告警。
  4. 如果使用者不配置特定字段。使用告警的全文本來進行相似度計算。
盤點監控系統中的告警智能降噪方案背景告警降噪機制常見監控/告警管理系統中的智能降噪方案總結

通過上述流程,相似的告警在一定的時間視窗内将被聚合為一個告警事件(Incident),進而達到減少重複告警數量(降噪)的效果。

二、Azure Monitor

Azure Monitor

在其告警管理子產品提供了一個

智能組

的功能,用于進行告警的智能降噪。其官網描述如下:

“智能組是使用機器學習算法自動建立的,用于将表示單個問題的相關警報組合在一起。 某個告警觸發後,智能組會根據曆史模式、相似屬性和相似結構等資訊,将其添加到新智能組或現有智能組。同一個智能組的告警,在一定時間視窗内,不會被重複通知。 ”

其主要的智能降噪方法有2種:

  1. 計算告警之間的相似度,包含:
    1. 文本相似性
    2. 告警結構相似性
  1. 挖掘曆史告警資料中的共現關系,對告警進行合并。

相似的告警或在曆史資料中頻繁共現的告警,将被配置設定到一個智能組之中。對于對警報進行故障排除的人員來說,智能組不僅可以通過将相關警報作為單個聚合單元進行管理來降低噪音,還可以引導他們找到其警報的可能共同根本原因。

下面是Azure Monitor智能組的一個例子:

  • 如果某個訂閱中多個虛拟機上的 % CPU 同時達到峰值導緻生成許多單獨的警報,并且如果此類警報在過去的任何時間一起發生,則這些警報可能會被分組到一個智能組中,進而表明存在潛在的共同根本原因。
盤點監控系統中的告警智能降噪方案背景告警降噪機制常見監控/告警管理系統中的智能降噪方案總結

三、PagerDuty

PagerDuty

中的事件智能元件(

PagerDuty Event Intelligence

),通過内置的自适應機器學習算法,可以有效地降低告警噪聲,讓開發運維人員專注在處理重要事件上,避免無意義的告警風暴。

盤點監控系統中的告警智能降噪方案背景告警降噪機制常見監控/告警管理系統中的智能降噪方案總結

其智能降噪算法的核心是一個支援使用者回報的自适應機器學習模型,該學習模型主要由兩部分組成:

  1. 文本相似度模型
  • 利用告警的标題、内容、觸發時間等文本資訊,計算兩個告警的相似度
  • 該模型将在冷啟動(即缺少曆史告警資料和使用者行為資料)時,承擔大部分的工作。
  1. 分類模型
  • 利用曆史告警資料的合并/靜默行為,訓練出的分類模型。
  • 使用者在使用過程中,可以手動對告警智能合并的結果進行打标,标注合并錯誤或正确,這樣的行為會持續改進該分類模型

上述兩個模型會通過動态權重進行合并訓練,得到一個統一的模型。在初始階段,由于缺少告警資料和使用者行為資料,更多的程度上是文本相似度模型在發揮更大作用。随着告警資料不斷的産生以及使用者持續的對智能降噪的結果進行回報,該模型會自适應地進行訓練,提高分類模型在整個模型中的權重,使該模型的智能降噪結果更貼近去使用者行為。

四、Cloud Alert (睿象雲)

Cloud Alert

(原OneAlert,下面簡稱CA)通過積累各行各業2億條原始告警,3GB告警專業特色詞庫以及230萬條告警人工标注,并利用機器學習算法進行模型的線上訓練和疊代,為告警降噪提供了

智能算法支撐

。總結來說,主要提供兩種降噪算法:

  1. 仿閱讀智能算法:
    1. 告警全文本預處理:基于CA打造的告警專業特色詞/停用詞庫,資料字典,人工标注資訊等,對告警全文本分詞處理等;
    2. 基于CA内置的分類等算法,對告警進行自動标注分類資訊。
    3. 對于新觸發的告警,利用其分類資訊,判斷新觸發的告警是否已存在同類告警,如果存在,則靜默該告警,避免重複發送。
  1. 高聚合智能算法:
    1. 告警全文本預處理:與算法智能分類預處理一緻,無需重複處理;
    2. 基于CA内置聚類等算法,提取告警關鍵特征資訊,對告警進行算法聚類,将關鍵特征資訊與聚類結果關聯。
    3. 對于新觸發的告警,如果與已有告警屬于同一聚類,則将其靜默,避免重複發送。

下圖是其聚類效果截圖:

盤點監控系統中的告警智能降噪方案背景告警降噪機制常見監控/告警管理系統中的智能降噪方案總結

五、其他監控/告警管理系統

其他常見的監控/告警管理系統,如

AWS CloudWatch

AlertManager

等,隻是提供了基于自定義規則的降噪方案,并未提供相關智能算法降噪方案。

總結

對于監控系統的運維人員來說,告警的降噪與分組不僅可以将相關告警作為單個聚合單元進行管理來降低噪音,還可以引導他們找到告警的可能共同的根本原因。

然而現實環境總是十分複雜的,作為運維人員,往往很難确定如何按照某種固定的規則去對告警進行合并、降噪,即使設定了比較合理的合并降噪規則,現實場景下也有可能出現意想不到的告警風暴。

智能告警降噪算法,可以在最小化使用者配置成本的同時,通過智能的機器學習算法,自動化地去學習告警之間的關聯或相似關系,同時接受使用者的回報,去進一步優化學習模型,達到貼合使用者行為的智能降噪效果。

繼續閱讀