天天看點

從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!

作者:董善東 & 白玙

對于大部分人來說,資訊是一個非常抽象的概念。人們常常說資訊很多或資訊較少,但卻很難說清楚資訊到底有多少。比如一份幫助文檔或一篇文章到底有多少資訊量。直到 1948 年,C.E.Shannon(香農)提出了“資訊熵”的概念,才解決了對資訊的量化度量問題。資訊熵這個詞是香農從熱力學中借鑒而來來的。熱力學中的熱熵是表示分子狀态混亂程度的實體量。而香農用資訊熵的概念來描述信源的不确定度。

從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!

香農的資訊熵本質上是對我們司空見慣的 “不确定現象” 的數學化度量。譬如說,如果天氣預報說 “今天下午下雨的可能性是 60%” ,我們就會不約而同想到出門帶傘;如果預報說 “有 60% 的可能性下雨” ,我們就會猶豫是否帶傘,因為雨傘無用時确是累贅之物。顯然,第一則天氣預報中,下雨這件事的不确定性程度較小,而第二則關于下雨的不确定度就大多了。

作為數學中頗為抽象的概念,我們可以把資訊熵了解成某種特定資訊的出現機率。而資訊熵和熱力學熵是緊密相關的。根據 Charles H. Bennett 對 Maxwell's Demon 的重新解釋,對資訊的銷毀是一個不可逆過程,是以銷毀資訊是符合熱力學第二定律的。而産生資訊,則是為系統引入負(熱力學)熵的過程。當一種資訊出現機率更高時,表明被傳播得更廣泛,或者說被引用的程度更高。我們可以認為從資訊傳播角度來看,資訊熵可以表示資訊的價值,這樣子我們就有一個衡量資訊價值高低的标準。

再具體到我們日常運維工作場景中,各類的告警事件作為最典型的一種資訊,在面對每天海量高警事件我們該如何評估告警的資訊價值成為了一個重要問題。

各大監控平台/工具一般有兩種方式去識别名額異常并觸發告警事件。第一種是常見的通過設定門檻值/動态門檻值的方式。第二種就是設定預設規則,觸發系統預設規則事件,例如:機器重新開機等。 與此同時,運維團隊往往不會依賴單一的監控工具,經常需要在各種不同層次工具中都設定對應的監控告警。

在這樣的背景下,監控源多元化與監控工具類别多樣化,往往導緻相同故障原因在不同監控工具、不同監控規則下,觸發出大量重複、備援的告警事件。甚至在發生大範圍故障時形成告警風暴。運維人員很難從這些海量告警中快速有效的識别到底哪些告警事件是重要且準确的資訊,這也往往導緻有效告警被淹沒。是以,對于運維團隊和告警産品來說,存在以下幾個痛點:

  • 多處監控告警源以及頻繁誤報導緻大量重複、備援、低效事件,重要事件淹沒在其中,無法有效識别;
  • 大範圍故障導緻的告警風暴;
  • 測試事件等髒資料混在事件中。

什麼是 ARMS 智能降噪

ARMS 智能降噪功能依托于 NLP 算法和資訊熵理論建立模型,從大量曆史告警事件中去挖掘這些事件的模式規律。當實時事件觸發後,實時為每一條事件打上資訊熵值與噪音識别的标簽,幫助使用者快速識别事件重要性。 

智能降噪的實作原理介紹

事件中心中大量的曆史事件沉積,很難人工實作從這些大量曆史事件中抽象出事件模式與價值。應用實時監控服務 ARMS ITSM 産品智能降噪功對不同告警源收歸到統一平台進行告警事件處理,将這些曆史事件進行模式識别,挖掘内在關聯,建立基于資訊熵的機器學習模型輔助使用者進行事件重要性的識别,模型核心步驟包括: 

從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!
從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!
  • step 1:基于自然語言處理和領域詞彙庫, 完成事件内容的詞向量化,實作事件最小粒度的度量;
  • step 2:基于資訊論中資訊熵的概念, 結合 tfidf 模型,建構詞向量的資訊熵值和重要性度量模型;
  • step 3:利用 sigmod,完成事件的非線性和歸一化 “資訊熵” 度量;
  • step 4:結合曆史事件的處理記錄和回報, 構模組化型疊代訓練與驗證。

利用自然語言處理算法,基于資訊論中的資訊量和資訊熵概念來表征事件重要性,幫助使用者利用大量曆史事件訓練疊代出識别事件重要性的模型。當新實時事件觸發時,快速識别事件重要性。同時,結合資訊熵門檻值設定,來完成噪音事件過濾與屏蔽。并根據時間演進以及事件類型與内容變化,模型通過自适應定期實作疊代式更新(更新頻率為每周一次),無需使用者進行任何操作,即可保證模型準确性。 

