王金鋒
(上海電科智能系統(tǒng)股份有限公司)
在綜合管廊集成監(jiān)控平臺運(yùn)營中,系統(tǒng)實時或定期采集管廊廊體安全、氣體環(huán)境安全以及入廊管線運(yùn)營、風(fēng)機(jī)水泵設(shè)備等安全指標(biāo)。一旦相應(yīng)的指標(biāo)出現(xiàn)異常或達(dá)到報警閾值,系統(tǒng)會發(fā)起實時報警事件。但是在上海滴水湖北島7km的管廊工程實際運(yùn)營管理中,運(yùn)維工程師們白天平均12min就會接收一次短信報警,在夜間則是平均18min一次,而實際數(shù)據(jù)統(tǒng)計發(fā)現(xiàn),有效短信報警占比不到15%。因此短信報警的冗余度是相當(dāng)高的,已經(jīng)造成了報警風(fēng)暴。
報警是為了預(yù)防事故發(fā)生、發(fā)現(xiàn)問題根源,發(fā)展和蔓延。一旦形成報警風(fēng)暴,運(yùn)維值班人員必將迷失在報警信息的海洋了,從而可能延誤對異常根源的排查和判定,錯失事故處理的最佳時機(jī),影響管廊運(yùn)行安全,甚至釀成更大的生產(chǎn)管理事故。
首先報警策略執(zhí)行按周期計算,因此會持續(xù)產(chǎn)生重復(fù)報警,部分策略甚至?xí)?dǎo)致持續(xù)報警達(dá)1h以上。更嚴(yán)重的情形是,一次故障可能引發(fā)多個相關(guān)策略報警。比如一個防火分區(qū)出現(xiàn)有毒氣體,本防火區(qū)首先報警,然后實例層面報警,隨著空氣流通,接著緊鄰的防火區(qū)也會報警。
報警關(guān)注度是指接到報警信息后相應(yīng)人員的及時處理動作——把報警發(fā)送后有實際處理的比例作為報警關(guān)注度的度量指標(biāo),發(fā)現(xiàn)實際關(guān)注度并不高,而在夜間短信報警關(guān)注率則低至25%。但事實上夜間短信報警的級別一般都是比較高的。這就意味著很多報警策略的發(fā)送方式和實際的報警等級已經(jīng)相違背了。這是因為報警的關(guān)注度隨著業(yè)務(wù)發(fā)展發(fā)生變化,但是這些關(guān)注度的變化沒有及時的在報警系統(tǒng)中修改,導(dǎo)致已經(jīng)變得不那么重要緊急的報警,卻還在以短信的形式給值班工程師發(fā)送報警。
每個報警策略平均有3個接收人,部分報警甚至超過了7個。報警策略的接收人往往會填寫了運(yùn)維團(tuán)隊中的所有人,但實際值班人只有一個人,大家按周期輪轉(zhuǎn)。因此,對于一個特定的報警,大部分在列人員是不需要即時關(guān)注的。
超過88%以上的報警都是單實例報警,40%以上只需要簡單的處理即可恢復(fù),比如平臺本身磁盤打滿或者內(nèi)存泄露等。因此我們在運(yùn)維系統(tǒng)中增加了自愈機(jī)制,自愈成功后,只需記錄報警日志即可。
報警合并對很多做監(jiān)控系統(tǒng)常用的優(yōu)化措施,相關(guān)文獻(xiàn)都提到了這個過程,但大多數(shù)提及的報警合并都是將某個時間窗口內(nèi)的報警簡單的合并成為一條,此舉對削減報警數(shù)量固然有效,但不利于值班工程師進(jìn)行故障診斷。我們希望把若干描述同一故障的報警合并在一起,讓值班工程師可以快速捕捉到故障本質(zhì),甚至故障根因,而并非一味的削減報警量。
最簡單的報警合并方法可以基于報警策略的自然屬性,包含策略名或者部署維度等。當(dāng)合并的內(nèi)容過多時,將最主要的報警或者報警的總結(jié)匯總到短信內(nèi)容里面,具體的每一條細(xì)節(jié)報警、報警起始結(jié)束時間、報警持續(xù)時間、報警配置內(nèi)容等細(xì)節(jié)信息都會在短鏈的頁面中展示。
一個報警產(chǎn)生以后,我們先把這個報警插入一個發(fā)送等待隊列而非立即發(fā)送。報警產(chǎn)生后先插入等待隊列里面去,在隊列里等進(jìn)行延遲計時,當(dāng)達(dá)到了能夠容忍的延遲時間以后,我們在等待隊列中找到可以和該報警一起合并發(fā)送的報警,根據(jù)實際的合并維度渲染成不同的報警短信內(nèi)容,然后合并成一條報警短信發(fā)送。
某個模塊的出現(xiàn)問題,往往會引發(fā)上游或者下游模塊也一并報警。假設(shè)模塊A調(diào)用了模塊B,當(dāng)模塊B出現(xiàn)問題的時候,很顯然模塊A和模塊B都會產(chǎn)生報警。
歷史上每次B模塊出現(xiàn)同樣的問題的時候都會導(dǎo)致A模塊有類似的報警,換言之,若歷史上A模塊的策略rule1和B模塊的rule2經(jīng)常同時報警,那么A模塊的策略rule1和B模塊的策略rule2就可能存在關(guān)聯(lián)。因此我們可以挖掘歷史報警數(shù)據(jù)中的關(guān)聯(lián)關(guān)系,即關(guān)聯(lián)的報警策略列表。
使用常見關(guān)聯(lián)分析算法挖掘頻繁項集(歷史上經(jīng)常在一起出現(xiàn)的報警策略)和關(guān)聯(lián)規(guī)則(報警策略之間存在很強(qiáng)的關(guān)系)。下面定義報警策略的頻繁出現(xiàn)或是否存在關(guān)聯(lián):一個項集的支持度計數(shù)被定義為該項集出現(xiàn)的次數(shù),區(qū)別于傳統(tǒng)的支持度是因為歷史報警數(shù)據(jù)產(chǎn)生的數(shù)據(jù)往往較多,而實際項集數(shù)據(jù)出現(xiàn)的比較稀疏,意味著支持度的分母巨大,分子卻很小。
置信度是針對一條關(guān)聯(lián)規(guī)則X:rulem→Y:rulen而言定義的,代表了X:rulem導(dǎo)致Y:rulen發(fā)生的可能的概率。
支持度計數(shù)S_count(X:rulem)=以X:rulem開頭的transaction的數(shù)量
支 持 度 計 數(shù)S_count(X:rulem →Y:rulen)=以X:rulem開頭,并且包含Y:rulen的transaction的數(shù)量置信度c(X→Y)計算公式如下:

