发明内容
本说明书一个或多个实施例描述了一种排查系统故障的方法和装置,能够实现故障的自动排查。
第一方面,提供了一种排查系统故障的方法,系统的功能通过多应用间调用实现,方法包括:
当所述系统的功能出现异常时,获取所述系统的标准化日志;其中,所述标准化日志为按照所述系统的日志标准化匹配模板生成的;
基于所述标准化日志,查询所述多应用中每个应用的应用日志;
根据所述多应用的调用关系,确定应用日志的匹配顺序;
利用预先设定的匹配算法,按照所述匹配顺序依次确定每个应用对应的应用日志是否为异常日志,将最后确定出的应用对应的异常日志作为匹配日志;
基于所述匹配日志,处理系统故障。
在一种可能的实施方式中,所述标准化日志包含可以反映系统调用情况的参数信息,所述参数信息至少包括调用接口、调用方法、返回参数数据、调用结果数据、唯一追踪号和日志级别。
进一步地,所述调用结果数据,包括:
系统处理码或业务处理码。
进一步地,所述标准化日志包括唯一追踪号;
所述基于所述标准化日志,查询所述多应用中每个应用的应用日志,包括:
基于所述标准化日志中的唯一追踪号,查询所述多应用中每个应用的应用日志。
在一种可能的实施方式中,所述基于所述匹配日志,处理系统故障,包括:
基于所述匹配日志,在预先存储的匹配日志与故障处理方法的对应关系表中查找是否已存在相应的故障处理方法;
当判断出已存在相应的故障处理方法时,按照所述故障处理方法,处理系统故障。
进一步地,所述基于所述匹配日志,处理系统故障,还包括:
当判断出不存在相应的故障处理方法时,显示所述匹配日志;
接收人工输入的故障处理方法;
按照所述故障处理方法,处理系统故障。
进一步地,所述接收人工输入的故障处理方法之后,所述方法还包括:
将所述匹配日志与所述故障处理方法对应存储在匹配日志与故障处理方法的对应关系表中。
进一步地,所述接收人工输入的故障处理方法之后,所述方法还包括:
将所述匹配日志和人工输入的故障处理方法作为神经网络模型的一组训练样本,利用所述训练样本对所述神经网络模型进行训练。
在一种可能的实施方式中,所述基于所述匹配日志,处理系统故障,包括:
基于所述匹配日志,利用预先训练的神经网络模型确定故障处理方法;
按照所述故障处理方法,处理系统故障。
第二方面,提供了一种排查系统故障的装置,系统的功能通过多应用间调用实现,装置包括:
获取单元,用于当所述系统的功能出现异常时,获取所述系统的标准化日志;其中,所述标准化日志为按照所述系统的日志标准化匹配模板生成的;
查询单元,用于基于所述获取单元获取的标准化日志,查询所述多应用中每个应用的应用日志;
确定单元,用于根据所述多应用的调用关系,确定所述查询单元得到的应用日志的匹配顺序;
匹配单元,用于利用预先设定的匹配算法,按照所述确定单元确定的匹配顺序依次确定所述查询单元得到的每个应用对应的应用日志是否为异常日志,将最后确定出的应用对应的异常日志作为匹配日志;
处理单元,用于基于所述匹配单元得到的匹配日志,处理系统故障。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,在排查系统故障时,针对系统的功能通过多应用间调用实现这一特点,首先当所述系统的功能出现异常时,获取所述系统的标准化日志;其中,所述标准化日志为按照所述系统的日志标准化匹配模板生成的;然后基于所述标准化日志,查询所述多应用中每个应用的应用日志;再根据所述多应用的调用关系,确定应用日志的匹配顺序;以及利用预先设定的匹配算法,按照所述匹配顺序依次确定每个应用对应的应用日志是否为异常日志,将最后确定出的应用对应的异常日志作为匹配日志;最后基于所述匹配日志,处理系统故障。由上可见,本说明书实施例中,针对后台日志辨识度不高的问题,预先对日志进行了处理得到标准化日志,以利于根据匹配算法来确定异常日志,以及根据多应用的调用关系,确定匹配日志,再基于所述匹配日志,处理系统故障,从而实现故障的自动排查。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及对系统故障进行排查,系统的功能通过多应用间调用实现。参照图1,在一个示例中,系统的功能实现过程中,应用A先调用了应用B,应用B又调用了应用C,也就是说,应用A为顶层应用,应用C为底层应用。当系统的功能出现异常时,需要逐个排查各应用的应用日志,从而确定异常日志,并最终确定用于进行故障诊断的异常日志(即匹配日志)。例如,应用A对应日志A,应用B对应日志B,应用C对应日志C,最终确定的异常日志与匹配日志的对应关系如表一所示。
表一:异常日志与匹配日志的对应关系表
日志A |
日志B |
日志C |
匹配日志 |
异常日志 |
异常日志 |
异常日志 |
日志C |
异常日志 |
异常日志 |
正常日志 |
日志B |
异常日志 |
正常日志 |
正常日志 |
日志A |
参见表一,其中,当日志A、日志B和日志C均为异常日志时,说明底层应用即应用C出现了故障,确定匹配日志为日志C,后续可以根据日志C,处理系统故障。当日志A、日志B均为异常日志且日志C为正常日志时,说明应用B出现了故障,确定匹配日志为日志B,后续可以根据日志B,处理系统故障。当日志A为异常日志且日志B和日志C均为正常日志时,说明应用A出现了故障,确定匹配日志为日志A,后续可以根据日志A,处理系统故障。
本说明书实施例中,由于系统的功能通过多应用的调用实现,而后台日志的辨识度不高,因此排查系统故障时,预先针对系统的日志进行了处理,得到系统的标准化日志,以利于根据匹配算法来确定异常日志,以及根据多应用的调用关系,确定匹配日志,再基于所述匹配日志,处理系统故障,从而实现故障的自动排查。
图2示出根据一个实施例的排查系统故障的方法流程图,所述系统的功能通过多应用间调用实现。如图2所示,该实施例中排查系统故障的方法包括以下步骤:步骤21,当所述系统的功能出现异常时,获取所述系统的标准化日志;其中,所述标准化日志为按照所述系统的日志标准化匹配模板生成的;步骤22,基于所述标准化日志,查询所述多应用中每个应用的应用日志;步骤23,根据所述多应用的调用关系,确定应用日志的匹配顺序;步骤24,利用预先设定的匹配算法,按照所述匹配顺序依次确定每个应用对应的应用日志是否为异常日志,将最后确定出的应用对应的异常日志作为匹配日志;步骤25,基于所述匹配日志,处理系统故障。下面描述以上各个步骤的具体执行方式。
首先在步骤21,当所述系统的功能出现异常时,获取所述系统的标准化日志;其中,所述标准化日志为按照所述系统的日志标准化匹配模板生成的。可以理解的是,所述标准化日志用于排查系统故障,因此包含了排查系统故障所必须的信息。并且,针对不同的系统可以采取不同的日志标准化匹配模板,以生成该系统特有的标准化日志。
其中,系统的功能出现异常,可以包括如下两种情况:日志中有异常抛出,导致系统处理失败。或者,业务上有异常抛出,导致业务处理失败。
本说明书实施例中,所述标准化日志应包含可以反映系统调用情况的参数信息。在一个示例中,所述参数信息至少包括调用接口、调用方法、返回参数数据、调用结果数据、唯一追踪号和日志级别。
进一步地,其中,所述调用结果数据,可以包括:系统处理码或业务处理码。
其中,唯一追踪号用于追踪系统。
其中,日志级别可以用于指示系统运行状态。
在一个示例中,日志级别由低到高:debug<info<warn<Error<Fatal;
debug级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的信息;
info重要,输出信息用来反馈系统的当前状态给最终用户;
后三个,分别代表警告、错误、严重错误,这三者应该都在系统运行时检测到了一个不正常的状态。
warn,可修复,系统可继续运行下去;
Error,可修复性,但无法确定系统会正常的工作下去;
Fatal,相当严重,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话后果严重。
每一条错误日志都是独立的,尽可能完整、具体、直接说明何种场景下发生了什么错误,由什么原因导致,要采用什么措施或步骤。
错误日志是排查问题的重要手段之一。
接着在步骤22,基于所述标准化日志,查询所述多应用中每个应用的应用日志。
在一个示例中,所述标准化日志包括唯一追踪号;基于所述标准化日志中的唯一追踪号,查询所述多应用中每个应用的应用日志。
然后在步骤23,根据所述多应用的调用关系,确定应用日志的匹配顺序。
可以理解的是,多应用的调用关系决定了,哪个应用为顶层应用,哪个应用为底层应用,本说明书实施例中,不仅要确定异常日志,而且要确定最终用于故障处理的匹配日志,而确定匹配日志与多应用的调用关系紧密联系。
再在步骤24,利用预先设定的匹配算法,按照所述匹配顺序依次确定每个应用对应的应用日志是否为异常日志,将最后确定出的应用对应的异常日志作为匹配日志。
可以理解的是,确定匹配日志实质上就是尽量找到底层的异常日志,也就是说,找到系统故障的根源。
最后在步骤25,基于所述匹配日志,处理系统故障。
本说明书实施例中,在确定出匹配日志后,可以采取人工的方式处理系统故障,也可以自动处理故障。
在一个示例中,基于所述匹配日志,在预先存储的匹配日志与故障处理方法的对应关系表中查找是否已存在相应的故障处理方法;当判断出已存在相应的故障处理方法时,按照所述故障处理方法,处理系统故障。
进一步地,当判断出不存在相应的故障处理方法时,显示所述匹配日志;接收人工输入的故障处理方法;按照所述故障处理方法,处理系统故障。
进一步地,在所述接收人工输入的故障处理方法之后,将所述匹配日志与所述故障处理方法对应存储在匹配日志与故障处理方法的对应关系表中。
进一步地,在所述接收人工输入的故障处理方法之后,将所述匹配日志和人工输入的故障处理方法作为所述神经网络模型的一组训练样本,利用所述训练样本对所述神经网络模型进行训练。
在另一个示例中,基于所述匹配日志,利用预先训练的神经网络模型确定故障处理方法;按照所述故障处理方法,处理系统故障。
通过本说明书实施例提供的方法,在排查系统故障时,针对系统的功能通过多应用间调用实现这一特点,首先当所述系统的功能出现异常时,获取所述系统的标准化日志;其中,所述标准化日志为按照所述系统的日志标准化匹配模板生成的;然后基于所述标准化日志,查询所述多应用中每个应用的应用日志;再根据所述多应用的调用关系,确定应用日志的匹配顺序;以及利用预先设定的匹配算法,按照所述匹配顺序依次确定每个应用对应的应用日志是否为异常日志,将最后确定出的应用对应的异常日志作为匹配日志;最后基于所述匹配日志,处理系统故障。由上可见,本说明书实施例中,针对后台日志辨识度不高的问题,预先对日志进行了处理得到标准化日志,以利于根据匹配算法来确定异常日志,以及根据多应用的调用关系,确定匹配日志,再基于所述匹配日志,处理系统故障,从而实现故障的自动排查。
图3示出根据另一个实施例的排查系统故障的方法流程图,所述系统的功能通过多应用间调用实现。如图3所示,该方法包括如下处理过程:
日志标准化:设置系统的日志标准化匹配模板,通过技术手段自动匹配日志。
日志自动追踪:根据日志唯一追踪号追踪系统。
故障反馈:将最终导致故障的原因反馈,同时将有效日志(即异常日志)反馈。
智能推荐:通过积累人工处理故障操作,通过推荐算法,推送处理方式,完成故障排查。
本说明书实施例提供的方法可以自动排查,节省排查时间,提升工作效率,不依赖于排查人的经验情况,可快速定位。可根据现有处理方式,自动推荐,自主学习处理故障。
根据另一方面的实施例,还提供一种排查系统故障的装置,所述系统的功能通过多应用间调用实现。图4示出根据一个实施例的排查系统故障的装置的示意性框图。如图4所示,该装置400包括:
获取单元41,用于当所述系统的功能出现异常时,获取所述系统的标准化日志;其中,所述标准化日志为按照所述系统的日志标准化匹配模板生成的;
查询单元42,用于基于所述获取单元41获取的标准化日志,查询所述多应用中每个应用的应用日志;
确定单元43,用于根据所述多应用的调用关系,确定所述查询单元42得到的应用日志的匹配顺序;
匹配单元44,用于利用预先设定的匹配算法,按照所述确定单元43确定的匹配顺序依次确定所述查询单元42得到的每个应用对应的应用日志是否为异常日志,将最后确定出的应用对应的异常日志作为匹配日志;
处理单元45,用于基于所述匹配单元44得到的匹配日志,处理系统故障。
可选地,作为一个实施例,所述获取单元41获取的标准化日志包含可以反映系统调用情况的参数信息,所述参数信息至少包括调用接口、调用方法、返回参数数据、调用结果数据、唯一追踪号和日志级别。
进一步地,所述调用结果数据,包括:
系统处理码或业务处理码。
进一步地,所述标准化日志包括唯一追踪号;
所述查询单元42,具体用于基于所述标准化日志中的唯一追踪号,查询所述多应用中每个应用的应用日志。
可选地,作为一个实施例,所述处理单元45,具体用于:
基于所述匹配日志,在预先存储的匹配日志与故障处理方法的对应关系表中查找是否已存在相应的故障处理方法;
当判断出已存在相应的故障处理方法时,按照所述故障处理方法,处理系统故障。
进一步地,所述处理单元45,还用于:
当判断出不存在相应的故障处理方法时,显示所述匹配日志;
接收人工输入的故障处理方法;
按照所述故障处理方法,处理系统故障。
进一步地,所述装置还包括:
存储单元,用于在所述处理单元45接收人工输入的故障处理方法之后,将所述匹配日志与所述故障处理方法对应存储在匹配日志与故障处理方法的对应关系表中。
进一步地,所述装置还包括:
训练单元,用于在所述处理单元45接收人工输入的故障处理方法之后,将所述匹配日志和人工输入的故障处理方法作为神经网络模型的一组训练样本,利用所述训练样本对所述神经网络模型进行训练。
可选地,作为一个实施例,所述处理单元45,具体用于:
基于所述匹配日志,利用预先训练的神经网络模型确定故障处理方法;
按照所述故障处理方法,处理系统故障。
通过本说明书实施例提供的装置,在排查系统故障时,针对系统的功能通过多应用间调用实现这一特点,首先由获取单元41当所述系统的功能出现异常时,获取所述系统的标准化日志;其中,所述标准化日志为按照所述系统的日志标准化匹配模板生成的;然后由查询单元42基于所述标准化日志,查询所述多应用中每个应用的应用日志;再由确定单元43根据所述多应用的调用关系,确定应用日志的匹配顺序;以及由匹配单元44利用预先设定的匹配算法,按照所述匹配顺序依次确定每个应用对应的应用日志是否为异常日志,将最后确定出的应用对应的异常日志作为匹配日志;最后由处理单元45基于所述匹配日志,处理系统故障。由上可见,本说明书实施例中,针对后台日志辨识度不高的问题,预先对日志进行了处理得到标准化日志,以利于根据匹配算法来确定异常日志,以及根据多应用的调用关系,确定匹配日志,再基于所述匹配日志,处理系统故障,从而实现故障的自动排查。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2或图3所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2或图3所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。