智能降噪業務價值

業務價值一:智能化識别重複、低效事件,挖掘新奇事件

(1)大量重複、相似事件的識别

對于大量重複、相似事件,該類事件持續大量出現在事件告警中,模型對于這類事件的資訊熵值會持續給予降低的資訊熵,即:這類事件的資訊熵值會越來越低,直到最後接近為 0。這是因為模型期待對于重要的事件,使用者可以更多關注響應, 而如果事件一直重複、大量觸發,往往說明這類事件使用者根本不關心,從業務邏輯上也輔證了模型機理。 

(2)挖掘新奇事件

對于在曆史事件中不曾出現、比較少出現的事件,模型則會重點關注,認定該類事件為新奇事件,給予目前事件較大的資訊熵值,以期待使用者更多的關注該類事件。是以,ARMS 智能降噪模型還具備幫助使用者識别重要事件的功能。 

業務價值二:定制化需求支援設定

對于一些使用者測試事件或特定字段事件,我們常常希望對這類事件進行定制化處理,例如:測試事件隻觸發檢視整個流程,但不需要去點選做任何處理。再比如,有些事件中包含了特别重要字段資訊,對于這類事件需要優先處理。 

業務價值三: 模型具備高成長性

對于曆史事件數量較少的使用者(事件數量<1000), 一般不推薦打開該功能,這是因為曆史事件數量過少的情況下,模型很難充分訓練,識别其内在模式和規律。但是在開啟後, 模型每周會在本周新發生的事件基礎上,進行模型疊代訓練。在使用者無需關心的前提下,模型一方面自适應追蹤事件模式變化,另外一方面對于原有事件數量不充足的模型, 也在持續進行充分疊代。 

最佳實踐

使用流程說明

step 0:入口
從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!

從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!

step 1:開啟

當覺得事件量過多, 重複事件,低效/無效事件過多時, 可以選擇開啟智能降噪。

從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!
從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!

step 2:使用

開啟後, 則會拉取曆史 1 個月的事件資料(如果一個月内事件數量過多, 目前會拉取一部分進行訓練)進行智能模型訓練。點選智能降噪,進入詳情頁。 

從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!

step 3:參數設定

深入了解該功能後, 使用者可以開始考慮設定一些關鍵來進行事件的優先處理和屏蔽。優先詞和屏蔽詞的詳情可以參考名詞解釋。 

從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!

名詞解釋

  • 噪音事件門檻值:開啟智能降噪後, 我們會對每一條新事件計算資訊熵值。噪音事件門檻值設定則是劃分噪音/非噪音事件的分界線。
  • 噪音事件:事件資訊熵低于設定資訊熵門檻值的事件,統稱為噪音事件。 
  • 非噪音事件:事件資訊熵大于或等于設定資訊熵門檻值的事件,統稱為非噪音事件。 
  • 優先詞:在關鍵詞設定中,使用者可以設定一些自己想要優先看到的詞彙, 如:重要, critical 等。當發生事件的事件名稱和事件内容包含設定的優先詞時, 目前事件的優先級相對應提高, 避免被識别成噪音事件。 
  • 屏蔽詞:在關鍵詞設定中,使用者可以設定一些自己認為不重要的詞彙, 如:測試, test 等。當發生事件的事件名稱和事件内容包含設定的屏蔽詞時, 目前事件會被直接認定為資訊熵為 0(如果資訊熵門檻值設定 >0,則被認定為噪音事件)。 
  • 常見詞 Top50:根據曆史事件的統計學習, 模型會儲存一份事件詞彙的詞頻表。常見詞則是詞頻表按照出現頻率大小排序, 選擇 Top50 進行展示。 

常見問題

什麼時候開啟該功能

對于曆史事件數量 > 1000 的使用者,ARMS 智能降噪将進行自動開啟操作。 

對于曆史事件數量仍較少的使用者,使用者可自行打開,但是模型效果需要一段時間時間疊代調優。

需不需要修改模型參數

建議在初期使用,不作修改,采取預設即可。 

在了解功能後,可以嘗試設定優先詞和屏蔽詞, 以及資訊熵門檻值,實作更定制化的需求。

點選

此處

,前往阿裡雲可觀測專題頁檢視更多資訊!

近期熱門

#阿裡雲可觀測系列公開課#

直播間不見不散!

從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!
從 “香農熵” 到 “告警降噪” ,如何提升告警精度?直播間不見不散!

繼續閱讀