支持度和置信度超過一定數(shù)值即為所需的關(guān)聯(lián)規(guī)則。按照這樣的規(guī)則,在等待發(fā)送隊列中,當(dāng)某個報警發(fā)送時在報警策略關(guān)聯(lián)表中查找等待隊列中如果包含合并策略,就合并成一條報警信息發(fā)送。
報警關(guān)注度是指報警發(fā)送后有實際處理的比例,但系統(tǒng)運(yùn)維一段時間后都會發(fā)現(xiàn)部分報警的關(guān)注度遠(yuǎn)低于100%,大多數(shù)情況下并非是值班工程師不盡責(zé),而是部分報警策略隨著系統(tǒng)的演化已經(jīng)失效而又沒有及時刪除,因此需要我們能夠識別無效報警。
一般地,值班工程師收到一條有效的短信報警后,會登錄運(yùn)維系統(tǒng)(包括監(jiān)控系統(tǒng)、預(yù)案系統(tǒng)等)對報警進(jìn)行定位、處理,這些行為會體現(xiàn)在各種運(yùn)維系統(tǒng)的訪問日志中。通過收集這些日志,就可以對每條報警的處理情況進(jìn)行分析:如果在收到報警后的一段時間內(nèi)訪問過運(yùn)維系統(tǒng),可以認(rèn)為該報警得到了關(guān)注,反之就認(rèn)為該報警沒有得到關(guān)注。匯總一段時間后,就能夠篩選出關(guān)注度較低的報警策略,即為無效報警策略。
很多報警都有明確的處理預(yù)案,報警發(fā)生后,值班工程師登錄機(jī)器或者中控機(jī)執(zhí)行預(yù)案(腳本)就可以完成這類故障的處理。比如,清理磁盤這類操作,可以完全自動處理,無需人工干預(yù),就能夠大量節(jié)省人工成本,同時減少報警量。因此,監(jiān)控報警系統(tǒng)提供了報警回調(diào)機(jī)制,在報警發(fā)生時可以回調(diào)預(yù)案處理腳本。
對于更復(fù)雜的場景,值班工程師往往需要根據(jù)服務(wù)的整體情況來調(diào)整預(yù)案。例如當(dāng)某個實例異常需要重啟的時候,需要綜合判斷其他實例的狀態(tài)才能確定是否以及何時可以重啟該實例,以免給其他服務(wù)造成損失。這種場景的自愈操作可能是有損的,需要對服務(wù)整體情況有一個判斷才可以執(zhí)行預(yù)案,監(jiān)控報警系統(tǒng)為此提供了一種回調(diào)機(jī)制。在發(fā)生報警時,報警系統(tǒng)會把相關(guān)的報警策略、實例的狀態(tài)都統(tǒng)一發(fā)送給一個中樞決策服務(wù),由中樞決策服務(wù)統(tǒng)一做出判斷。
通過對現(xiàn)代綜合管廊安全運(yùn)營監(jiān)測報警子系統(tǒng)的監(jiān)測報警數(shù)據(jù)進(jìn)行問題梳理,并有針對性的進(jìn)行的信息優(yōu)化處理。以科學(xué)合理的數(shù)據(jù)管理方式,準(zhǔn)確判定數(shù)據(jù)異常,通過報警合并策略及報警分級,高效便捷的管理跟蹤報警事件處理過程,避免管理過程中設(shè)備設(shè)施報警信息的報警風(fēng)暴,為后續(xù)綜合管廊監(jiān)控運(yùn)營優(yōu)化提供參照,提升管廊管理水平。