□ 王鈞玉
(河南省三門峽職業(yè)技術(shù)學(xué)院,河南 三門峽 472000)
?
基于告警相關(guān)性的網(wǎng)絡(luò)故障管理系統(tǒng)研究
□王鈞玉
(河南省三門峽職業(yè)技術(shù)學(xué)院,河南三門峽472000)
傳統(tǒng)網(wǎng)絡(luò)故障管理系統(tǒng)過于依賴專家知識(shí),無法應(yīng)對(duì)網(wǎng)絡(luò)復(fù)雜性與多變形問題,為此,提出構(gòu)建基于告警相關(guān)性的網(wǎng)絡(luò)故障管理系統(tǒng),并對(duì)系統(tǒng)功能實(shí)現(xiàn)等進(jìn)行研究。模擬證明該網(wǎng)絡(luò)故障管理系統(tǒng)能夠降低告警實(shí)例,為故障定位處理提供便利,具備較好的研究價(jià)值。
告警相關(guān)性;故障管理系統(tǒng);設(shè)計(jì)與分析
網(wǎng)絡(luò)故障管理涵蓋的內(nèi)容十分廣泛,包括告警數(shù)據(jù)采集、告警相關(guān)性分析、故障診斷與定位、故障修復(fù)等。因網(wǎng)絡(luò)連接著眾多的設(shè)備及系統(tǒng),在很多情況下,單一網(wǎng)絡(luò)故障問題的出現(xiàn),可能會(huì)誘發(fā)其他故障告警,而大量告警問題的出現(xiàn),勢(shì)必會(huì)為尋找告警根源帶來困難,還會(huì)增加網(wǎng)絡(luò)管理系統(tǒng)運(yùn)行成本[1]。為此,需要研究告警相關(guān)性分析技術(shù),實(shí)現(xiàn)告警合并或轉(zhuǎn)化,為網(wǎng)絡(luò)故障定位提供便利。傳統(tǒng)相關(guān)性研究越發(fā)難以滿足網(wǎng)絡(luò)發(fā)展的實(shí)際,為此,提出引入人工智能技術(shù)進(jìn)行網(wǎng)絡(luò)故障診斷。當(dāng)前,國內(nèi)外提出了較多的告警相關(guān)性分析技術(shù)[2],本研究以基于規(guī)則引擎的相關(guān)性分析為基礎(chǔ),重點(diǎn)對(duì)告警相關(guān)性網(wǎng)絡(luò)故障管理系統(tǒng)設(shè)計(jì)與功能實(shí)現(xiàn)等進(jìn)行研究。
(一)規(guī)則引擎技術(shù)分析
基于規(guī)則引擎的網(wǎng)絡(luò)故障管理系統(tǒng),其功能實(shí)現(xiàn)的基本原理為:針對(duì)多變業(yè)務(wù)規(guī)則提取與表示并在系統(tǒng)之外執(zhí)行處理,本質(zhì)上是選擇規(guī)則引擎來代替業(yè)務(wù)邏輯,并以程序代碼的方式固定于系統(tǒng)業(yè)務(wù)邏輯層,而被代替的業(yè)務(wù)邏輯則會(huì)在應(yīng)用程序之外的規(guī)則庫中進(jìn)行存儲(chǔ)。借助圖形化規(guī)則管理工具可以進(jìn)行規(guī)則庫內(nèi)部資源管理,具體管理形式包括定制規(guī)則、部署規(guī)則、修改規(guī)則與刪除規(guī)則等[3]。以Rete算法為規(guī)則引擎技術(shù)核心算法。從結(jié)構(gòu)上來看,規(guī)則引擎可以包括以下幾個(gè)部分:其一,存放規(guī)則的規(guī)則庫;其二,包含匹配算法的推理機(jī);其三,存放被引擎引用反映問題域當(dāng)前狀態(tài)的數(shù)據(jù)對(duì)象集合。
規(guī)則引擎所承擔(dān)的主要任務(wù)為:以引擎數(shù)據(jù)與加載于引擎中的業(yè)務(wù)規(guī)則庫為對(duì)象,通過提交方式進(jìn)入系統(tǒng)并經(jīng)推理機(jī)進(jìn)行算法匹配,以實(shí)現(xiàn)規(guī)則條件選擇與激活,被選擇與激活的規(guī)則則進(jìn)一步提取至議程之中等待執(zhí)行。規(guī)則引擎的應(yīng)用,成功將應(yīng)用程序與業(yè)務(wù)邏輯進(jìn)行了分離,在網(wǎng)絡(luò)故障管理系統(tǒng)設(shè)計(jì)領(lǐng)域引入規(guī)則引擎,能夠以規(guī)則的方式將網(wǎng)管專家知識(shí)存入到規(guī)則庫之中[4]。一旦網(wǎng)絡(luò)出現(xiàn)告警,則可以通過規(guī)則引擎尋找告警源,并推理出引發(fā)故障的原因,為故障維護(hù)人員提供參考。Java規(guī)則引擎有商業(yè)產(chǎn)品及開源項(xiàng)目兩種形式,即ILOG JRules 與Drools,考慮到前者成本較高,在本研究中則采取開源規(guī)則引擎執(zhí)行告警相關(guān)性分析。
(二)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)分析
在本研究中,網(wǎng)絡(luò)故障管理系統(tǒng)設(shè)計(jì)以管理者/代理模式為主,整體結(jié)構(gòu)劃分為兩大部分,即承擔(dān)管理任務(wù)的管理工作站部分與被管網(wǎng)絡(luò)部分[5]。系統(tǒng)管理進(jìn)程處理遵循以下流程:首先對(duì)告警信息進(jìn)行收集,在已收集的告警集中執(zhí)行相關(guān)性分析,并依據(jù)規(guī)則與分析結(jié)果判斷出故障位置。從而指導(dǎo)工作人員進(jìn)行故障修復(fù),同時(shí)保存故障日志。在整個(gè)處理流程中,告警相關(guān)性分析屬于最為關(guān)鍵的部分。
告警相關(guān)性分析模塊作為一個(gè)整體,其功能實(shí)現(xiàn)需要依靠其三個(gè)主要子模塊,即規(guī)則提取模塊、規(guī)則管理模塊與告警相關(guān)性分析模塊。在三個(gè)子模塊中規(guī)則提取模塊十分關(guān)鍵,規(guī)則獲取質(zhì)量對(duì)告警相關(guān)性分析效果有著重大影響,規(guī)則提取多是以專家知識(shí)與數(shù)據(jù)挖掘?yàn)榛A(chǔ)。規(guī)則管理模塊是保障規(guī)則庫正常運(yùn)行的關(guān)鍵,承擔(dān)著規(guī)則庫動(dòng)態(tài)管理任務(wù)。最為核心的模塊則是告警相關(guān)性分析模塊,該模塊運(yùn)行以告警信息為對(duì)象,通過規(guī)則引擎算法實(shí)現(xiàn)相關(guān)性分析與判斷,為找出告警信息源提供了具體方法。
(一)規(guī)則提取模塊功能設(shè)計(jì)與實(shí)現(xiàn)分析
基于告警相關(guān)性網(wǎng)絡(luò)故障管理系統(tǒng),進(jìn)行故障問題相關(guān)性分析與判斷都會(huì)涉及到處理邏輯問題,即面臨著業(yè)務(wù)規(guī)則相關(guān)的問題。為便于分析,以告警過濾與告警相關(guān)性分析為對(duì)象進(jìn)行分析:系統(tǒng)處理邏輯需要預(yù)先設(shè)定,并對(duì)冗余告警與重復(fù)告警進(jìn)行過濾,同時(shí)對(duì)告警的相關(guān)性執(zhí)行分析;在故障定位過程中,系統(tǒng)則需要借助一定的策略推導(dǎo)出導(dǎo)致故障問題的原因;在故障修復(fù)方面,系統(tǒng)可依照預(yù)設(shè)規(guī)則進(jìn)行系統(tǒng)調(diào)整與恢復(fù),系統(tǒng)本身能夠提供一定的具體修復(fù)策略。告警相關(guān)性分析目標(biāo)實(shí)現(xiàn)的關(guān)鍵在于獲取告警事件與事件之間的關(guān)聯(lián)規(guī)則。關(guān)聯(lián)規(guī)則獲取則需要以規(guī)則庫為基礎(chǔ),即首先應(yīng)解決規(guī)則獲取問題與規(guī)則表示問題。當(dāng)前,規(guī)則提取的方法主要包括兩種形式,其一,依照網(wǎng)管專家的知識(shí)與經(jīng)驗(yàn)獲取相關(guān)規(guī)則;其二,以數(shù)據(jù)挖掘技術(shù)為基礎(chǔ),通過挖掘提取出告警序列之中隱藏的關(guān)聯(lián)規(guī)則。在傳統(tǒng)網(wǎng)絡(luò)格局下,網(wǎng)管專家經(jīng)驗(yàn)對(duì)于網(wǎng)絡(luò)診斷至關(guān)重要,然而在面對(duì)龐大且復(fù)雜的網(wǎng)絡(luò)故障問題時(shí),僅僅依靠專家知識(shí)是不能滿足故障處理問題的現(xiàn)實(shí)要求,還需要通過數(shù)據(jù)挖掘技術(shù),通過數(shù)據(jù)挖掘找出網(wǎng)絡(luò)告警序列之中存在的關(guān)聯(lián)規(guī)則,以關(guān)聯(lián)規(guī)則為基礎(chǔ)執(zhí)行告警相關(guān)性分析。采取關(guān)聯(lián)規(guī)則的優(yōu)勢(shì)還在于不需考慮網(wǎng)絡(luò)巨頭的拓?fù)浣Y(jié)構(gòu),在其拓?fù)浣Y(jié)構(gòu)出現(xiàn)變化時(shí),可以通過告警歷史記錄進(jìn)行深入分析,從而提取告警相關(guān)性原則[6]。
在系統(tǒng)設(shè)計(jì)中,選擇Java開源關(guān)聯(lián)規(guī)則作為數(shù)據(jù)挖掘工具,同時(shí)借助專家知識(shí)與經(jīng)驗(yàn)進(jìn)行輔助判斷,以確保規(guī)則集的準(zhǔn)確性與有效性。對(duì)于規(guī)則表示問題,考慮到本研究采取Drools開源規(guī)則引擎,該規(guī)則具備規(guī)則語言,支持規(guī)則編寫與表示。Drools規(guī)則語言具備以下格式:
Rule"name"
ATTRIBUTES
When
LHS
預(yù)埋件按照預(yù)埋爬錐設(shè)計(jì)位置,在模板表面開孔,將裝配好的爬錐通過承載螺栓固定于模板上,模板就位,澆筑混凝土,模板拆除后將螺栓重新裝上。
Then
RHS
End
在所有的Drools規(guī)則中,均是以rule為開端,以end為結(jié)束。When描述的是規(guī)則條件問題,而then則描述規(guī)則動(dòng)作問題,name代表規(guī)則名。在相同文件之中,不允許存在相同名字的規(guī)則。ATTRIBUTES代表的是規(guī)則屬性,為規(guī)則運(yùn)行提供指導(dǎo),而LHS則屬于規(guī)則條件部分,屬于規(guī)則激活后執(zhí)行代碼塊。
(二)告警相關(guān)性分析引擎功能設(shè)計(jì)與實(shí)現(xiàn)分析
1.告警相關(guān)性分析方法。
作為一種新型的故障管理辦法,其主要是將若干個(gè)告警進(jìn)行關(guān)聯(lián)并作為含有更多信息量的告警,并對(duì)不相干告警與重復(fù)告警等進(jìn)行過濾,從而降低告警信息量,為準(zhǔn)確判斷故障根源提供基礎(chǔ)。在研究事件相關(guān)性問題時(shí),需要明確典型的相關(guān)性事件類型,其類型主要表現(xiàn)為四種,第一,相同事件,即來源于同一個(gè)警源的同一個(gè)故障的事件;第二,同源事件。來自于同一個(gè)警源但其故障類型不同;第三,相反事件。來源于同一個(gè)告警源,但一個(gè)告警說明存在告警,一個(gè)告警說明其故障問題已解決;第四,拓?fù)潢P(guān)系事件[7]。表示的是告警源不同且具備一定的拓?fù)潢P(guān)聯(lián)。對(duì)于不同類型事件,在告警相關(guān)性分析時(shí)需要采取不同的應(yīng)對(duì)方法,如針對(duì)相同事件,則只需要對(duì)其中一條故障信息進(jìn)行顯示即可,而對(duì)于同源事件,則需要借助規(guī)則對(duì)根源性告警進(jìn)行提取,對(duì)于相反事件,則需要關(guān)聯(lián)告警信息并將其存入到歷史告警頁面之中,針對(duì)拓?fù)潢P(guān)系事件,則需要借助規(guī)則選出根源性告警或具備根源性特征告警。
2.告警相關(guān)性分析引擎設(shè)計(jì)研究。
告警相關(guān)性引擎模塊運(yùn)行遵循以下流程:借助應(yīng)用程序進(jìn)行規(guī)則引擎調(diào)用,能夠找出相關(guān)API,通過API實(shí)現(xiàn)規(guī)則引擎對(duì)象創(chuàng)建,與此同時(shí),先后創(chuàng)建規(guī)則集對(duì)象與工作內(nèi)存對(duì)象,通過規(guī)則集對(duì)象進(jìn)行規(guī)則庫相關(guān)性分析,規(guī)則引擎能夠?qū)Ω婢瘜?shí)例與規(guī)則庫中的規(guī)則進(jìn)行匹配,通過API對(duì)引擎下達(dá)執(zhí)行指令,要求引擎運(yùn)行滿足條件的規(guī)則,并在規(guī)則范圍內(nèi)進(jìn)行告警相關(guān)性分析,并對(duì)冗余告警與重復(fù)告警等進(jìn)行刪除,合并出能夠表明告警源的告警,通過引擎卸載規(guī)則庫并加載故障定位規(guī)則庫,依據(jù)告警內(nèi)容進(jìn)行故障定位規(guī)則匹配,并獲取故障源,同時(shí)系統(tǒng)還可提供故障發(fā)生的原因分析,提供故障解決參考意見等[8]。值得注意的是,以上模塊進(jìn)行規(guī)則庫加載其與程序代碼之間是處于分離狀態(tài)的,為此,在規(guī)則出現(xiàn)變化時(shí),則需要進(jìn)行規(guī)則庫調(diào)整與維護(hù)。
3.告警相關(guān)性分析引擎實(shí)現(xiàn)分析。
Drools屬于開源規(guī)則引擎,以Java語言為基礎(chǔ),以Rete算法為核心算法,其自身能夠提供相關(guān)插件及完整程序接口,具備規(guī)則語言,在應(yīng)用程序設(shè)計(jì)上具備較大優(yōu)勢(shì)[9]。對(duì)Drools引擎實(shí)現(xiàn)方法分析,以相同事件為例,進(jìn)行告警類信息創(chuàng)建,具體實(shí)現(xiàn)方法為:
package myjava;
public class Alarm{
public string source;//告警源
public string type;//告警類型
Public int time;//告警時(shí)間
Public int count;//告警計(jì)數(shù)
public Alarm(string source,string type,inttime)}
super();
This.souree=source;
this.type=type;
this.time=time;
this.count=1;
此外,通過程序編寫,還可以實(shí)現(xiàn)規(guī)則文件、引擎對(duì)象、內(nèi)存對(duì)象等創(chuàng)建,編寫含有main函數(shù),并對(duì)函數(shù)執(zhí)行狀況進(jìn)行分析。實(shí)踐證明,通過Drools封裝Rete算法后,引擎可以進(jìn)行算法自動(dòng)調(diào)用,能夠?qū)崿F(xiàn)告警實(shí)例與規(guī)則集規(guī)則匹配,同時(shí)可通過執(zhí)行函數(shù)進(jìn)行相關(guān)性規(guī)則分析,在很大程度上降低了告警實(shí)例數(shù)量。模擬實(shí)驗(yàn)結(jié)果表明,基于告警相關(guān)性的網(wǎng)絡(luò)故障管理系統(tǒng)能夠在一定程度上降低告警數(shù)量,可以大幅降低冗余與重復(fù)報(bào)警案例,為準(zhǔn)確找出告警源提供了便利。
研究新型的網(wǎng)絡(luò)故障管理系統(tǒng)是現(xiàn)代網(wǎng)絡(luò)發(fā)展的必然訴求。在認(rèn)知規(guī)則引擎技術(shù)的基礎(chǔ)上,重點(diǎn)對(duì)基于告警相關(guān)性的網(wǎng)絡(luò)故障管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行研究。以其模塊功能實(shí)現(xiàn)為基礎(chǔ),分析了規(guī)則提取與表示、引擎功能設(shè)計(jì)等內(nèi)容。研究表明,以開源規(guī)則引擎為基礎(chǔ)構(gòu)建基于告警相關(guān)性網(wǎng)絡(luò)故障管理系統(tǒng),能夠快速找出告警源,在很大程度上消除了冗余與重復(fù)告警,為故障源定位與修復(fù)提供了重要支持,具備較好的應(yīng)用前景。
[1]宋丹茹.網(wǎng)絡(luò)故障告警與分析系統(tǒng)的研究[J].信息通信,2013(1):100.
[2]楊煜昕,肖曉強(qiáng),范輝等.一種基于告警相關(guān)性的網(wǎng)絡(luò)故障監(jiān)視算法[J].電腦知識(shí)與技術(shù),2012(7):4715-4717.
[3]李金鳳,王懷彬.基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)故障告警相關(guān)性分析[J].計(jì)算機(jī)工程,2012 (5):44-46.
[4]趙振東,黃楠,李紫涵等.SDH系統(tǒng)網(wǎng)絡(luò)故障的告警關(guān)聯(lián)分析[J].電力系統(tǒng)通信,2012 (6):63-66.
2016-4-30
王鈞玉(1979— ),女,河南周口人 ,碩士,河南省三門峽職業(yè)技術(shù)學(xué)院講師,主要研究方向:計(jì)算機(jī)。
TN711.5
A
1008-4614-(2016)04-0054-03