从 “香农熵” 到 “告警降噪” ,如何提升告警精度?
作者:董善東 & 白玙
對(duì)于大部分人來(lái)說(shuō),信息是一個(gè)非常抽象的概念。人們常常說(shuō)信息很多或信息較少,但卻很難說(shuō)清楚信息到底有多少。比如一份幫助文檔或一篇文章到底有多少信息量。直到 1948 年,C.E.Shannon(香農(nóng))提出了“信息熵”的概念,才解決了對(duì)信息的量化度量問(wèn)題。信息熵這個(gè)詞是香農(nóng)從熱力學(xué)中借鑒而來(lái)來(lái)的。熱力學(xué)中的熱熵是表示分子狀態(tài)混亂程度的物理量。而香農(nóng)用信息熵的概念來(lái)描述信源的不確定度。
香農(nóng)的信息熵本質(zhì)上是對(duì)我們司空見(jiàn)慣的 “不確定現(xiàn)象” 的數(shù)學(xué)化度量。譬如說(shuō),如果天氣預(yù)報(bào)說(shuō) “今天下午下雨的可能性是 60%” ,我們就會(huì)不約而同想到出門(mén)帶傘;如果預(yù)報(bào)說(shuō) “有 60% 的可能性下雨” ,我們就會(huì)猶豫是否帶傘,因?yàn)橛陚銦o(wú)用時(shí)確是累贅之物。顯然,第一則天氣預(yù)報(bào)中,下雨這件事的不確定性程度較小,而第二則關(guān)于下雨的不確定度就大多了。
作為數(shù)學(xué)中頗為抽象的概念,我們可以把信息熵理解成某種特定信息的出現(xiàn)概率。而信息熵和熱力學(xué)熵是緊密相關(guān)的。根據(jù) Charles H. Bennett 對(duì) Maxwell’s Demon 的重新解釋,對(duì)信息的銷毀是一個(gè)不可逆過(guò)程,所以銷毀信息是符合熱力學(xué)第二定律的。而產(chǎn)生信息,則是為系統(tǒng)引入負(fù)(熱力學(xué))熵的過(guò)程。當(dāng)一種信息出現(xiàn)概率更高時(shí),表明被傳播得更廣泛,或者說(shuō)被引用的程度更高。我們可以認(rèn)為從信息傳播角度來(lái)看,信息熵可以表示信息的價(jià)值,這樣子我們就有一個(gè)衡量信息價(jià)值高低的標(biāo)準(zhǔn)。
再具體到我們?nèi)粘_\(yùn)維工作場(chǎng)景中,各類的告警事件作為最典型的一種信息,在面對(duì)每天海量高警事件我們?cè)撊绾卧u(píng)估告警的信息價(jià)值成為了一個(gè)重要問(wèn)題。
各大監(jiān)控平臺(tái)/工具一般有兩種方式去識(shí)別指標(biāo)異常并觸發(fā)告警事件。第一種是常見(jiàn)的通過(guò)設(shè)定閾值/動(dòng)態(tài)閾值的方式。第二種就是設(shè)定默認(rèn)規(guī)則,觸發(fā)系統(tǒng)預(yù)設(shè)規(guī)則事件,例如:機(jī)器重啟等。?與此同時(shí),運(yùn)維團(tuán)隊(duì)往往不會(huì)依賴單一的監(jiān)控工具,經(jīng)常需要在各種不同層次工具中都設(shè)定對(duì)應(yīng)的監(jiān)控告警。
在這樣的背景下,監(jiān)控源多元化與監(jiān)控工具類別多樣化,往往導(dǎo)致相同故障原因在不同監(jiān)控工具、不同監(jiān)控規(guī)則下,觸發(fā)出大量重復(fù)、冗余的告警事件。甚至在發(fā)生大范圍故障時(shí)形成告警風(fēng)暴。運(yùn)維人員很難從這些海量告警中快速有效的識(shí)別到底哪些告警事件是重要且準(zhǔn)確的信息,這也往往導(dǎo)致有效告警被淹沒(méi)。因此,對(duì)于運(yùn)維團(tuán)隊(duì)和告警產(chǎn)品來(lái)說(shuō),存在以下幾個(gè)痛點(diǎn):
- 多處監(jiān)控告警源以及頻繁誤報(bào)導(dǎo)致大量重復(fù)、冗余、低效事件,重要事件淹沒(méi)在其中,無(wú)法有效識(shí)別;
- 大范圍故障導(dǎo)致的告警風(fēng)暴;
- 測(cè)試事件等臟數(shù)據(jù)混在事件中。
什么是 ARMS 智能降噪
ARMS 智能降噪功能依托于 NLP 算法和信息熵理論建立模型,從大量歷史告警事件中去挖掘這些事件的模式規(guī)律。當(dāng)實(shí)時(shí)事件觸發(fā)后,實(shí)時(shí)為每一條事件打上信息熵值與噪音識(shí)別的標(biāo)簽,幫助用戶快速識(shí)別事件重要性。
智能降噪的實(shí)現(xiàn)原理介紹
事件中心中大量的歷史事件沉積,很難人工實(shí)現(xiàn)從這些大量歷史事件中抽象出事件模式與價(jià)值。應(yīng)用實(shí)時(shí)監(jiān)控服務(wù) ARMS ITSM 產(chǎn)品智能降噪功對(duì)不同告警源收歸到統(tǒng)一平臺(tái)進(jìn)行告警事件處理,將這些歷史事件進(jìn)行模式識(shí)別,挖掘內(nèi)在關(guān)聯(lián),建立基于信息熵的機(jī)器學(xué)習(xí)模型輔助用戶進(jìn)行事件重要性的識(shí)別,模型核心步驟包括:
- step 1:基于自然語(yǔ)言處理和領(lǐng)域詞匯庫(kù), 完成事件內(nèi)容的詞向量化,實(shí)現(xiàn)事件最小粒度的度量;
- step 2:基于信息論中信息熵的概念, 結(jié)合 tfidf 模型,構(gòu)建詞向量的信息熵值和重要性度量模型;
- step 3:利用 sigmod,完成事件的非線性和歸一化 “信息熵” 度量;
- step 4:結(jié)合歷史事件的處理記錄和反饋, 構(gòu)建模型迭代訓(xùn)練與驗(yàn)證。
利用自然語(yǔ)言處理算法,基于信息論中的信息量和信息熵概念來(lái)表征事件重要性,幫助用戶利用大量歷史事件訓(xùn)練迭代出識(shí)別事件重要性的模型。當(dāng)新實(shí)時(shí)事件觸發(fā)時(shí),快速識(shí)別事件重要性。同時(shí),結(jié)合信息熵閾值設(shè)定,來(lái)完成噪音事件過(guò)濾與屏蔽。并根據(jù)時(shí)間演進(jìn)以及事件類型與內(nèi)容變化,模型通過(guò)自適應(yīng)定期實(shí)現(xiàn)迭代式更新(更新頻率為每周一次),無(wú)需用戶進(jìn)行任何操作,即可保證模型準(zhǔn)確性。
智能降噪業(yè)務(wù)價(jià)值
業(yè)務(wù)價(jià)值一:智能化識(shí)別重復(fù)、低效事件,挖掘新奇事件
(1)大量重復(fù)、相似事件的識(shí)別
對(duì)于大量重復(fù)、相似事件,該類事件持續(xù)大量出現(xiàn)在事件告警中,模型對(duì)于這類事件的信息熵值會(huì)持續(xù)給予降低的信息熵,即:這類事件的信息熵值會(huì)越來(lái)越低,直到最后接近為 0。這是因?yàn)槟P推诖龑?duì)于重要的事件,用戶可以更多關(guān)注響應(yīng), 而如果事件一直重復(fù)、大量觸發(fā),往往說(shuō)明這類事件用戶根本不關(guān)心,從業(yè)務(wù)邏輯上也輔證了模型機(jī)理。
(2)挖掘新奇事件
對(duì)于在歷史事件中不曾出現(xiàn)、比較少出現(xiàn)的事件,模型則會(huì)重點(diǎn)關(guān)注,認(rèn)定該類事件為新奇事件,給予當(dāng)前事件較大的信息熵值,以期待用戶更多的關(guān)注該類事件。因此,ARMS 智能降噪模型還具備幫助用戶識(shí)別重要事件的功能。
業(yè)務(wù)價(jià)值二:定制化需求支持設(shè)定
對(duì)于一些用戶測(cè)試事件或特定字段事件,我們常常希望對(duì)這類事件進(jìn)行定制化處理,例如:測(cè)試事件只觸發(fā)查看整個(gè)流程,但不需要去點(diǎn)擊做任何處理。再比如,有些事件中包含了特別重要字段信息,對(duì)于這類事件需要優(yōu)先處理。
業(yè)務(wù)價(jià)值三: 模型具備高成長(zhǎng)性
對(duì)于歷史事件數(shù)量較少的用戶(事件數(shù)量<1000), 一般不推薦打開(kāi)該功能,這是因?yàn)闅v史事件數(shù)量過(guò)少的情況下,模型很難充分訓(xùn)練,識(shí)別其內(nèi)在模式和規(guī)律。但是在開(kāi)啟后, 模型每周會(huì)在本周新發(fā)生的事件基礎(chǔ)上,進(jìn)行模型迭代訓(xùn)練。在用戶無(wú)需關(guān)心的前提下,模型一方面自適應(yīng)追蹤事件模式變化,另外一方面對(duì)于原有事件數(shù)量不充足的模型, 也在持續(xù)進(jìn)行充分迭代。
最佳實(shí)踐
使用流程說(shuō)明
step 0:入口
step 1:開(kāi)啟
當(dāng)覺(jué)得事件量過(guò)多, 重復(fù)事件,低效/無(wú)效事件過(guò)多時(shí), 可以選擇開(kāi)啟智能降噪。
step 2:使用
開(kāi)啟后, 則會(huì)拉取歷史 1 個(gè)月的事件數(shù)據(jù)(如果一個(gè)月內(nèi)事件數(shù)量過(guò)多, 目前會(huì)拉取一部分進(jìn)行訓(xùn)練)進(jìn)行智能模型訓(xùn)練。點(diǎn)擊智能降噪,進(jìn)入詳情頁(yè)。
step 3:參數(shù)設(shè)定
深入了解該功能后, 用戶可以開(kāi)始考慮設(shè)定一些關(guān)鍵來(lái)進(jìn)行事件的優(yōu)先處理和屏蔽。優(yōu)先詞和屏蔽詞的詳情可以參考名詞解釋。
名詞解釋
- 噪音事件閾值: 開(kāi)啟智能降噪后, 我們會(huì)對(duì)每一條新事件計(jì)算信息熵值。噪音事件閾值設(shè)定則是劃分噪音/非噪音事件的分界線。
- 噪音事件: 事件信息熵低于設(shè)定信息熵閾值的事件,統(tǒng)稱為噪音事件。
- 非噪音事件: 事件信息熵大于或等于設(shè)定信息熵閾值的事件,統(tǒng)稱為非噪音事件。
- 優(yōu)先詞: 在關(guān)鍵詞設(shè)定中,用戶可以設(shè)定一些自己想要優(yōu)先看到的詞匯, 如:重要, critical 等。當(dāng)發(fā)生事件的事件名稱和事件內(nèi)容包含設(shè)定的優(yōu)先詞時(shí), 當(dāng)前事件的優(yōu)先級(jí)相對(duì)應(yīng)提高, 避免被識(shí)別成噪音事件。
- 屏蔽詞: 在關(guān)鍵詞設(shè)定中,用戶可以設(shè)定一些自己認(rèn)為不重要的詞匯, 如:測(cè)試, test 等。當(dāng)發(fā)生事件的事件名稱和事件內(nèi)容包含設(shè)定的屏蔽詞時(shí), 當(dāng)前事件會(huì)被直接認(rèn)定為信息熵為 0(如果信息熵閾值設(shè)定 >0,則被認(rèn)定為噪音事件)。
- 常見(jiàn)詞 Top50: 根據(jù)歷史事件的統(tǒng)計(jì)學(xué)習(xí), 模型會(huì)保存一份事件詞匯的詞頻表。常見(jiàn)詞則是詞頻表按照出現(xiàn)頻率大小排序, 選擇 Top50 進(jìn)行展示。
常見(jiàn)問(wèn)題
什么時(shí)候開(kāi)啟該功能
對(duì)于歷史事件數(shù)量 > 1000 的用戶,ARMS 智能降噪將進(jìn)行自動(dòng)開(kāi)啟操作。
對(duì)于歷史事件數(shù)量仍較少的用戶,用戶可自行打開(kāi),但是模型效果需要一段時(shí)間時(shí)間迭代調(diào)優(yōu)。
需不需要修改模型參數(shù)
建議在初期使用,不作修改,采取默認(rèn)即可。
在了解功能后,可以嘗試設(shè)定優(yōu)先詞和屏蔽詞, 以及信息熵閾值,實(shí)現(xiàn)更定制化的需求。
點(diǎn)擊??此處??,前往阿里云可觀測(cè)專題頁(yè)查看更多信息!
近期熱門(mén)
#阿里云可觀測(cè)系列公開(kāi)課#
直播間不見(jiàn)不散!
總結(jié)
以上是生活随笔為你收集整理的从 “香农熵” 到 “告警降噪” ,如何提升告警精度?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 阿里云分布式容器平台即将全面启动公测
- 下一篇: 链路分析 K.O “五大经典问题”