,,,
(中國人民解放軍63726部隊,銀川 750001)
日志是指系統(tǒng)對某些對象的某些操作和其操作結(jié)果按時間排列的有序集合[1],包含了一個時間戳和一條消息或者系統(tǒng)所特有的其他信息的半結(jié)構(gòu)化數(shù)據(jù)。每個日志文件[2]由很多的事件記錄組成,每條日志記錄存儲著一次單獨的系統(tǒng)事件,能夠?qū)崟r反應系統(tǒng)某一組成部分變化時的信息。日志文件中記錄的信息可用于監(jiān)控系統(tǒng)狀態(tài)、審計用戶操作行為和定位裝備異常部位,為解決系統(tǒng)問題提供證據(jù)。隨著裝備的復雜度逐漸增加、信息化程度不斷提高、要監(jiān)控的狀態(tài)點和參數(shù)也越來越多,在裝備使用過程中產(chǎn)生的日志信息量正以指數(shù)級增長。目前日志信息處理應用中存在以下四個方面的問題:
1)裝備在使用過程中產(chǎn)生的大量日志信息缺乏合理的管理和利用。裝備在操作使用過程中,日志文件詳細地記錄了裝備軟硬件的狀態(tài)變更信息,這些信息包含著大量的裝備狀態(tài)信息、操作信息、異常信息、參數(shù)信息和一些“詭異的”、“在特定環(huán)境下”產(chǎn)生的信息。這些日志文件種類多、數(shù)據(jù)量大、缺乏規(guī)范性、可讀性比較差、且不同的日志記錄之間存在重要的聯(lián)系。如何對這些日志信息分類存儲、管理和利用,對掌握裝備的狀態(tài)起著重要的作用。
2)裝備出現(xiàn)問題后的定位模式和依靠純?nèi)斯けO(jiān)控裝備狀態(tài)的做法逐漸不能滿足使用要求。裝備的高復雜度給操作人員使用維護帶來了巨大的工作量,需要監(jiān)控和維護的參數(shù)成量級增加,僅僅依靠人員的界面監(jiān)控已經(jīng)不能滿足此類裝備的使用要求。在裝備的使用過程中,因為裝備的復雜而存在定位問題繁瑣、浪費時間等問題。當前,分機人員開展裝備的工作模式通常都是在“出現(xiàn)問題”后,逐步排查問題。一旦裝備出現(xiàn)故障,分機人員常常需要分析大量冗長的日志來查找裝備問題,面對這些大量的日志文件,僅靠手工進行日志分析,效率非常低下,也不便于裝備問題的定位。
3)事后排查故障的處理模式逐步不能滿足日常用戶的需求,需向裝備健康預警轉(zhuǎn)變。裝備專用軟件的日志文件中記錄著裝備的每一個細節(jié)過程,包括裝備狀態(tài)信息、操作信息、異常信息和參數(shù)信息等,同時專用軟件所在的工控機操作系統(tǒng)也記錄著專用軟件運行平臺的日志信息。通過對這些日志的分析,依據(jù)事先設(shè)定的關(guān)鍵字異常閥值、構(gòu)建的系統(tǒng)指標庫,當分析結(jié)果超出預設(shè)閥值或指標范圍時,系統(tǒng)會自動告警分機人員,達到健康預警的目的。
4)裝備健康狀況評估結(jié)果對大系統(tǒng)質(zhì)量的貢獻日趨明顯。目前,大系統(tǒng)評估依靠人為因素的較多,缺乏靠裝備自身產(chǎn)生的信息來評估裝備狀態(tài)的手段。該系統(tǒng)通過對日志文件的分析挖掘,一方面將分析處理結(jié)果進行存儲作為裝備的生長履歷,另一方面將其結(jié)果結(jié)合云重心評估法[3],對裝備健康狀況進行評估,提供詳盡的裝備健康狀況報告,給系統(tǒng)評估提供參考依據(jù)。
為有效解決上述日志處理方面的問題,本文設(shè)計和開發(fā)了基于日志挖掘的裝備健康管理系統(tǒng)。該系統(tǒng)有助于設(shè)備操作人員和總體人員及時分析裝備日志,定位裝備故障,找出裝備的運行規(guī)律,實現(xiàn)裝備的預防性維修和動態(tài)質(zhì)量控制,達到裝備健康預警的目的,對掌握裝備的瞬時狀態(tài)有著重要的意義。
裝備日志文件作為系統(tǒng)的輸入,分布于裝備不同分系統(tǒng)所在的工控機上,在進行數(shù)據(jù)預處理前,需建立系統(tǒng)內(nèi)部各分系統(tǒng)之間的網(wǎng)絡(luò)通信機制,實現(xiàn)日志文件的網(wǎng)絡(luò)下載或?qū)崟r讀取,為開展后續(xù)的日志統(tǒng)計分析工作做好準備。其主要功能包括:
1)能夠自由配置待分析日志文件所在的機器名路徑、文件名路徑。根據(jù)不同的日志類型,構(gòu)建適用于日志解析的正則表達式。
2)運用正則表達式解析非結(jié)構(gòu)化日志文件,對解析結(jié)果進行清洗、規(guī)范化處理和存入數(shù)據(jù)庫。
3)應用數(shù)據(jù)挖掘的分類、關(guān)聯(lián)分析等方法,歸納用戶操作與異常之間的關(guān)系,找出故障參數(shù)或狀態(tài)與分系統(tǒng)等之間的關(guān)系。
4)通過對入庫日志的統(tǒng)計分析,找出異常高發(fā)的裝備軟件模塊或硬件部件,同時,能夠準確定位異常發(fā)生的時間和異常所記錄的日志文件。
5)根據(jù)設(shè)定預警的異常閥值,實現(xiàn)對裝備健康狀況的監(jiān)控。
6)根據(jù)裝備指標要求構(gòu)建指標庫和評價指標體系,運用云重心評估法,為裝備提供健康狀況評估報告。
7)根據(jù)數(shù)據(jù)庫中的數(shù)據(jù)和配置信息生成相應的報表,實現(xiàn)裝備履歷日志的自動電子化、實現(xiàn)質(zhì)量控制文檔過程的自動電子化,提供直觀的結(jié)果顯示方式。
8)根據(jù)系統(tǒng)配置定時生成各種報表,發(fā)送給指定的用戶或存在于本地文件系統(tǒng)中。提供強大的報表查詢功能,用戶可以通過時間段、異常代碼等多種條件進行查詢,并生成直觀的報表。
系統(tǒng)的非功能性需求要求系統(tǒng)能夠支持不同種類裝備產(chǎn)生的日志文件,適應每天產(chǎn)生的大量日志,保證在通過查詢條件定位異常信息時,做到高效迅速。系統(tǒng)的總體流程如圖1所示。
圖1 總體流程圖
系統(tǒng)的工作流程主要分為:日志預處理、日志分析、統(tǒng)計查詢、裝備健康狀況評估和健康預警。根據(jù)系統(tǒng)的總體流程,下面分別給出不同模塊的設(shè)計與實現(xiàn):
1)日志預處理:接收裝備的日志文件,針對不同的日志文件,選用不同的正則表達式適配器,讀取日志文件,按照配置文件和適配器對原始日志進行解析和過濾,通過分類算法進行統(tǒng)計前的清洗處理,提煉出有用信息,將無關(guān)的噪聲信息去掉[4]。其流程如圖2所示。
圖2 日志預處理流程圖
2)日志統(tǒng)計分析:負責對清洗后的日志文件進行再次分類過濾,合并聚類統(tǒng)計[5],將生成的分析統(tǒng)計結(jié)果記錄到數(shù)據(jù)庫中。
3)分析結(jié)果展現(xiàn):按照查詢條件對日志的統(tǒng)計結(jié)果進行查詢,將返回的統(tǒng)計數(shù)據(jù)按照報表文件的要求生成相應的報表,以人性化的UI展現(xiàn)給用戶,同時,積累的日志分析數(shù)據(jù)直觀的反應了裝備生長健康狀況。
4)裝備健康狀況評估:為了適應視情維修[6],改變早期的“事后維修”和“定期維修”體制。構(gòu)建裝備健康評估指標體系和評估方法模型,把日志中記錄的裝備工作狀態(tài)、產(chǎn)生的各種反應裝備狀況的數(shù)據(jù)和各種統(tǒng)計分析結(jié)果作為輸入帶入評估模型,一方面對裝備的健康狀況給出評估,另一方面,診斷和預測裝備未來可能發(fā)生的故障,判斷其健康狀態(tài)的好壞,得出其發(fā)展規(guī)律,從而制定合理的裝備維修計劃,提高裝備運行的可靠性、安全性和有效性。其流程如圖3所示。
圖3 裝備健康狀況評估流程圖
5)健康預警:依據(jù)裝備的參數(shù)指標范圍、預置的關(guān)鍵字和預設(shè)的預警閥值,通過自動或手動的方式,自動判斷記錄的裝備狀態(tài)是否存在異常、分析的結(jié)果中是否有超出指標范圍,是否有與預置的關(guān)鍵字匹配的異常、是否有達到預警閥值的異常,從而判斷裝備的工作狀態(tài)是否良好。如果發(fā)現(xiàn)故障和異常信息及時向用戶進行健康預警,告知用戶裝備異常的發(fā)生時刻和對應的裝備部件,方便用戶及時掌握裝備狀態(tài)和故障部位,并自動產(chǎn)生異常告警報表。
為了滿足系統(tǒng)對解析、清洗、規(guī)范化等數(shù)據(jù)存儲的要求,設(shè)計了15個物理結(jié)構(gòu)表來滿足數(shù)據(jù)庫要求,它們分別是用戶表(t_user)、裝備類型表(t_equipType)、適配器表(t_adapter)、指標庫表(t_standardValues)、裝備表(t_equip)、分系統(tǒng)表(t_subSystem)、部件表(t_component)、狀態(tài)參數(shù)表(t_parameter)、日志文件表(t_logFile)、日志表(t_log)、日志類型表(t_logType)、任務項目表(t_tasks)、日志等級表(t_logLevel)、健康等級表(t_healthLevel)、健康評估標準表(t_evalutionStandard)。結(jié)合mysql語言的特性,運用MySQL Workbench建模軟件,構(gòu)建了如圖4所示的數(shù)據(jù)庫邏輯結(jié)構(gòu)和E-R關(guān)系圖。
圖4 系統(tǒng)E-R圖及邏輯結(jié)構(gòu)設(shè)計
該系統(tǒng)采用C#作為開發(fā)軟件,MySQL數(shù)據(jù)庫作為數(shù)據(jù)管理軟件。在實現(xiàn)的過程中,應用下列關(guān)鍵算法解決開發(fā)過程中遇到的關(guān)鍵問題。
1)利用正則表達式[7]解析原始日志,提高程序的靈活性和可配置性。
正則表達式是一種用于模式匹配和替換的強有力工具,在詞法分析程序中大量使用,使用正則表達式可以大大簡化字符串操作代碼的編寫。由于不同種類裝備產(chǎn)生的日志文件格式不統(tǒng)一,同一裝備的不同分系統(tǒng)日志格式也不統(tǒng)一,因此可以根據(jù)不同的日志需求設(shè)計不同的正則表達式來對日志進行分析。該系統(tǒng)采用正則表達式,目的是為了提高程序的靈活性、可配置性和自適應性。系統(tǒng)在使用過程中,可根據(jù)要解析日志的需求,從預存入數(shù)據(jù)庫中的適配器表中讀出正則表達式,然后對輸入的日志根據(jù)該正則表達式進行解析,當有日志格式發(fā)生改變時,可以制定專用的正則表達式,使系統(tǒng)適應新的日志文件格式。
2)使用數(shù)據(jù)挖掘中的簡單關(guān)聯(lián)規(guī)則及序列關(guān)聯(lián)規(guī)則,深入分析裝備發(fā)生故障的序列規(guī)則和故障部位之間的關(guān)聯(lián)關(guān)系。
使用關(guān)聯(lián)規(guī)則從日志中發(fā)現(xiàn)彼此相關(guān)的事件。例如:如果裝備的某個部件指示異常,可以從日志文件中搜索相關(guān)信息,來尋找任何與該異常事件相關(guān)的記錄,這樣可以對發(fā)生的異常事件進行綜合分析。在進行關(guān)聯(lián)規(guī)則分析過程中,最常用的就是Agrawal等人提出的Apriori算法[8],過程包括兩部分,首先是產(chǎn)生頻繁項集,隨后依據(jù)頻繁項集產(chǎn)生關(guān)聯(lián)規(guī)則。通過關(guān)聯(lián)規(guī)則的挖掘,發(fā)現(xiàn)裝備操作手的一些操作習慣,找出裝備異常部位的關(guān)聯(lián)關(guān)系,提高定位裝備故障準確度。
3)結(jié)合云重心評估法[9],構(gòu)建裝備健康狀態(tài)評估模型[10],采用加權(quán)偏離度來衡量裝備的健康狀態(tài),實現(xiàn)裝備健康狀況的自動評估。
實際運行中的裝備狀態(tài)具有隨機性,日志數(shù)據(jù)也有不確定性,日志的來源涵蓋設(shè)備硬件、軟件和運行的操作系統(tǒng)等方面,裝備健康管理需要在它們之間建立映射和轉(zhuǎn)換關(guān)系,通過確定健康等級評價集、建立評估對象的指標體系、確定各指標的權(quán)重、求各指標的云模型、用加權(quán)偏離度來衡量云重心的改變等步驟來形成定量可比的評價意見。云重心評估法能夠?qū)崿F(xiàn)定性屬性值和定量屬性值之間的轉(zhuǎn)換,能夠按照評估模型的要求評估裝備的健康狀況,故將此方法應用于該系統(tǒng)的裝備健康狀態(tài)評估之中,采用加權(quán)偏離度來衡量裝備的健康狀況,實現(xiàn)裝備健康狀況的自動評估,完成了裝備健康狀況的定量衡量。
首先結(jié)合實際日志文件構(gòu)建了正則表達式,實現(xiàn)了對日志信息的提取分析、快速精確查找以及匹配替換。
3.1.1 構(gòu)建正則表達式
采用某型設(shè)備在某次工作過程中產(chǎn)生的“狀態(tài)日志”文件來設(shè)計正則表達式,原始日志的格式如圖5所示。
2017-07-0107:29:30FMBandAInputPower:**dbm2017-07-0107:29:30ExtendedBandB:NotCaptured2017-07-0107:29:30CentralModule:Error2017-07-0107:29:30CentralCasePowerSupply:Normal2017-07-0107:30:35.4730ResultReceiveOrder:SetPri-mary&SecondarySystem:AasPrimary,BasSecondary2017-07-0110:01:30CentralComponentD13:Normal2017-07-0110:01:39XXWAmplifierOutput:Forbidden2017-07-0110:03:15Transducer:BrokenChain……
圖5 某型設(shè)備分系統(tǒng)A狀態(tài)日志片段
分析日志信息可知,該文件包含了不同分系統(tǒng)、不同部件的多種信息,在構(gòu)建正則表達式時,應分別進行檢索和提取[11-12]。
針對圖5所示的分系統(tǒng)A,構(gòu)建了兩種正則表達式分別用來提取設(shè)備故障狀態(tài)和參數(shù)數(shù)據(jù):
1)以“Broken Chain|Error|Forbidden”為關(guān)鍵字,從“狀態(tài)日志”中提取不同分系統(tǒng)工作狀態(tài)為異常的正則表達
式為:
w*[Broken Chain|Error|Forbidden];
2)從日志文件中提取不同分系統(tǒng)和不同部件設(shè)備參數(shù)數(shù)據(jù)的正則表達式為:
^[' ](d+[-]d+[-]d+)s(d+[:]d+[:]d+)s(w+)s*(w+[/]*w+)|(w+[/]*w+)s(w*[-]*w*[\.]*w*[\+]*w*[/]*w+)s+;
3.1.2 運用正則表達式處理日志文件。
隨機選取一次裝備運行事件,采用本文方法為設(shè)備分系統(tǒng)A “狀態(tài)日志”構(gòu)建正則表達式“w*[ Broken Chain|Error|Forbidden]”,根據(jù)該表達式進行設(shè)備異常提取,結(jié)果如下:
2017-07-01 07:29:30 Central Module: Error
2017-07-01 10:01:39 XXW Amplifier Output: Forbidden
2017-07-01 10:03:15 Transducer: Broken Chain
……
選擇9次設(shè)備運行事件,統(tǒng)計日志中的所有故障事件并編號如下:
I1: FM Band A Input Power: Invalid
I2: Extended Band C: Not Captured
I3: XXW Amplifier Output: Forbidden
I4: Secondary Module: Error
I5: Central Case Power Supply: Anomaly
令設(shè)備故障集合Ω={I1,I2, ……,Im},基于Apriori原理挖掘Ω的所有可能組合及其產(chǎn)生的頻繁項集。首先對該實例中所有故障事件建立數(shù)據(jù)庫,見表1。
表1 設(shè)備日志中的故障事件
首先定義最小支持度閾值min_support=20%,最小置信度閾值min_confidence=60%。為找到頻繁K項集, 對該數(shù)據(jù)庫進行逐層迭代搜索,通過第1次搜索找到頻繁1項集并記為L1,第2次搜索找到頻繁2項集L2……每找出每個Lk就進行了一次數(shù)據(jù)庫的完整掃描,最終找到頻繁3項集為{I1, I2, I3}和{ I1, I2, I5},挖掘其所有非空子集的關(guān)聯(lián)規(guī)則,如表2所示。
表2 故障關(guān)聯(lián)分析
其中滿足min_support的關(guān)聯(lián)規(guī)則為{I1, I5}?I2, {I2, I5}?I1和I5?{I1,I2}。在本裝備健康管理系統(tǒng)中,健康預警評估界面如圖6、7所示。
圖6 健康預警界面
圖7 健康評估界面
本文將數(shù)據(jù)挖掘的相關(guān)理論運用于裝備的日志分析,設(shè)計實現(xiàn)了一個裝備健康管理系統(tǒng),該系統(tǒng)已在某型測控裝備中得到應用。從實際應用情況來看,該系統(tǒng)能夠加快裝備日志自動化處理速度,提高分析結(jié)果的準確率和裝備異常模塊定位的準確性,提升整套裝備的可維護性,實現(xiàn)了裝備健康狀態(tài)的自動評估和健康預警、裝備履歷日志的自動電子化和質(zhì)量控制文檔過程的電子化。
參考文獻:
[1] 沈金明.基于系統(tǒng)日志的計算機網(wǎng)絡(luò)用戶行為取證分析系統(tǒng)的研究與實現(xiàn)[D].南京:東南大學,2006.
[2] 張如云.基于日志文件的數(shù)據(jù)挖掘機理分析和研究[J].微型機與應用,2015,34(18).
[3] 路廣勛,李建增,李鵬俊.基于云重心評估法的發(fā)射場液壓泵的健康狀態(tài)評估[J].計算機測量與控制,2014,22(3):0800-0802.
[4] 李烈彪,張海鵬,周亞峰.Web日志挖掘中數(shù)據(jù)預處理方法的研究[J].計算機技術(shù)與發(fā)展,2007(7).
[5] 王永貴,林 琳,劉憲國.結(jié)合雙粒子群和K-means的混合文本聚類算法[J].計算機應用研究,2014,31(2).
[6] 尚永爽,許愛強,李文海.航空裝備視情維修的動態(tài)性研究[J].裝備指揮技術(shù)學院學報,2010,21(6).
[7] 王 成,楊建華,蔣光偉.正則表達式在測量數(shù)據(jù)處理中的應用[J].測繪科學,2011,26(2).
[8] 陳志飛,馮 鈞.一種基于Apriori算法的優(yōu)化挖掘算法[J].計算機與現(xiàn)代化,2016,235(9).
[9] 齊偉偉,夏良華,李 敏,等.基于云重心評估法的裝備健康狀態(tài)評估[J].火力與指揮控制,2012,37(4).
[10] 鐘詩勝,譚治學.雷達發(fā)射機健康狀態(tài)評價技術(shù)研究[J].現(xiàn)代雷達,2014,36(6).
[11] 李 璋,杜慧敏,張麗果. 基于分布式存儲的正則表達式匹配算法設(shè)計與實現(xiàn)[J].計算機科學,2013,40(3):74-76,99.
[12] 邵 英,陸月明. 基于優(yōu)化正則表達式的文本告警信息的提取與分析[J].微型電腦應用,2010(26).