作者:董善東 & 白玙
對於大部分人來說,信息是一個非常抽象的概念。人們常常說信息很多或信息較少,但卻很難說清楚信息到底有多少。比如一份幫助文檔或一篇文章到底有多少信息量。直到 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 智能降噪將進行自動開啟操作。
對於歷史事件數量仍較少的用戶,用戶可自行打開,但是模型效果需要一段時間時間迭代調優。
需不需要修改模型參數
建議在初期使用,不作修改,采取默認即可。
在了解功能后,可以嘗試設定優先詞和屏蔽詞, 以及信息熵閾值,實現更定制化的需求。
點擊此處,前往阿里雲可觀測專題頁查看更多信息!
近期熱門
#阿里雲可觀測系列公開課#