一種基于日志分析的故障定位方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種基于日志分析的故障定位方法,包括:讀取待檢測設(shè)備的跟蹤日志、通信日志和調(diào)度日志;分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù);將提取出的具有相同時間的字段數(shù)據(jù)合并為日志數(shù)據(jù)鏈表;對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置。相應(yīng)的,本發(fā)明還公開了一種基于日志分析的故障定位裝置。采用本發(fā)明實施例,能夠有效提高故障定位的效率。
【專利說明】
一種基于日志分析的故障定位方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種基于日志分析的故障定位方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的硬件設(shè)備,如ATM設(shè)備,在產(chǎn)品使用維護過程中的處理方法是外派人員到硬件設(shè)備所在地進行人為參與問題排查工作,或者在現(xiàn)場手動地將硬件設(shè)備的日志文件發(fā)回公司,供開發(fā)人員進行分析。但是,由于現(xiàn)場設(shè)備所產(chǎn)生的日志數(shù)據(jù)量較大,在分析日志數(shù)據(jù)過程中需要消耗不少時間來定位出設(shè)備故障的問題所在,從而大大降低產(chǎn)品維護的處理效率,降低客戶對故障處理的滿意度。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例提出一種基于日志分析的故障定位方法及裝置,能夠有效提高故障定位的效率。
[0004]本發(fā)明實施例提供一種基于日志分析的故障定位方法,包括:
[0005]讀取待檢測設(shè)備的跟蹤日志、通信日志和調(diào)度日志;
[0006]分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù);
[0007]將提取出的具有相同時間的字段數(shù)據(jù)合并為日志數(shù)據(jù)鏈表;
[0008]對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置。
[0009]進一步地,所述分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù),具體包括:
[0010]對所述跟蹤日志、所述通信日志和所述調(diào)度日志進行關(guān)鍵字匹配;
[0011 ] 在所述跟蹤日志、所述通信日志和所述調(diào)度日志均匹配成功時,分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出與所述關(guān)鍵字相匹配的字段數(shù)據(jù)。
[0012]進一步地,所述對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置,具體包括:
[0013]逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù);
[0014]若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志數(shù)據(jù)定位出故障位置。
[0015]進一步地,所述字段數(shù)據(jù)包括日志級別;
[0016]所述逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù),具體包括:
[0017]逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)的日志級別是否為錯誤級別;若所述字段數(shù)據(jù)的日志級別為錯誤級別,則判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù)。
[0018]進一步地,在所述若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志定位出故障位置之后,還包括:
[0019]對所述錯誤日志數(shù)據(jù)的數(shù)據(jù)位置以及所述日志數(shù)據(jù)鏈表中與所述錯誤日志數(shù)據(jù)相鄰的字段數(shù)據(jù)的數(shù)據(jù)位置進行標記;
[0020]將標記的所述數(shù)據(jù)位置中的數(shù)據(jù)保存在故障報表中。
[0021]相應(yīng)的,本發(fā)明實施例還提供一種基于日志分析的故障定位裝置,包括:
[0022]讀取模塊,用于讀取待檢測設(shè)備的跟蹤日志、通信日志和調(diào)度日志;
[0023]提取模塊,用于分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù);
[0024]合并模塊,用于將提取出的具有相同時間的字段數(shù)據(jù)合并為日志數(shù)據(jù)鏈表;以及,
[0025]定位模塊,用于對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置。
[0026]進一步地,所述提取模塊具體包括:
[0027]匹配單元,用于對所述跟蹤日志、所述通信日志和所述調(diào)度日志進行關(guān)鍵字匹配;以及,
[0028]提取單元,用于在所述跟蹤日志、所述通信日志和所述調(diào)度日志均匹配成功時,分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出與所述關(guān)鍵字相匹配的字段數(shù)據(jù)。
[0029]進一步地,所述定位模塊具體包括:
[0030]判斷單元,用于逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù);以及,
[0031 ]定位單元,用于若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志數(shù)據(jù)定位出故障位置。
[0032]進一步地,所述字段數(shù)據(jù)包括日志級別;
[0033]所述判斷單元具體用于逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)的日志級別是否為錯誤級別;若所述字段數(shù)據(jù)的日志級別為錯誤級別,則判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù)。
[0034]進一步地,所述故障定位裝置還包括:
[0035]標記模塊,用于對所述錯誤日志數(shù)據(jù)的數(shù)據(jù)位置以及所述日志數(shù)據(jù)鏈表中與所述錯誤日志數(shù)據(jù)相鄰的字段數(shù)據(jù)的數(shù)據(jù)位置進行標記;以及,
[0036]保存模塊,用于將標記的所述數(shù)據(jù)位置中的數(shù)據(jù)保存在故障報表中。
[0037]實施本發(fā)明實施例,具有如下有益效果:
[0038]本發(fā)明實施例提供的基于日志分析的故障定位方法及裝置,能夠調(diào)度待檢測設(shè)備的通信調(diào)度日志,即跟蹤日志、通信日志和調(diào)度日志,并自動對其合并生成的日志數(shù)據(jù)鏈表進行檢測,以快速定位出待檢測設(shè)備的故障位置,提高設(shè)備維護的處理效率,從而提高用戶滿意度;將錯誤日志數(shù)據(jù)及其在日志數(shù)據(jù)鏈表中相鄰的字段數(shù)據(jù)保存到故障報表中,供技術(shù)人員對故障進行分析。
【附圖說明】
[0039]圖1是本發(fā)明提供的基于日志分析的故障定位原理圖;
[0040]圖2是本發(fā)明提供的基于日志分析的故障定位方法的一個實施例的流程示意圖;[0041 ]圖3是本發(fā)明提供的通信日志、跟蹤日志、調(diào)度日志和日志數(shù)據(jù)鏈表的字段數(shù)據(jù)格式示意圖;
[0042]圖4是圖2所示的基于日志分析的故障定位方法的一種具體流程示意圖;
[0043]圖5是本發(fā)明提供的基于日志分析的故障定位裝置的一個實施例的結(jié)構(gòu)示意圖;
[0044]圖6是圖5所示的基于日志分析的故障定位裝置的另一種結(jié)構(gòu)示意圖。
【具體實施方式】
[0045]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0046]參見圖1,是本發(fā)明提供的基于日志分析的故障定位原理圖。其中,應(yīng)用程序201通過調(diào)用通信組件接口 202的相關(guān)接口,間接性通過通信通道203與通信服務(wù)進程204進行數(shù)據(jù)交互,以達到控制待檢測的硬件設(shè)備205的過程。由于該過程具有較復雜的調(diào)用關(guān)系邏輯,因此需要記錄應(yīng)用程序201調(diào)用通信組件接口 202時的跟蹤日志206,記錄應(yīng)用程序201與硬件設(shè)備205交互的通信日志207,以及記錄通信服務(wù)進程204內(nèi)部調(diào)度的邏輯過程的調(diào)度日志208。其中,跟蹤日志206主要是提供調(diào)用入口和調(diào)用出口的分析邏輯依據(jù);通信日志207主要是提供與硬件設(shè)備205交互過程以及設(shè)備狀態(tài)的分析依據(jù);調(diào)度日志208主要是提供與硬件設(shè)備205交互操作的分析依據(jù)。日志分析模塊209將跟蹤日志206、通信日志207和調(diào)度日志208組成日志數(shù)據(jù)鏈表,并對該日志數(shù)據(jù)鏈表進行分析,生成故障報表210。
[0047]參見圖2,是本發(fā)明提供的基于日志分析的故障定位方法的一個實施例的流程示意圖,包括:
[0048]S1、讀取待檢測設(shè)備的跟蹤日志、通信日志和調(diào)度日志;
[0049]S2、分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù);
[0050]S3、將提取出的具有相同時間的字段數(shù)據(jù)合并為日志數(shù)據(jù)鏈表;
[0051 ] S4、對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置。
[0052]需要說明的是,在對待檢測設(shè)備進行檢測時,啟動加載線程(包括子線程A、子線程B和子線程C)。其中,子線程A用于處理通信日志,子線程B用于處理跟蹤日志,子線程C用于處理調(diào)度日志。子線程A加載通信日志,將文本形式的通信日志的數(shù)據(jù)讀取到內(nèi)存中,并從通信日志中提取出字段數(shù)據(jù),存放到數(shù)據(jù)緩沖列表A中;子線程B加載跟蹤日志,將文本形式的跟蹤日志的數(shù)據(jù)讀取到內(nèi)存中,并從跟蹤日志中提取出字段數(shù)據(jù),存放到數(shù)據(jù)緩沖列表B中;子線程C加載調(diào)度日志,將文本形式的調(diào)度日志的數(shù)據(jù)讀取到內(nèi)存中,并從調(diào)度日志中提取出字段數(shù)據(jù),存放到數(shù)據(jù)緩沖列表C中。判斷數(shù)據(jù)緩沖列表A、數(shù)據(jù)緩沖列表B和數(shù)據(jù)緩沖列表C是否為空,若為空,則退出檢測狀態(tài),若不為空,則將數(shù)據(jù)緩沖列表A、數(shù)據(jù)緩沖列表B和數(shù)據(jù)緩沖列表C中的字段數(shù)據(jù)以時間為關(guān)鍵字進行合并,即將數(shù)據(jù)緩沖列表A、數(shù)據(jù)緩沖列表B和數(shù)據(jù)緩沖列表C中具有相同時間的字段數(shù)據(jù)進行合并,生成日志時間事件數(shù)據(jù)格式的日志數(shù)據(jù)鏈表,并存放到數(shù)據(jù)緩沖列表D中。對數(shù)據(jù)緩存列表D中的數(shù)據(jù)進行檢測,從而快速定位出故障位置,提高設(shè)備維護的處理效率,從而提高用戶滿意度。
[0053]進一步地,所述分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù),具體包括:
[0054]對所述跟蹤日志、所述通信日志和所述調(diào)度日志進行關(guān)鍵字匹配;
[0055]在所述跟蹤日志、所述通信日志和所述調(diào)度日志均匹配成功時,分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出與所述關(guān)鍵字相匹配的字段數(shù)據(jù)。
[0056]其中,如圖3所示,通信日志的字段數(shù)據(jù)格式Dl為年year、月month、日day、小時hour、分鐘minute、秒second、毫秒msec、模塊名稱module、日志級別level、數(shù)據(jù)項data(線程tid和二進制數(shù)據(jù)bin);跟蹤日志的字段數(shù)據(jù)格式D2為年year、月month、日day、小時hour、分鐘minute、秒second、毫秒msec、模塊名稱module、日志級別level、數(shù)據(jù)項data(線程tid和日志信息info);調(diào)度日志的字段數(shù)據(jù)格式D3為年year、月month、日day、小時hour、分鐘minute、秒second、毫秒msec、模塊名稱module、日志級別level、數(shù)據(jù)項data(線程tid和日志信息info)。
[0057]分別采用正則表達式對跟蹤日志、通信日志和調(diào)度日志進行關(guān)鍵字匹配,在跟蹤日志、通信日志和調(diào)度日志中均能匹配到其對應(yīng)的關(guān)鍵字時,分別從跟蹤日志、通信日志和調(diào)度日志中提取出具有其對應(yīng)格式的字段數(shù)據(jù)。進一步地,所述對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置,具體包括:
[0058]逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù);
[0059]若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志數(shù)據(jù)定位出故障位置。
[0060]進一步地,所述字段數(shù)據(jù)包括日志級別;
[0061 ]所述逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù),具體包括:
[0062]逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)的日志級別是否為錯誤級別;若所述字段數(shù)據(jù)的日志級別為錯誤級別,則判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù)。
[0063]需要說明的是,如圖3所示,合并后的日志數(shù)據(jù)鏈表的字段數(shù)據(jù)格式D4為年year、月month、日day、小時hour、分鐘minute、秒second、毫秒msec、模塊名稱module、日志級別level、數(shù)據(jù)項data(源日志格式類別type、線程tid和日志信息info)。其中,日志級別level分為信息(info)、告警(warning)、錯誤(error)、系統(tǒng)(system)幾個級別,源日志格式類別type分為通信日志格式、跟蹤日志格式和調(diào)度日志格式。在對數(shù)據(jù)緩存列表D進行檢測時,先將數(shù)據(jù)指針定位到第一個數(shù)據(jù)位置,檢測該數(shù)據(jù)位置處的字段數(shù)據(jù)的日志級別level是否為錯誤級別。若為錯誤級別,則該字段數(shù)據(jù)為錯誤日志,即可根據(jù)該錯誤日志快速定位出故障位置,若不為錯誤級別,則將數(shù)據(jù)指針下移到下一個數(shù)據(jù)位置繼續(xù)進行檢測,直至數(shù)據(jù)緩存列表D中的所有數(shù)據(jù)均檢測完畢。
[0064]進一步地,在所述若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志定位出故障位置之后,還包括:
[0065]對所述錯誤日志數(shù)據(jù)的數(shù)據(jù)位置以及所述日志數(shù)據(jù)鏈表中與所述錯誤日志數(shù)據(jù)相鄰的字段數(shù)據(jù)的數(shù)據(jù)位置進行標記;
[0066]將標記的所述數(shù)據(jù)位置中的數(shù)據(jù)保存在故障報表中。
[0067]需要說明的是,在檢測出錯誤日志數(shù)據(jù)后,對錯誤日志數(shù)據(jù)的數(shù)據(jù)位置進行標記,并根據(jù)該數(shù)據(jù)位置查找錯誤日志數(shù)據(jù)相鄰的字段數(shù)據(jù),即指令過程中的上下文,并標記出相鄰的字段數(shù)據(jù)的數(shù)據(jù)位置。在檢測完畢后,將標記的數(shù)據(jù)位置中的數(shù)據(jù)提取出來生成故障報表。其中,故障列表中列明故障模塊的上下文關(guān)系及收發(fā)數(shù)據(jù)的過程和故障模塊在正常情況下的上下文關(guān)系及收發(fā)數(shù)據(jù)的過程,供技術(shù)人員對故障進行分析。
[0068]參見圖4,是圖2所示的基于日志分析的故障定位方法的一種具體流程示意圖,包括:
[0069]S301、啟動加載線程,即分別啟動用于處理通信日志文件(即通信日志207)的子線程A并跳轉(zhuǎn)到S302,用于處理跟蹤日志文件(即跟蹤日志206)的子線程B并跳轉(zhuǎn)到S304,用于處理調(diào)度日志文件(即調(diào)度日志208)子線程C跳轉(zhuǎn)到S306;
[0070]S302、加載通信日志文件(即通信日志207),將文本形式的通信日志數(shù)據(jù)讀取到內(nèi)存中,跳轉(zhuǎn)到S303;
[0071]S303、使用正則表達式進行關(guān)鍵字匹配,從通信日志數(shù)據(jù)中提取通信日志格式Dl中的數(shù)據(jù),存放到數(shù)據(jù)緩沖列表A中,跳轉(zhuǎn)到S308;
[0072]S304、加載跟蹤日志文件(即跟蹤日志206),將文本形式的跟蹤日志數(shù)據(jù)讀取到內(nèi)存中,跳轉(zhuǎn)到S305;
[0073]S305、使用正則表達式進行關(guān)鍵字匹配,從跟蹤日志數(shù)據(jù)中提取通信跟蹤日志格式D2中的數(shù)據(jù),存放到數(shù)據(jù)緩沖列表B中,跳轉(zhuǎn)到S308;
[0074]S306、加載調(diào)度日志文件(即調(diào)度日志208),將文本形式的調(diào)度日志數(shù)據(jù)讀取到內(nèi)存中,跳轉(zhuǎn)到S307;
[0075]S307、使用正則表達式進行關(guān)鍵字匹配,從調(diào)度日志數(shù)據(jù)中提取調(diào)度日志格式D3中的數(shù)據(jù),存放到數(shù)據(jù)緩沖列表C中,跳轉(zhuǎn)到S308;
[0076]S308、加載日志數(shù)據(jù)等待,即等待子線程A、子線程B和子線程C將日志數(shù)據(jù)讀取到內(nèi)存并處理成程序可以識別的數(shù)據(jù),完成等待后跳轉(zhuǎn)到S309繼續(xù)處理;
[0077]S309、判斷數(shù)據(jù)緩沖列表A、數(shù)據(jù)緩沖列表B及數(shù)據(jù)緩沖列表C是否為空,若其中任意一個數(shù)據(jù)緩沖列表為空,則跳轉(zhuǎn)到S317,否則執(zhí)行S310;
[0078]S310、將數(shù)據(jù)緩沖列表A、數(shù)據(jù)緩沖列表B及數(shù)據(jù)緩沖列表C中的數(shù)據(jù)以時間作為關(guān)鍵字合并,生成日志時間事件數(shù)據(jù)格式D4的日志數(shù)據(jù)鏈表,并存放到數(shù)據(jù)緩沖列表D中;
[0079]S311、將數(shù)據(jù)緩沖列表D的數(shù)據(jù)指針定位到第一條數(shù)據(jù)位置;
[0080]S312、判斷數(shù)據(jù)緩沖列表D的數(shù)據(jù)字段級別(level)是否為錯誤日志級別,如果是則跳轉(zhuǎn)到S313,如果不是則跳轉(zhuǎn)到S314;
[0081]S313、標記錯誤日志的數(shù)據(jù)位置,定位通信數(shù)據(jù)的數(shù)據(jù)位置,并根據(jù)當前的錯誤位置查找指令過程的上下文,標記上下文的數(shù)據(jù)位置;
[0082]S314、將數(shù)據(jù)緩沖列表D的數(shù)據(jù)指針下移一條數(shù)據(jù)位置;
[0083]S315、判斷數(shù)據(jù)緩沖列表D的數(shù)據(jù)指針是否是數(shù)據(jù)結(jié)尾,如果是則跳轉(zhuǎn)到S316,如果不是則跳轉(zhuǎn)到S312;
[0084]S316:將標記的數(shù)據(jù)位置中的數(shù)據(jù)提取出來生成故障報表,其中,故障報表中列明故障模塊的上下文關(guān)系以及收發(fā)數(shù)據(jù)的過程和列出正常情況下的上下文關(guān)系以及收發(fā)數(shù)據(jù)的過程,以便于分析問題;
[0085]S317、日志數(shù)據(jù)分析模塊退出,結(jié)束日志數(shù)據(jù)的分析過程。
[0086]本發(fā)明實施例提供的基于日志分析的故障定位方法,能夠調(diào)度待檢測設(shè)備的通信調(diào)度日志,即跟蹤日志、通信日志和調(diào)度日志,并自動對其合并生成的日志數(shù)據(jù)鏈表進行檢測,以快速定位出待檢測設(shè)備的故障位置,提高設(shè)備維護的處理效率,從而提高用戶滿意度;將錯誤日志數(shù)據(jù)及其在日志數(shù)據(jù)鏈表中相鄰的字段數(shù)據(jù)保存到故障報表中,供技術(shù)人員對故障進行分析。
[0087]相應(yīng)的,本發(fā)明還提供一種基于日志分析的故障定位裝置,能夠?qū)崿F(xiàn)上述實施例中的基于日志分析的故障定位方法的所有流程。
[0088]參見圖5,是本發(fā)明提供的基于日志分析的故障定位裝置的一個實施例的結(jié)構(gòu)示意圖,包括:
[0089]讀取模塊I,用于讀取待檢測設(shè)備的跟蹤日志、通信日志和調(diào)度日志;
[0090]提取模塊2,用于分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù);
[0091]合并模塊3,用于將提取出的具有相同時間的字段數(shù)據(jù)合并為日志數(shù)據(jù)鏈表;以及,
[0092]定位模塊4,用于對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置。
[0093]進一步地,所述提取模塊具體包括:
[0094]匹配單元,用于對所述跟蹤日志、所述通信日志和所述調(diào)度日志進行關(guān)鍵字匹配;以及,
[0095]提取單元,用于在所述跟蹤日志、所述通信日志和所述調(diào)度日志均匹配成功時,分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出與所述關(guān)鍵字相匹配的字段數(shù)據(jù)。
[0096]進一步地,所述定位模塊具體包括:
[0097]判斷單元,用于逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù);以及,
[0098]定位單元,用于若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志數(shù)據(jù)定位出故障位置。
[0099]進一步地,所述字段數(shù)據(jù)包括日志級別;
[0100]所述判斷單元具體用于逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)的日志級別是否為錯誤級別;若所述字段數(shù)據(jù)的日志級別為錯誤級別,則判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù)。
[0101]進一步地,所述故障定位裝置還包括:
[0102]標記模塊,用于對所述錯誤日志數(shù)據(jù)的數(shù)據(jù)位置以及所述日志數(shù)據(jù)鏈表中與所述錯誤日志數(shù)據(jù)相鄰的字段數(shù)據(jù)的數(shù)據(jù)位置進行標記;以及,
[0103]保存模塊,用于將標記的所述數(shù)據(jù)位置中的數(shù)據(jù)保存在故障報表中。
[0104]參見圖6,是圖5所示的基于日志分析的故障定位裝置的另一種結(jié)構(gòu)示意圖,包括:日志數(shù)據(jù)加載模塊501、日志數(shù)據(jù)轉(zhuǎn)換模塊502、合并日志時間事件模塊503、故障定位模塊504和生成故障報表模塊505。
[0105]其中,日志數(shù)據(jù)加載模塊501主要的功能是將日志文件(即通信日志、跟蹤日志和調(diào)度日志)中的數(shù)據(jù)逐行由文件讀取到內(nèi)存。日志數(shù)據(jù)轉(zhuǎn)換模塊502主要的功能是通過使用正則表達式提取對應(yīng)的通信日志格式Dl、跟蹤日志格式D2和調(diào)度日志格式D3中的字段數(shù)據(jù)。合并日志時間事件模塊503的主要的功能是將所生成的通信日志格式Dl、跟蹤日志格式D2和調(diào)度日志格式D3的字段數(shù)據(jù)進行合并,生成日志時間事件數(shù)據(jù)格式D4的數(shù)據(jù)鏈表。故障定位模塊504的主要功能是在日志時間事件數(shù)據(jù)格式D4的數(shù)據(jù)鏈表中根據(jù)level字段進行錯誤定位,然后根據(jù)錯誤所產(chǎn)生的位置定位出指令過程的上下文日志,并生成標注數(shù)據(jù)鏈表。生成故障報表模塊505的主要功能是將標注數(shù)據(jù)鏈表進行整理生成故障報表,故障報表中列明故障模塊的上下文關(guān)系以及收發(fā)數(shù)據(jù)的過程,以便于分析問題。
[0106]本發(fā)明實施例提供的基于日志分析的故障定位裝置,能夠調(diào)度待檢測設(shè)備的通信調(diào)度日志,即跟蹤日志、通信日志和調(diào)度日志,并自動對其合并生成的日志數(shù)據(jù)鏈表進行檢測,以快速定位出待檢測設(shè)備的故障位置,提高設(shè)備維護的處理效率,從而提高用戶滿意度;將錯誤日志數(shù)據(jù)及其在日志數(shù)據(jù)鏈表中相鄰的字段數(shù)據(jù)保存到故障報表中,供技術(shù)人員對故障進行分析。
[0107]以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。
【主權(quán)項】
1.一種基于日志分析的故障定位方法,其特征在于,包括: 讀取待檢測設(shè)備的跟蹤日志、通信日志和調(diào)度日志; 分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù); 將提取出的具有相同時間的字段數(shù)據(jù)合并為日志數(shù)據(jù)鏈表; 對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置。2.如權(quán)利要求1所述的基于日志分析的故障定位方法,其特征在于,所述分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù),具體包括: 對所述跟蹤日志、所述通信日志和所述調(diào)度日志進行關(guān)鍵字匹配; 在所述跟蹤日志、所述通信日志和所述調(diào)度日志均匹配成功時,分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出與所述關(guān)鍵字相匹配的字段數(shù)據(jù)。3.如權(quán)利要求1所述的基于日志分析的故障定位方法,其特征在于,所述對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置,具體包括: 逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù); 若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志數(shù)據(jù)定位出故障位置。4.如權(quán)利要求3所述的基于日志分析的故障定位方法,其特征在于,所述字段數(shù)據(jù)包括日志級別; 所述逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù),具體包括:逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)的日志級別是否為錯誤級別;若所述字段數(shù)據(jù)的日志級別為錯誤級別,則判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù)。5.如權(quán)利要求3或4所述的基于日志分析的故障定位方法,其特征在于,在所述若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志定位出故障位置之后,還包括: 對所述錯誤日志數(shù)據(jù)的數(shù)據(jù)位置以及所述日志數(shù)據(jù)鏈表中與所述錯誤日志數(shù)據(jù)相鄰的字段數(shù)據(jù)的數(shù)據(jù)位置進行標記; 將標記的所述數(shù)據(jù)位置中的數(shù)據(jù)保存在故障報表中。6.一種基于日志分析的故障定位裝置,其特征在于,包括: 讀取模塊,用于讀取待檢測設(shè)備的跟蹤日志、通信日志和調(diào)度日志; 提取模塊,用于分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出字段數(shù)據(jù); 合并模塊,用于將提取出的具有相同時間的字段數(shù)據(jù)合并為日志數(shù)據(jù)鏈表;以及, 定位模塊,用于對所述日志數(shù)據(jù)鏈表進行檢測,定位出故障位置。7.如權(quán)利要求6所述的基于日志分析的故障定位裝置,其特征在于,所述提取模塊具體包括: 匹配單元,用于對所述跟蹤日志、所述通信日志和所述調(diào)度日志進行關(guān)鍵字匹配;以及, 提取單元,用于在所述跟蹤日志、所述通信日志和所述調(diào)度日志均匹配成功時,分別從所述跟蹤日志、所述通信日志和所述調(diào)度日志中提取出與所述關(guān)鍵字相匹配的字段數(shù)據(jù)。8.如權(quán)利要求6所述的基于日志分析的故障定位裝置,其特征在于,所述定位模塊具體包括: 判斷單元,用于逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)是否為錯誤日志數(shù)據(jù);以及, 定位單元,用于若判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù),則根據(jù)所述錯誤日志數(shù)據(jù)定位出故障位置。9.如權(quán)利要求8所述的基于日志分析的故障定位裝置,其特征在于,所述字段數(shù)據(jù)包括日志級別; 所述判斷單元具體用于逐一判斷所述日志數(shù)據(jù)鏈表中的每個字段數(shù)據(jù)的日志級別是否為錯誤級別;若所述字段數(shù)據(jù)的日志級別為錯誤級別,則判定所述字段數(shù)據(jù)為錯誤日志數(shù)據(jù)。10.如權(quán)利要求8或9所述的基于日志分析的故障定位裝置,其特征在于,所述故障定位裝置還包括: 標記模塊,用于對所述錯誤日志數(shù)據(jù)的數(shù)據(jù)位置以及所述日志數(shù)據(jù)鏈表中與所述錯誤日志數(shù)據(jù)相鄰的字段數(shù)據(jù)的數(shù)據(jù)位置進行標記;以及, 保存模塊,用于將標記的所述數(shù)據(jù)位置中的數(shù)據(jù)保存在故障報表中。
【文檔編號】G06F17/30GK105930348SQ201610211578
【公開日】2016年9月7日
【申請日】2016年4月6日
【發(fā)明人】梁建明, 熊飛, 陳明宇, 張雲(yún)瑞, 羅忠明
【申請人】廣州廣電運通金融電子股份有限公司, 廣州廣電運通信息科技有限公司