對於大部分人來說,資訊是一個非常抽象的概念。人們常常說資訊很多或資訊較少,但卻很難說清楚資訊到底有多少。比如一份幫助文件或一篇文章到底有多少資訊量。直到 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 智慧降噪將進行自動開啟操作。
對於歷史事件數量仍較少的使用者,使用者可自行開啟,但是模型效果需要一段時間時間迭代調優。
需不需要修改模型引數
建議在初期使用,不作修改,採取預設即可。
在瞭解功能後,可以嘗試設定優先詞和遮蔽詞, 以及資訊熵閾值,實現更定製化的需求。
作者:董善東 & 白璵
原文連結:https://developer.aliyun.com/article/835869?utm_content=g_1000313794
本文為阿里雲原創內容,未經允許不得轉載。