(國家電網(wǎng)公司信息通信分公司,北京 100761)
基于決策樹的企業(yè)信息系統(tǒng)故障自動診斷分析方法
金鑫,閆龍川,劉軍,張書林
(國家電網(wǎng)公司信息通信分公司,北京 100761)
目前,大型企業(yè)信息系統(tǒng)規(guī)模和復(fù)雜度快速增長,但對故障的診斷分析仍主要依賴傳統(tǒng)的人工經(jīng)驗,這不僅耗時、耗力,還影響對故障的及時處理。針對這一問題,創(chuàng)新性地提出了基于決策樹的企業(yè)信息系統(tǒng)故障自動診斷分析方法,根據(jù)信息系統(tǒng)運行監(jiān)控指標告警信息,實現(xiàn)對信息系統(tǒng)故障的自動診斷。利用某大型國有企業(yè)的實際生產(chǎn)運行數(shù)據(jù),提取典型告警數(shù)據(jù)特征對該方法進行了驗證,并在R語言環(huán)境下對決策樹模型及其訓(xùn)練方法進行了仿真和對比分析。實驗結(jié)果證明,該方法可以較為準確地實現(xiàn)故障自動快速診斷,有助于提高信息系統(tǒng)故障診斷分析效率。
自動診斷分析;信息系統(tǒng)故障;決策樹;R語言
隨著企業(yè)信息系統(tǒng)規(guī)模的日益龐大、集成程度的不斷提高、技術(shù)架構(gòu)的日益復(fù)雜、與企業(yè)經(jīng)營管理和安全生產(chǎn)的緊密結(jié)合、應(yīng)用頻度的大幅增加,故障影響的范圍廣、涉及的用戶多、帶來的損失大,且信息系統(tǒng)各組件存在耦合關(guān)系,使故障具有傳導(dǎo)特性,當一個組件或某項指標出現(xiàn)故障時,通常會引起其他組件或指標聯(lián)動異常,導(dǎo)致信息系統(tǒng)故障點難于定位排查。在企業(yè)信息系統(tǒng)故障處置過程中,如何在復(fù)雜的各類監(jiān)控告警和異?,F(xiàn)象中,快速準確定位出故障點,實現(xiàn)信息系統(tǒng)故障快速處置和業(yè)務(wù)及時恢復(fù),是所有大型企業(yè)需要迫切解決的問題。傳統(tǒng)的信息系統(tǒng)故障分析處置主要依靠人工完成,處理時效和準確率受限于工程師的個人能力、經(jīng)驗、水平,差異較大、分布不均、效率低下,難以適應(yīng)大部分復(fù)雜企業(yè)信息系統(tǒng)的實際情況。
決策樹算法是一種通過對數(shù)據(jù)進行處理、利用歸納算法生成可讀的規(guī)則和決策樹,然后使用決策樹對新數(shù)據(jù)進行分析的典型分類方法,因其具有分類精度高、生成模式簡單、抗噪聲數(shù)據(jù)等優(yōu)點,在數(shù)據(jù)挖掘中受到廣泛關(guān)注,在網(wǎng)絡(luò)設(shè)備、電網(wǎng)、光纖通信網(wǎng)等故障診斷中具有廣泛的研究與應(yīng)用。參考文獻[1]設(shè)計了基于決策樹的網(wǎng)絡(luò)故障專家系統(tǒng)模型,參考文獻[2]提出了基于決策樹的變電站故障診斷知識的獲取與表示,參考文獻[3]設(shè)計了一種基于優(yōu)化的決策樹數(shù)據(jù)挖掘算法的光纖網(wǎng)絡(luò)通信故障檢測系統(tǒng),參考文獻[4]提出了采用故障診斷樹設(shè)計ASON故障診斷系統(tǒng)推理機的方案。
本文將決策樹算法理論與企業(yè)信息系統(tǒng)故障數(shù)據(jù)相結(jié)合,提出基于決策樹的企業(yè)信息系統(tǒng)故障的自動診斷分析方法,以期發(fā)掘出信息系統(tǒng)指標間的關(guān)聯(lián)規(guī)則,實現(xiàn)根據(jù)信息系統(tǒng)告警綜合信息快速定位故障點,提高信息系統(tǒng)故障的處置效率。利用某大型國有企業(yè)實際生產(chǎn)運行中產(chǎn)生的信息系統(tǒng)故障及告警數(shù)據(jù),提取典型告警特征和故障分類特征,采用決策樹生成算法,在R語言環(huán)境下搭建仿真實驗平臺,驗證該方法的實現(xiàn)效果和應(yīng)用價值。
實際生產(chǎn)中,企業(yè)級大型信息系統(tǒng)需應(yīng)對高并發(fā)訪問、海量數(shù)據(jù)處理、高可靠性運行等一系列問題,還需實現(xiàn)高性能、高可用性、易伸縮、可擴展、安全等各種技術(shù)架構(gòu)目標[5]。信息系統(tǒng)一般包括應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器、緩存服務(wù)器、負載均衡、集群、存儲服務(wù)器、文件系統(tǒng)服務(wù)器、搜索引擎服務(wù)器等部分,典型信息系統(tǒng)架構(gòu)如圖1所示。
為便于對信息系統(tǒng)運行指標的研究、選取和對信息系統(tǒng)架構(gòu)的分析,大型信息系統(tǒng)切分通常有兩種方式:分層和分割。分層方式是將信息系統(tǒng)在橫向維度切分,通過上層對下層的依賴和調(diào)用組成完整的系統(tǒng),有利于信息系統(tǒng)分開層次界面、清晰邏輯結(jié)構(gòu);分割方式是將信息系統(tǒng)在縱向方面切分,將不同功能和服務(wù)分割開,包裝成高內(nèi)聚、低耦合模塊,有利于不同模塊的分布式部署。本文立足于通用信息系統(tǒng)的故障自動診斷分析方法,盡量弱化不同信息系統(tǒng)間的差異,且考慮到信息系統(tǒng)故障時產(chǎn)生的逐級傳導(dǎo)效應(yīng),故采用分層方式對典型信息系統(tǒng)結(jié)構(gòu)進行簡化處理。如上,可將信息系統(tǒng)分為業(yè)務(wù)層、應(yīng)用服務(wù)層、數(shù)據(jù)層3個層次,典型信息系統(tǒng)分層的架構(gòu)如圖2所示。
圖1 典型信息系統(tǒng)架構(gòu)
圖2 典型信息系統(tǒng)分層的架構(gòu)
通過對信息系統(tǒng)各層次進行細化,分析各層的主要構(gòu)成組件和運行指標,并對生產(chǎn)運行中信息系統(tǒng)故障產(chǎn)生的主要告警數(shù)據(jù)以及定位到的信息系統(tǒng)故障點數(shù)據(jù)進行歸納,具體見表1。本文將從表1中擇優(yōu)選取運行指標和故障點類型。
表1 信息系統(tǒng)各分層的運行指標及故障點
機器學(xué)習(xí)中,決策樹是一個預(yù)測模型,是一種依托于分類、訓(xùn)練的預(yù)測樹,并能根據(jù)已知進行預(yù)測和歸類。決策樹算法具有規(guī)則清晰、便于理解的特點。經(jīng)典的決策樹算法有ID3(iterative dichotomiser 3,迭代二叉樹 3代)算法、C4.5算法和 CART(classification and regression tree,分類回歸樹)算法。
ID3算法的核心思想是自頂向下地貪婪搜索遍歷可能的決策樹空間構(gòu)造決策樹,以信息增益度量屬性選擇,選擇分裂后信息增益最大的屬性進行分裂,即遞歸地選擇分類能力最強的特征對數(shù)據(jù)進行分割。
一個屬性的信息增益就是由于使用這個屬性分割樣例而導(dǎo)致的期望熵降低,一個屬性A相對樣例集合S的信息增益Gain(S,A)=集合S的經(jīng)驗熵-屬性A給定情況下S的經(jīng)驗條件熵,計算式可表示為:
其中,V(A)是屬性 A所有可能值的集合,S是樣本集合,SV是集合S中屬性A的值為V的子集,即Gain(S,A)是由于給定屬性A的值而得到的關(guān)于目標函數(shù)值的信息。
ID3算法的目的在于減少樹的深度,但是忽略了葉子數(shù)目的研究,C4.5算法是對ID3算法的改進,在預(yù)測變量的缺值處理、剪枝技術(shù)、派生規(guī)則等方面做了較大改進。C4.5算法采用增益比率(GainRatio)進行屬性選擇,增益比率度量是用增益度量 Gain(S,A)和分裂信息度量SplitInformation(S,A)來共同定義的,可表示為:
其中,分裂信息度量被定義為(分裂信息用來衡量屬性分裂數(shù)據(jù)的廣度和均勻性):
其中,S1到Sc是c個值的屬性A分割集合S形成的c個樣例子集,分裂信息實際上就是集合S關(guān)于屬性A的各值的熵。
還可以使用CART算法生成決策樹,CART算法采用一種二分遞歸分割技術(shù),將當前的樣本集分成兩個子樣本集,使得生成的每個非葉子節(jié)點都有兩個分支,生成的決策樹是二叉樹。CART算法將每個屬性的所有劃分按照能減少的雜質(zhì)量進行排序,雜質(zhì)減少被定義為劃分前的雜質(zhì)量減去劃分后每個節(jié)點的雜質(zhì)量再乘以劃分所占樣本比率之和,使用雜質(zhì)度量方法(基尼指數(shù) Gini)選擇最優(yōu)特征,一個節(jié)點B的Gini不純度定義為:
其中,k是類,c是類別集中因變量數(shù)目,pk是觀測點中屬于k類的概率。
決策樹算法構(gòu)造決策樹來發(fā)現(xiàn)數(shù)據(jù)中隱藏的分類規(guī)則,決策樹構(gòu)造的輸入是一組帶有類別標記的例子,構(gòu)造的結(jié)果是一棵二叉樹或多叉樹,構(gòu)造精度高、規(guī)模小的決策樹是決策樹算法的核心內(nèi)容。決策樹構(gòu)造可以分兩步進行:決策樹的生成和決策樹的剪枝。本文研究使用C4.5算法和CART算法。
本文收集某大型國有企業(yè)實際生產(chǎn)運行中關(guān)于應(yīng)用系統(tǒng)或數(shù)據(jù)庫方面的信息系統(tǒng)故障分析報告,從中采集故障告警數(shù)據(jù)及故障點,對數(shù)據(jù)進行梳理、清洗,選取典型的信息系統(tǒng)故障運行指標告警特征和故障點特征,分別采用C4.5算法和CART算法生成決策樹,使用R語言程序包進行仿真實驗,利用70%的故障數(shù)據(jù)完成了對決策樹的訓(xùn)練,利用30%的故障數(shù)據(jù)完成了故障自動診斷的測試。
經(jīng)研究,選取的故障運行指標告警共18項,包括:在線用戶數(shù)和健康運行時長指標中斷告警、頁面探測異常告警、系統(tǒng)無法正常使用告警、應(yīng)用節(jié)點日志告警、線程超時或阻塞告警、業(yè)務(wù)量大告警、應(yīng)用服務(wù)內(nèi)存告警、應(yīng)用服務(wù)CPU告警、應(yīng)用無法連接數(shù)據(jù)庫告警、數(shù)據(jù)庫ping不通告警、數(shù)據(jù)響應(yīng)慢告警、數(shù)據(jù)負載高告警、數(shù)據(jù)庫內(nèi)存告警、數(shù)據(jù)庫監(jiān)聽服務(wù)告警、數(shù)據(jù)庫歸檔空間告警、數(shù)據(jù)庫密碼不可用告警、數(shù)據(jù)庫SQL語句效率告警;選取的信息系統(tǒng)故障點數(shù)據(jù)共12項,包括:數(shù)據(jù)庫歸檔空間問題、數(shù)據(jù)庫監(jiān)聽服務(wù)異常問題、數(shù)據(jù)庫密碼失效問題、數(shù)據(jù)庫響應(yīng)問題、數(shù)據(jù)庫SQL語句不合理問題、數(shù)據(jù)庫服務(wù)器內(nèi)存問題、中間件無法連接問題、中間件內(nèi)存問題、應(yīng)用服務(wù)線程問題、應(yīng)用服務(wù)業(yè)務(wù)量大問題、應(yīng)用服務(wù)器內(nèi)存問題、應(yīng)用服務(wù)器CPU問題。
采用R語言環(huán)境下的rpart分組實現(xiàn),利用sample對數(shù)據(jù)源進行抽樣分割,形成訓(xùn)練集數(shù)據(jù)和測試集數(shù)據(jù),利用rpart.control設(shè)置生成樹的交叉驗證折數(shù)、生成樹的深度、最小分支節(jié)點數(shù)、復(fù)雜度等生成樹參數(shù),利用rpart進行因變量和自變量的特征選取、算法選取以及生成樹生成,利用prune對生成樹進行剪枝修正,利用 rpart.plot描繪生成樹,利用 predict進行預(yù)測,利用 sum、table等公式計算預(yù)測正確率。利用C4.5算法和CART算法生成的決策樹分別如圖3和圖4所示。
圖3 C4.5算法生成的決策樹
圖4 CART算法生成的決策樹
由圖3可知,C4.5算法生成的決策樹規(guī)則認為,在所有輸入告警中,分類效果最好的告警依次是:數(shù)據(jù)庫SQL語句告警、數(shù)據(jù)庫響應(yīng)慢告警、在線用戶數(shù)和健康運行時長指標中斷告警。在故障自動診斷過程中,當用戶將信息系統(tǒng)各類告警信息輸入后,決策樹將依據(jù)生成規(guī)則,給出故障點預(yù)測結(jié)果。
由圖4可知,CART算法生成的決策樹規(guī)則認為,在所有輸入告警中,分類效果最好的告警依次是:數(shù)據(jù)庫SQL語句告警、數(shù)據(jù)庫服務(wù)器內(nèi)存告警情況、應(yīng)用服務(wù)業(yè)務(wù)使用量情況、數(shù)據(jù)庫監(jiān)聽服務(wù)運行情況。在故障自動診斷過程中,當用戶將信息系統(tǒng)告警輸入后,決策樹將依據(jù)生成規(guī)則,給出故障點預(yù)測結(jié)果。
對兩種算法的預(yù)測正確率進行對比,對比結(jié)果見表2。由表2可知,兩種算法的預(yù)測正確率隨復(fù)雜度cp存在相同的變化規(guī)律,即cp越低,預(yù)測正確率越高。在cp=0.001的場景下,C4.5算法的預(yù)測正確率相較CRAT算法略高,更宜于應(yīng)用。
表2 不同算法的訓(xùn)練數(shù)據(jù)預(yù)測正確率對比
此外,數(shù)據(jù)源質(zhì)量和數(shù)量對預(yù)測正確率影響很大,準確可靠、豐富全面的數(shù)據(jù)源對于訓(xùn)練出符合規(guī)則的、正確的、智慧的決策樹至關(guān)重要,正確的決策樹才能做出合理的預(yù)測,給出故障點診斷結(jié)果。
本文創(chuàng)新性地將決策樹算法引入信息系統(tǒng)故障自動診斷,能夠?qū)崿F(xiàn)良好的故障自動診斷分析效果。實驗證明,基于該方法可以實現(xiàn)根據(jù)信息系統(tǒng)運行指標告警數(shù)據(jù)進行故障自動診斷分析,還可以在便攜式計算設(shè)備上實現(xiàn)秒級決策,有效節(jié)約人力成本,大幅縮減故障定位時間,對信息調(diào)度監(jiān)控故障處置輔助診斷和決策具有廣闊的應(yīng)用前景。
在后續(xù)的工作中,將繼續(xù)提升信息系統(tǒng)故障告警數(shù)據(jù)的數(shù)量和質(zhì)量,優(yōu)化告警特征選擇和決策樹算法,提高信息系統(tǒng)故障自動診斷的準確性。并引入故障歷史處置操作數(shù)據(jù),研究故障處置操作自動推薦算法,實現(xiàn)企業(yè)信息系統(tǒng)故障診斷分析與處置的一體化處理,推進此方法在企業(yè)信息系統(tǒng)故障處置中的實用化水平和自動化程度。
[1] 曲朝陽,高宇峰,聶欣.基于決策樹的網(wǎng)絡(luò)故障診斷專家系統(tǒng)模型[J].計算機工程,2008,34(22):215-217. QU Z Y,GAO Y F,NIE X.Network fault diagnosis expert system model based on decision tree[J].Computer Engineering,2008, 34(22):215-217.
[2]白建社,樊波,黃文華,等.基于決策樹的變電站故障診斷知識表示與獲取[J].電力系統(tǒng)及其自動化學(xué)報,2004,16(2):5-8. BAIJS,FAN B,HUANG W H,etal.Knowledge representation and acquisition based on decision tree for substation faultdiagnosis[J]. Proceedings of the EPSA,2004,16(2):5-8.
[3] 黃勇,胡連城,劉增良.基于決策樹算法的工業(yè)光纖網(wǎng)絡(luò)通信故障檢測系統(tǒng)[J].現(xiàn)代電子技術(shù),2014(20):134-136. HUANGY,HUL C,LIUZ L.Industrial fibernetwork communication fault detection system based on decision tree algorithm[J].Modern Electronics Technique,2014(20):134-136.
[4]車雅良,林初善,潘青,等.ASON網(wǎng)絡(luò)故障診斷系統(tǒng)推理機的設(shè)計與研究[J].廣東通信技術(shù),2015,35(3):64-67. CHE Y L,LIN C S,PAN Q,et al.Design and research of ASON network fault diagnosis system inference engine[J].Guangdong Communication Technology,2015,35(3):64-67.
[5] 李智慧.大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析[M].北京:電子工業(yè)出版社,2013. LI Z H.Large website technology architecture:core principles and case studies[M].Beijing:Publishing House of Electronics Industry,2013.
Enterprise information system autom atic fault diagnosis and analysis method based on decision tree
JIN Xin,YAN Longchuan,LIU Jun,ZHANG Shulin
State Grid Information&Telecommunication Branch,Beijing 100761,China
With the rapid growth of the scale and complexity of enterprise information systems,traditional fault diagnosis and analysis methods relying on human experiences and manual operations cost more and more labor and time.To solve this problem,an automatic algorithm was proposed.The algorithm exploits information from system operation monitoring indicators and alarm data,based on decision tree,to automatically diagnose and analyze faults of enterprise information systems.The algorithm was verified,and the decision tree model and training method was simulated and analyzed comparatively under R language environment,using alarm data extracted from real operation data of a typical large-scale enterprise system.The experiment results show that this algorithm is able to achieve fast automatic fault diagnosis accurately,and is much helpful on improving efficiencies of information system fault processing.
automatic diagnosis analysis,fault of information system,decision tree,R language
TP319
:A
10.11959/j.issn.1000-0801.2017058
金鑫(1985-),女,國家電網(wǎng)公司信息通信分公司工程師,主要從事信息運維工作。
閆龍川(1979-),男,國家電網(wǎng)公司信息通信分公司高級工程師,主要從事信息運維工作。
劉軍(1970-),男,國家電網(wǎng)公司信息通信分公司高級工程師,主要從事信息通信運維及管理工作。
張書林(1968-),男,國家電網(wǎng)公司信息通信分公司工程師,主要從事信息通信運維及管理工作。
2016-10-20;
2017-02-24