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