一种基于日志分析的故障定位方法及装置的制造方法

文档序号:10569919阅读:156来源:国知局
一种基于日志分析的故障定位方法及装置的制造方法
【专利摘要】本发明公开了一种基于日志分析的故障定位方法,包括:读取待检测设备的跟踪日志、通信日志和调度日志;分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据;将提取出的具有相同时间的字段数据合并为日志数据链表;对所述日志数据链表进行检测,定位出故障位置。相应的,本发明还公开了一种基于日志分析的故障定位装置。采用本发明实施例,能够有效提高故障定位的效率。
【专利说明】
一种基于日志分析的故障定位方法及装置
技术领域
[0001]本发明涉及通信技术领域,尤其涉及一种基于日志分析的故障定位方法及装置。
【背景技术】
[0002]现有的硬件设备,如ATM设备,在产品使用维护过程中的处理方法是外派人员到硬件设备所在地进行人为参与问题排查工作,或者在现场手动地将硬件设备的日志文件发回公司,供开发人员进行分析。但是,由于现场设备所产生的日志数据量较大,在分析日志数据过程中需要消耗不少时间来定位出设备故障的问题所在,从而大大降低产品维护的处理效率,降低客户对故障处理的满意度。

【发明内容】

[0003]本发明实施例提出一种基于日志分析的故障定位方法及装置,能够有效提高故障定位的效率。
[0004]本发明实施例提供一种基于日志分析的故障定位方法,包括:
[0005]读取待检测设备的跟踪日志、通信日志和调度日志;
[0006]分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据;
[0007]将提取出的具有相同时间的字段数据合并为日志数据链表;
[0008]对所述日志数据链表进行检测,定位出故障位置。
[0009]进一步地,所述分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据,具体包括:
[0010]对所述跟踪日志、所述通信日志和所述调度日志进行关键字匹配;
[0011 ] 在所述跟踪日志、所述通信日志和所述调度日志均匹配成功时,分别从所述跟踪日志、所述通信日志和所述调度日志中提取出与所述关键字相匹配的字段数据。
[0012]进一步地,所述对所述日志数据链表进行检测,定位出故障位置,具体包括:
[0013]逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据;
[0014]若判定所述字段数据为错误日志数据,则根据所述错误日志数据定位出故障位置。
[0015]进一步地,所述字段数据包括日志级别;
[0016]所述逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据,具体包括:
[0017]逐一判断所述日志数据链表中的每个字段数据的日志级别是否为错误级别;若所述字段数据的日志级别为错误级别,则判定所述字段数据为错误日志数据。
[0018]进一步地,在所述若判定所述字段数据为错误日志数据,则根据所述错误日志定位出故障位置之后,还包括:
[0019]对所述错误日志数据的数据位置以及所述日志数据链表中与所述错误日志数据相邻的字段数据的数据位置进行标记;
[0020]将标记的所述数据位置中的数据保存在故障报表中。
[0021]相应的,本发明实施例还提供一种基于日志分析的故障定位装置,包括:
[0022]读取模块,用于读取待检测设备的跟踪日志、通信日志和调度日志;
[0023]提取模块,用于分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据;
[0024]合并模块,用于将提取出的具有相同时间的字段数据合并为日志数据链表;以及,
[0025]定位模块,用于对所述日志数据链表进行检测,定位出故障位置。
[0026]进一步地,所述提取模块具体包括:
[0027]匹配单元,用于对所述跟踪日志、所述通信日志和所述调度日志进行关键字匹配;以及,
[0028]提取单元,用于在所述跟踪日志、所述通信日志和所述调度日志均匹配成功时,分别从所述跟踪日志、所述通信日志和所述调度日志中提取出与所述关键字相匹配的字段数据。
[0029]进一步地,所述定位模块具体包括:
[0030]判断单元,用于逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据;以及,
[0031 ]定位单元,用于若判定所述字段数据为错误日志数据,则根据所述错误日志数据定位出故障位置。
[0032]进一步地,所述字段数据包括日志级别;
[0033]所述判断单元具体用于逐一判断所述日志数据链表中的每个字段数据的日志级别是否为错误级别;若所述字段数据的日志级别为错误级别,则判定所述字段数据为错误日志数据。
[0034]进一步地,所述故障定位装置还包括:
[0035]标记模块,用于对所述错误日志数据的数据位置以及所述日志数据链表中与所述错误日志数据相邻的字段数据的数据位置进行标记;以及,
[0036]保存模块,用于将标记的所述数据位置中的数据保存在故障报表中。
[0037]实施本发明实施例,具有如下有益效果:
[0038]本发明实施例提供的基于日志分析的故障定位方法及装置,能够调度待检测设备的通信调度日志,即跟踪日志、通信日志和调度日志,并自动对其合并生成的日志数据链表进行检测,以快速定位出待检测设备的故障位置,提高设备维护的处理效率,从而提高用户满意度;将错误日志数据及其在日志数据链表中相邻的字段数据保存到故障报表中,供技术人员对故障进行分析。
【附图说明】
[0039]图1是本发明提供的基于日志分析的故障定位原理图;
[0040]图2是本发明提供的基于日志分析的故障定位方法的一个实施例的流程示意图;[0041 ]图3是本发明提供的通信日志、跟踪日志、调度日志和日志数据链表的字段数据格式示意图;
[0042]图4是图2所示的基于日志分析的故障定位方法的一种具体流程示意图;
[0043]图5是本发明提供的基于日志分析的故障定位装置的一个实施例的结构示意图;
[0044]图6是图5所示的基于日志分析的故障定位装置的另一种结构示意图。
【具体实施方式】
[0045]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]参见图1,是本发明提供的基于日志分析的故障定位原理图。其中,应用程序201通过调用通信组件接口 202的相关接口,间接性通过通信通道203与通信服务进程204进行数据交互,以达到控制待检测的硬件设备205的过程。由于该过程具有较复杂的调用关系逻辑,因此需要记录应用程序201调用通信组件接口 202时的跟踪日志206,记录应用程序201与硬件设备205交互的通信日志207,以及记录通信服务进程204内部调度的逻辑过程的调度日志208。其中,跟踪日志206主要是提供调用入口和调用出口的分析逻辑依据;通信日志207主要是提供与硬件设备205交互过程以及设备状态的分析依据;调度日志208主要是提供与硬件设备205交互操作的分析依据。日志分析模块209将跟踪日志206、通信日志207和调度日志208组成日志数据链表,并对该日志数据链表进行分析,生成故障报表210。
[0047]参见图2,是本发明提供的基于日志分析的故障定位方法的一个实施例的流程示意图,包括:
[0048]S1、读取待检测设备的跟踪日志、通信日志和调度日志;
[0049]S2、分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据;
[0050]S3、将提取出的具有相同时间的字段数据合并为日志数据链表;
[0051 ] S4、对所述日志数据链表进行检测,定位出故障位置。
[0052]需要说明的是,在对待检测设备进行检测时,启动加载线程(包括子线程A、子线程B和子线程C)。其中,子线程A用于处理通信日志,子线程B用于处理跟踪日志,子线程C用于处理调度日志。子线程A加载通信日志,将文本形式的通信日志的数据读取到内存中,并从通信日志中提取出字段数据,存放到数据缓冲列表A中;子线程B加载跟踪日志,将文本形式的跟踪日志的数据读取到内存中,并从跟踪日志中提取出字段数据,存放到数据缓冲列表B中;子线程C加载调度日志,将文本形式的调度日志的数据读取到内存中,并从调度日志中提取出字段数据,存放到数据缓冲列表C中。判断数据缓冲列表A、数据缓冲列表B和数据缓冲列表C是否为空,若为空,则退出检测状态,若不为空,则将数据缓冲列表A、数据缓冲列表B和数据缓冲列表C中的字段数据以时间为关键字进行合并,即将数据缓冲列表A、数据缓冲列表B和数据缓冲列表C中具有相同时间的字段数据进行合并,生成日志时间事件数据格式的日志数据链表,并存放到数据缓冲列表D中。对数据缓存列表D中的数据进行检测,从而快速定位出故障位置,提高设备维护的处理效率,从而提高用户满意度。
[0053]进一步地,所述分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据,具体包括:
[0054]对所述跟踪日志、所述通信日志和所述调度日志进行关键字匹配;
[0055]在所述跟踪日志、所述通信日志和所述调度日志均匹配成功时,分别从所述跟踪日志、所述通信日志和所述调度日志中提取出与所述关键字相匹配的字段数据。
[0056]其中,如图3所示,通信日志的字段数据格式Dl为年year、月month、日day、小时hour、分钟minute、秒second、毫秒msec、模块名称module、日志级别level、数据项data(线程tid和二进制数据bin);跟踪日志的字段数据格式D2为年year、月month、日day、小时hour、分钟minute、秒second、毫秒msec、模块名称module、日志级别level、数据项data(线程tid和日志信息info);调度日志的字段数据格式D3为年year、月month、日day、小时hour、分钟minute、秒second、毫秒msec、模块名称module、日志级别level、数据项data(线程tid和日志信息info)。
[0057]分别采用正则表达式对跟踪日志、通信日志和调度日志进行关键字匹配,在跟踪日志、通信日志和调度日志中均能匹配到其对应的关键字时,分别从跟踪日志、通信日志和调度日志中提取出具有其对应格式的字段数据。进一步地,所述对所述日志数据链表进行检测,定位出故障位置,具体包括:
[0058]逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据;
[0059]若判定所述字段数据为错误日志数据,则根据所述错误日志数据定位出故障位置。
[0060]进一步地,所述字段数据包括日志级别;
[0061 ]所述逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据,具体包括:
[0062]逐一判断所述日志数据链表中的每个字段数据的日志级别是否为错误级别;若所述字段数据的日志级别为错误级别,则判定所述字段数据为错误日志数据。
[0063]需要说明的是,如图3所示,合并后的日志数据链表的字段数据格式D4为年year、月month、日day、小时hour、分钟minute、秒second、毫秒msec、模块名称module、日志级别level、数据项data(源日志格式类别type、线程tid和日志信息info)。其中,日志级别level分为信息(info)、告警(warning)、错误(error)、系统(system)几个级别,源日志格式类别type分为通信日志格式、跟踪日志格式和调度日志格式。在对数据缓存列表D进行检测时,先将数据指针定位到第一个数据位置,检测该数据位置处的字段数据的日志级别level是否为错误级别。若为错误级别,则该字段数据为错误日志,即可根据该错误日志快速定位出故障位置,若不为错误级别,则将数据指针下移到下一个数据位置继续进行检测,直至数据缓存列表D中的所有数据均检测完毕。
[0064]进一步地,在所述若判定所述字段数据为错误日志数据,则根据所述错误日志定位出故障位置之后,还包括:
[0065]对所述错误日志数据的数据位置以及所述日志数据链表中与所述错误日志数据相邻的字段数据的数据位置进行标记;
[0066]将标记的所述数据位置中的数据保存在故障报表中。
[0067]需要说明的是,在检测出错误日志数据后,对错误日志数据的数据位置进行标记,并根据该数据位置查找错误日志数据相邻的字段数据,即指令过程中的上下文,并标记出相邻的字段数据的数据位置。在检测完毕后,将标记的数据位置中的数据提取出来生成故障报表。其中,故障列表中列明故障模块的上下文关系及收发数据的过程和故障模块在正常情况下的上下文关系及收发数据的过程,供技术人员对故障进行分析。
[0068]参见图4,是图2所示的基于日志分析的故障定位方法的一种具体流程示意图,包括:
[0069]S301、启动加载线程,即分别启动用于处理通信日志文件(即通信日志207)的子线程A并跳转到S302,用于处理跟踪日志文件(即跟踪日志206)的子线程B并跳转到S304,用于处理调度日志文件(即调度日志208)子线程C跳转到S306;
[0070]S302、加载通信日志文件(即通信日志207),将文本形式的通信日志数据读取到内存中,跳转到S303;
[0071]S303、使用正则表达式进行关键字匹配,从通信日志数据中提取通信日志格式Dl中的数据,存放到数据缓冲列表A中,跳转到S308;
[0072]S304、加载跟踪日志文件(即跟踪日志206),将文本形式的跟踪日志数据读取到内存中,跳转到S305;
[0073]S305、使用正则表达式进行关键字匹配,从跟踪日志数据中提取通信跟踪日志格式D2中的数据,存放到数据缓冲列表B中,跳转到S308;
[0074]S306、加载调度日志文件(即调度日志208),将文本形式的调度日志数据读取到内存中,跳转到S307;
[0075]S307、使用正则表达式进行关键字匹配,从调度日志数据中提取调度日志格式D3中的数据,存放到数据缓冲列表C中,跳转到S308;
[0076]S308、加载日志数据等待,即等待子线程A、子线程B和子线程C将日志数据读取到内存并处理成程序可以识别的数据,完成等待后跳转到S309继续处理;
[0077]S309、判断数据缓冲列表A、数据缓冲列表B及数据缓冲列表C是否为空,若其中任意一个数据缓冲列表为空,则跳转到S317,否则执行S310;
[0078]S310、将数据缓冲列表A、数据缓冲列表B及数据缓冲列表C中的数据以时间作为关键字合并,生成日志时间事件数据格式D4的日志数据链表,并存放到数据缓冲列表D中;
[0079]S311、将数据缓冲列表D的数据指针定位到第一条数据位置;
[0080]S312、判断数据缓冲列表D的数据字段级别(level)是否为错误日志级别,如果是则跳转到S313,如果不是则跳转到S314;
[0081]S313、标记错误日志的数据位置,定位通信数据的数据位置,并根据当前的错误位置查找指令过程的上下文,标记上下文的数据位置;
[0082]S314、将数据缓冲列表D的数据指针下移一条数据位置;
[0083]S315、判断数据缓冲列表D的数据指针是否是数据结尾,如果是则跳转到S316,如果不是则跳转到S312;
[0084]S316:将标记的数据位置中的数据提取出来生成故障报表,其中,故障报表中列明故障模块的上下文关系以及收发数据的过程和列出正常情况下的上下文关系以及收发数据的过程,以便于分析问题;
[0085]S317、日志数据分析模块退出,结束日志数据的分析过程。
[0086]本发明实施例提供的基于日志分析的故障定位方法,能够调度待检测设备的通信调度日志,即跟踪日志、通信日志和调度日志,并自动对其合并生成的日志数据链表进行检测,以快速定位出待检测设备的故障位置,提高设备维护的处理效率,从而提高用户满意度;将错误日志数据及其在日志数据链表中相邻的字段数据保存到故障报表中,供技术人员对故障进行分析。
[0087]相应的,本发明还提供一种基于日志分析的故障定位装置,能够实现上述实施例中的基于日志分析的故障定位方法的所有流程。
[0088]参见图5,是本发明提供的基于日志分析的故障定位装置的一个实施例的结构示意图,包括:
[0089]读取模块I,用于读取待检测设备的跟踪日志、通信日志和调度日志;
[0090]提取模块2,用于分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据;
[0091]合并模块3,用于将提取出的具有相同时间的字段数据合并为日志数据链表;以及,
[0092]定位模块4,用于对所述日志数据链表进行检测,定位出故障位置。
[0093]进一步地,所述提取模块具体包括:
[0094]匹配单元,用于对所述跟踪日志、所述通信日志和所述调度日志进行关键字匹配;以及,
[0095]提取单元,用于在所述跟踪日志、所述通信日志和所述调度日志均匹配成功时,分别从所述跟踪日志、所述通信日志和所述调度日志中提取出与所述关键字相匹配的字段数据。
[0096]进一步地,所述定位模块具体包括:
[0097]判断单元,用于逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据;以及,
[0098]定位单元,用于若判定所述字段数据为错误日志数据,则根据所述错误日志数据定位出故障位置。
[0099]进一步地,所述字段数据包括日志级别;
[0100]所述判断单元具体用于逐一判断所述日志数据链表中的每个字段数据的日志级别是否为错误级别;若所述字段数据的日志级别为错误级别,则判定所述字段数据为错误日志数据。
[0101]进一步地,所述故障定位装置还包括:
[0102]标记模块,用于对所述错误日志数据的数据位置以及所述日志数据链表中与所述错误日志数据相邻的字段数据的数据位置进行标记;以及,
[0103]保存模块,用于将标记的所述数据位置中的数据保存在故障报表中。
[0104]参见图6,是图5所示的基于日志分析的故障定位装置的另一种结构示意图,包括:日志数据加载模块501、日志数据转换模块502、合并日志时间事件模块503、故障定位模块504和生成故障报表模块505。
[0105]其中,日志数据加载模块501主要的功能是将日志文件(即通信日志、跟踪日志和调度日志)中的数据逐行由文件读取到内存。日志数据转换模块502主要的功能是通过使用正则表达式提取对应的通信日志格式Dl、跟踪日志格式D2和调度日志格式D3中的字段数据。合并日志时间事件模块503的主要的功能是将所生成的通信日志格式Dl、跟踪日志格式D2和调度日志格式D3的字段数据进行合并,生成日志时间事件数据格式D4的数据链表。故障定位模块504的主要功能是在日志时间事件数据格式D4的数据链表中根据level字段进行错误定位,然后根据错误所产生的位置定位出指令过程的上下文日志,并生成标注数据链表。生成故障报表模块505的主要功能是将标注数据链表进行整理生成故障报表,故障报表中列明故障模块的上下文关系以及收发数据的过程,以便于分析问题。
[0106]本发明实施例提供的基于日志分析的故障定位装置,能够调度待检测设备的通信调度日志,即跟踪日志、通信日志和调度日志,并自动对其合并生成的日志数据链表进行检测,以快速定位出待检测设备的故障位置,提高设备维护的处理效率,从而提高用户满意度;将错误日志数据及其在日志数据链表中相邻的字段数据保存到故障报表中,供技术人员对故障进行分析。
[0107]以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
【主权项】
1.一种基于日志分析的故障定位方法,其特征在于,包括: 读取待检测设备的跟踪日志、通信日志和调度日志; 分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据; 将提取出的具有相同时间的字段数据合并为日志数据链表; 对所述日志数据链表进行检测,定位出故障位置。2.如权利要求1所述的基于日志分析的故障定位方法,其特征在于,所述分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据,具体包括: 对所述跟踪日志、所述通信日志和所述调度日志进行关键字匹配; 在所述跟踪日志、所述通信日志和所述调度日志均匹配成功时,分别从所述跟踪日志、所述通信日志和所述调度日志中提取出与所述关键字相匹配的字段数据。3.如权利要求1所述的基于日志分析的故障定位方法,其特征在于,所述对所述日志数据链表进行检测,定位出故障位置,具体包括: 逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据; 若判定所述字段数据为错误日志数据,则根据所述错误日志数据定位出故障位置。4.如权利要求3所述的基于日志分析的故障定位方法,其特征在于,所述字段数据包括日志级别; 所述逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据,具体包括:逐一判断所述日志数据链表中的每个字段数据的日志级别是否为错误级别;若所述字段数据的日志级别为错误级别,则判定所述字段数据为错误日志数据。5.如权利要求3或4所述的基于日志分析的故障定位方法,其特征在于,在所述若判定所述字段数据为错误日志数据,则根据所述错误日志定位出故障位置之后,还包括: 对所述错误日志数据的数据位置以及所述日志数据链表中与所述错误日志数据相邻的字段数据的数据位置进行标记; 将标记的所述数据位置中的数据保存在故障报表中。6.一种基于日志分析的故障定位装置,其特征在于,包括: 读取模块,用于读取待检测设备的跟踪日志、通信日志和调度日志; 提取模块,用于分别从所述跟踪日志、所述通信日志和所述调度日志中提取出字段数据; 合并模块,用于将提取出的具有相同时间的字段数据合并为日志数据链表;以及, 定位模块,用于对所述日志数据链表进行检测,定位出故障位置。7.如权利要求6所述的基于日志分析的故障定位装置,其特征在于,所述提取模块具体包括: 匹配单元,用于对所述跟踪日志、所述通信日志和所述调度日志进行关键字匹配;以及, 提取单元,用于在所述跟踪日志、所述通信日志和所述调度日志均匹配成功时,分别从所述跟踪日志、所述通信日志和所述调度日志中提取出与所述关键字相匹配的字段数据。8.如权利要求6所述的基于日志分析的故障定位装置,其特征在于,所述定位模块具体包括: 判断单元,用于逐一判断所述日志数据链表中的每个字段数据是否为错误日志数据;以及, 定位单元,用于若判定所述字段数据为错误日志数据,则根据所述错误日志数据定位出故障位置。9.如权利要求8所述的基于日志分析的故障定位装置,其特征在于,所述字段数据包括日志级别; 所述判断单元具体用于逐一判断所述日志数据链表中的每个字段数据的日志级别是否为错误级别;若所述字段数据的日志级别为错误级别,则判定所述字段数据为错误日志数据。10.如权利要求8或9所述的基于日志分析的故障定位装置,其特征在于,所述故障定位装置还包括: 标记模块,用于对所述错误日志数据的数据位置以及所述日志数据链表中与所述错误日志数据相邻的字段数据的数据位置进行标记;以及, 保存模块,用于将标记的所述数据位置中的数据保存在故障报表中。
【文档编号】G06F17/30GK105930348SQ201610211578
【公开日】2016年9月7日
【申请日】2016年4月6日
【发明人】梁建明, 熊飞, 陈明宇, 张雲瑞, 罗忠明
【申请人】广州广电运通金融电子股份有限公司, 广州广电运通信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1