根因分析方法及系统转让专利

申请号 : CN202111092026.X

文献号 : CN113806196B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜宁宁邱剑生方磊

申请人 : 北京九章云极科技有限公司

摘要 :

本发明提供了一种根因分析方法及系统,该方法包括:在获取到被监控服务对应的运行日志的情况下,确定运行日志中的异常日志;确定异常日志对应的异常模式;基于异常模式,将异常日志与预设的根因模式进行匹配,生成根因分析结果。本发明实施例提供的根因分析方法在确定异常日志后,基于异常日志对应的异常模式,将异常日志与预设的根因模式进行匹配,生成根因分析结果,上述根因分析的过程中,不需要人工对每个日志进行分析,这大大提高了根因分析的效率。

权利要求 :

1.一种根因分析方法,其特征在于,包括:在获取到被监控服务对应的运行日志的情况下,确定所述运行日志中的异常日志;

确定所述异常日志对应的异常模式;

基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果;

其中,所述确定所述异常日志对应的异常模式包括:将所述异常日志中的预设字段,确定为异常标签;

将所述异常标签表征的日志模式,确定为所述异常模式。

2.根据权利要求1所述的方法,其特征在于,所述基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果之前,所述方法包括:将所述异常标签和所述异常标签对应的值,确定为模式字段;

在所述异常日志中增加所述模式字段。

3.根据权利要求2所述的方法,其特征在于,所述基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果包括:将所述模式字段与所述预设的根因模式进行匹配;

根据与所述模式字段匹配的根因模式,生成根因分析结果。

4.根据权利要求1所述的方法,其特征在于,所述确定所述运行日志中的异常日志包括:

对所述运行日志进行解析,获得结构化日志;

根据预设的异常检测规则对所述结构化日志进行检测,得到所述异常日志。

5.根据权利要求4所述的方法,其特征在于,所述对所述运行日志进行解析,获得结构化日志包括:

根据所述运行日志的日志格式,确定与所述日志格式对应的解析模板;

根据所述解析模板,构建解析作业;

根据所述解析作业对所述运行日志进行解析。

6.根据权利要求4或5所述的方法,其特征在于,所述根据预设的异常检测规定对所述结构化日志进行检测,得到所述异常日志包括:从所述结构化日志中获取用于异常检测的日志描述信息;

根据所述日志描述信息以及所述预设的异常检测规则,确定异常日志。

7.根据权利要求6所述的方法,其特征在于,所述日志描述信息包括日志等级、错误码和目标字段中的至少一种,所述目标字段为所述结构化日志中与预设正则相匹配的字段;

所述根据所述日志描述信息以及所述预设的异常检测规则,确定异常日志包括:在所述结构化日志中的日志等级等于预设值的情况下,将所述结构化日志确定为所述异常日志;和/或

在所述结构化日志中的错误码大于预设阈值的情况下,将所述结构化日志确定为所述异常日志;和/或

在所述结构化日志包括所述目标字段的情况下,将所述结构化日志确定为所述异常日志。

8.根据权利要求1所述的方法,其特征在于,所述生成根因分析结果之后,所述方法包括:

根据所述根因分析结果,从所述被监控服务确定发生异常的服务为目标服务;

发送与所述目标服务相关联的告警信息。

9.根据权利要求1所述的方法,其特征在于,所述生成根因分析结果之后,所述方法包括:

根据用户设置的显示方式,显示所述根因分析结果;

其中,所述根因分析结果包括:根因模式、根因描述和异常日志。

10.根据权利要求9所述的方法,其特征在于,所述根据用户设置的显示方式,显示所述根因分析结果包括:

根据所述异常日志的全局流水号,对所述异常日志进行聚合显示;和/或根据所述异常模式,对所述异常日志进行聚合显示。

11.一种根因分析系统,其特征在于,包括:第一确定模块,用于在获取到被监控服务对应的运行日志的情况下,确定所述运行日志中的异常日志;

第二确定模块,用于确定所述异常日志对应的异常模式;

匹配模块,用于基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果;

其中,所述第二确定模块,具体用于:将所述异常日志中的预设字段,确定为异常标签;

将所述异常标签表征的日志模式,确定为所述异常模式。

12.根据权利要求11所述的系统,其特征在于,所述根因分析系统,还包括:第三确定模块,用于将所述异常标签和所述异常标签对应的值,确定为模式字段;

增加模块,用于在所述异常日志中增加所述模式字段。

13.根据权利要求12所述的系统,其特征在于,所述匹配模块,具体用于:将所述模式字段与所述预设的根因模式进行匹配;

根据与所述模式字段匹配的根因模式,生成根因分析结果。

14.根据权利要求11所述的系统,其特征在于,所述第一确定模块,具体用于:对所述运行日志进行解析,获得结构化日志;

根据预设的异常检测规则对所述结构化日志进行检测,得到所述异常日志。

15.根据权利要求14所述的系统,其特征在于,所述第一确定模块,还具体用于:根据所述运行日志的日志格式,确定与所述日志格式对应的解析模板;

根据所述解析模板,构建解析作业;

根据所述解析作业对所述运行日志进行解析。

16.根据权利要求14或15所述的系统,其特征在于,所述第一确定模块,还具体用于:从所述结构化日志中获取用于异常检测的日志描述信息;

根据所述日志描述信息以及所述预设的异常检测规则,确定异常日志。

17.根据权利要求16所述的系统,其特征在于,所述第一确定模块,还具体用于:在所述结构化日志中的日志等级等于预设值的情况下,将所述结构化日志确定为所述异常日志;和/或

在所述结构化日志中的错误码大于预设阈值的情况下,将所述结构化日志确定为所述异常日志;和/或

在所述结构化日志包括目标字段的情况下,将所述结构化日志确定为所述异常日志。

18.根据权利要求11所述的系统,其特征在于,所述根因分析系统,还包括:第四确定模块,用于根据所述根因分析结果,从所述被监控服务确定发生异常的服务为目标服务;

发送模块,用于发送与所述目标服务相关联的告警信息。

19.根据权利要求11所述的系统,其特征在于,所述根因分析系统,还包括:显示模块,用于根据用户设置的显示方式,显示所述根因分析结果;

其中,所述根因分析结果包括:根因模式、根因描述和异常日志。

20.根据权利要求19所述的系统,其特征在于,所述显示模块,具体用于:根据所述异常日志的全局流水号,对所述异常日志进行聚合显示;和/或根据所述异常模式,对所述异常日志进行聚合显示。

21.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑10中任一项所述的根因分析方法。

22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现如权利要求1‑10中任一项所述的根因分析方法。

说明书 :

根因分析方法及系统

技术领域

[0001] 本发明涉及运维处理技术领域,特别是涉及一种根因分析方法及系统。

背景技术

[0002] 目前,在分布式架构和多个服务协同工作的系统中,存在大量的跨服务调用情况,即一次服务请求可能会调用多个服务,然而,在该服务请求出现异常的情况下,调用路径上
的每个服务都会发送报错信息。
[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] 可选地,所述根据用户设置的显示方式,显示所述根因分析结果包括:
[0040] 根据所述异常日志的全局流水号,对所述异常日志进行聚合显示;和/或
[0041] 根据所述异常模式,对所述异常日志进行聚合显示。
[0042] 本发明实施例还提供了一种根因分析系统,所述系统包括:
[0043] 第一确定模块,用于在获取到被监控服务对应的运行日志的情况下,确定所述运行日志中的异常日志;
[0044] 第二确定模块,用于确定所述异常日志对应的异常模式;
[0045] 匹配模块,用于基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果。
[0046] 可选地,所述第二确定模块,具体用于:
[0047] 将所述异常日志中的预设字段,确定为异常标签;
[0048] 将所述异常标签表征的日志模式,确定为所述异常模式。
[0049] 可选地,所述根因分析系统,还包括:
[0050] 第三确定模块,用于将所述异常标签和所述异常标签对应的值,确定为模式字段;
[0051] 增加模块,用于在所述异常日志中增加所述模式字段。
[0052] 可选地,所述匹配模块,具体用于:
[0053] 将所述模式字段与所述预设的根因模式进行匹配;
[0054] 根据与所述模式字段匹配的根因模式,生成根因分析结果。
[0055] 可选地,所述第一确定模块,具体用于:
[0056] 对所述运行日志进行解析,获得结构化日志;
[0057] 根据预设的异常检测规则对所述结构化日志进行检测,得到所述异常日志。
[0058] 可选地,所述第一确定模块,还具体用于:
[0059] 根据所述运行日志的日志格式,确定与所述日志格式对应的解析模板;
[0060] 根据所述解析模板,构建解析作业;
[0061] 根据所述解析作业对所述运行日志进行解析。
[0062] 可选地,所述第一确定模块,还具体用于:
[0063] 从所述结构化日志中获取用于异常检测的日志描述信息;
[0064] 根据所述日志描述信息以及所述预设的异常检测规则,确定异常日志。
[0065] 可选地,所述第一确定模块,还具体用于:
[0066] 在所述结构化日志中的日志等级等于预设值的情况下,将所述结构化日志确定为所述异常日志;和/或
[0067] 在所述结构化日志中的错误码大于预设阈值的情况下,将所述结构化日志确定为所述异常日志;和/或
[0068] 在所述结构化日志包括目标字段的情况下,将所述结构化日志确定为所述异常日志。
[0069] 可选地,所述根因分析系统,还包括:
[0070] 第四确定模块,用于根据所述根因分析结果,从所述被监控服务确定发生异常的服务为目标服务;
[0071] 发送模块,用于发送与所述目标服务相关联的告警信息。
[0072] 可选地,所述根因分析系统,还包括:
[0073] 显示模块,用于根据用户设置的显示方式,显示所述根因分析结果;
[0074] 其中,所述根因分析结果包括:根因模式、根因描述和异常日志。
[0075] 可选地,所述显示模块,具体用于:
[0076] 根据所述异常日志的全局流水号,对所述异常日志进行聚合显示;和/或
[0077] 根据所述异常模式,对所述异常日志进行聚合显示。
[0078] 本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0079] 存储器,用于存放计算机程序;
[0080] 处理器,用于执行存储器上所存放的程序时,实现如上所述的根因分析方法。
[0081] 本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现如上所述的根因分析方法。
[0082] 本发明实施例中,在获取到被监控服务对应的运行日志的情况下,确定运行日志中的异常日志;确定异常日志对应的异常模式;基于异常模式,将异常日志与预设的根因模
式进行匹配,生成根因分析结果。本发明实施例提供的根因分析方法在确定异常日志后,基
于异常日志对应的异常模式,将异常日志与预设的根因模式进行匹配,生成根因分析结果,
上述根因分析的过程中,不需要人工对每个日志进行分析,这大大提高了根因分析的效率。

附图说明

[0083] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0084] 图1为本发明实施例中根因分析方法的流程示意图;
[0085] 图2为本发明实施例中根因分析方法的应用流程图;
[0086] 图3为本发明实施例中根因分析系统的结构示意图;
[0087] 图4为本发明实施例中一种电子设备的结构示意图。

具体实施方式

[0088] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
[0089] 请参阅图1,图1为本发明实施例中根因分析方法的流程示意图。本发明实施例提供的根因分析方法包括:
[0090] S101,在获取到被监控服务对应的运行日志的情况下,确定所述运行日志中的异常日志。
[0091] 上述被监控服务可以是使用分布式架构管理的所有服务,也可以是在多个服务协同工作的系统中的所有服务。
[0092] 应理解,一个服务在运行过程中,将不断的产生日志,并将日志存储至日志文件中,当一个日志文件的存储大小超过设定值时,服务会将产生的日志存储至另一日志文件
中。也就是说,一个服务对应多个日志文件,一个日志文件对应多个日志。
[0093] 本步骤中,可以在被监控服务上设置采集器,获取被监控服务对应的运行日志。
[0094] 应理解,在一次服务请求的过程中,最先运行的服务产生一个全局流水号,并在该服务调用下一个服务时,向被调用服务传递该全局流水号。例如,一次服务请求涉及5个服
务,那么,这5个服务对应的运行日志中均记载有用于表征该服务请求的全局流水号。
[0095] 可选的实施方式为,在获取到运行日志后,可以将这些运行日志发送至kafka中间件。
[0096] 进一步的,在获取到运行日志后,确定运行日志中的异常日志。上述异常日志为运行日志中的至少部分日志。
[0097] 本步骤中,运行日志包括正常日志和异常日志,如上所述,在一次服务请求过程中,每个服务都可能产生数条正常日志和异常日志。具体的如何确定异常日志的技术方案,
请参阅后续实施例。
[0098] S102,确定所述异常日志对应的异常模式。
[0099] 本步骤中,在确定异常日志后,可以根据异常日志中的部分字段,确定异常日志对应的异常模式。具体的技术方案,请参阅后续实施例。
[0100] S103,基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果。
[0101] 本步骤中,在确定异常模式后,可以将异常日志与预设的根因模式进行匹配。若一异常日志与预设的根因模式匹配成功,则将该异常日志确定为根因日志,将根因日志对应
的被监控服务确定为根因服务。上述根因日志为根因服务对应的运行日志,根因服务即在
一次服务请求过程中产生异常的服务。
[0102] 上述根因分析结果包括告警信息,以此提示运维人员存在出现异常的服务。根因分析结果也包括根因服务的位置信息,以此提示运维人员及时修复根因服务。
[0103] 本发明实施例中,在获取到被监控服务对应的运行日志的情况下,确定运行日志中的异常日志;确定异常日志对应的异常模式;基于异常模式,将异常日志与预设的根因模
式进行匹配,生成根因分析结果。本发明实施例提供的根因分析方法在确定异常日志后,基
于异常日志对应的异常模式,将异常日志与预设的根因模式进行匹配,生成根因分析结果,
上述根因分析的过程中,不需要人工对每个日志进行分析,这大大提高了根因分析的效率。
此外,可以实时获取被监控服务的最新运行日志,在被监控服务服务产生故障时,可以及时
的实现根因定位,并告警通知运维人员修复服务。
[0104] 可选地,所述确定所述异常日志对应的异常模式包括:
[0105] 将所述异常日志中的预设字段,确定为异常标签;
[0106] 将所述异常标签表征的日志模式,确定为所述异常模式。
[0107] 需要说明的是,每个异常日志至少包括全局流水号、日志产生时间和服务名称这几个字段。在一些实施例中,可以利用调用链来确定根因日志,这种情况下,要求每个异常
日志还包括调用服务、被调用服务、被调用方法和调用方法。
[0108] 本实施例中,可以将异常日志中的预设字段,确定为异常标签。可选的,可以将异常日志中的表征调用服务的字段确定为异常标签,那么,该异常日志对应的异常模式为调
用服务异常。
[0109] 可选地,所述基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果之前,所述方法包括:
[0110] 将所述异常标签和所述异常标签对应的值,确定为模式字段;
[0111] 在所述异常日志中增加所述模式字段。
[0112] 本实施例中,在确定异常标签后,可以将异常标签和异常标签对应的值,确定为模式字段;并在异常日志中增加模式字段。这样,在后续的异常日志与根因模式的匹配过程
中,可以使用异常日志中的模式字段与根因模式进行匹配。
[0113] 例如,异常日志中的异常标签为表征被调用服务的字段,该字段对应的值为null,表示异常日志对应的服务未调用任何服务,这种情况下,可以在异常日志中增加模式字段,
其中,该模式字段包括表征调用服务的字段,以及该字段对应的值。
[0114] 可选地,所述基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果包括:
[0115] 将所述模式字段与所述预设的根因模式进行匹配;
[0116] 根据与所述模式字段匹配的根因模式,生成根因分析结果。
[0117] 本实施例中,在异常日志中增加模式字段后,可以将增加模式字段的异常日志发送至消息总线,从数据库中读取预设的根因模式。将消息总线中的异常日志与数据库中的
根因模式进行实时流作业处理,即将模式字段与预设的根因模式进行匹配,生成根因分析
结果。
[0118] 在可选的实施例中,上述模式字段表征异常日志中的错误信息,若一服务的运行日志中记载的错误信息表示为内部错误,即错误信息表示为服务出现异常的原因是服务内
部出现了异常,这样,可以直接确定该服务是根因服务。
[0119] 可选地,所述确定所述运行日志中的异常日志包括:
[0120] 对所述运行日志进行解析,获得结构化日志;
[0121] 根据预设的异常检测规则对所述结构化日志进行检测,得到所述异常日志。
[0122] 本实施例中,可以使用预先设置的解析模板对运行日志进行解析,得到结构化后的异常日志,将结构化后的异常日志称为结构化日志。
[0123] 本实施例中,还预先设置有异常检测规则,使用异常检测规则对结构化日志进行检测,得到异常日志。具体的技术方案,请参阅后续实施例。
[0124] 可选地,所述对所述运行日志进行解析,获得结构化日志包括:
[0125] 根据所述运行日志的日志格式,确定与所述日志格式对应的解析模板;
[0126] 根据所述解析模板,构建解析作业;
[0127] 根据所述解析作业对所述运行日志进行解析。
[0128] 在对运行日志进行解析的过程中,读取运行日志的日志格式,确定该日志格式对应的解析模板。应理解,由于每个运行日志的日志格式可能不同,因此本实施例中预设有多
个解析模板。在确定解析模板后,使用该解析模板构建解析作业,使用该解析作业对运行日
志进行解析。
[0129] 可选的实施方式为,在确定运行日志对应的解析模板后,使用解析器对运行日志进行解析,得到结构化日志。其中,上述解析器可以是logstash解析器。
[0130] 示例性的,请参阅表一,表一记载有服务A、服务B和服务C,这三个异常服务对应的结构化后的异常日志。
[0131] 表一:
[0132]
[0133]
[0134] 其中,上述结构化日志内容包括日志时间、服务编码、日志级别、全局流水号、调用服务、被调用服务和错误码。
[0135] 在其他实施例中,上述结构化日志还可以包括服务器地址、调用方法、被调用方法、线程号和详细信息等日志内容。
[0136] 示例性的,请参阅表二,表二记载有全局流水号相同的3个服务对应的异常日志。
[0137] 表二:
[0138]
[0139] 如表二所示,每个异常日志对应的全局流水号均相同,均是G000001。对于每个异常日志,表二中记载有该异常日志的服务名、模式和该异常日志的日志内容,应理解,每个
异常日志的日志内容包括日志结构化后的字段和模式字段。
[0140] 可选地,所述根据预设的异常检测规定对所述结构化日志进行检测,得到所述异常日志包括:
[0141] 从所述结构化日志中获取用于异常检测的日志描述信息;
[0142] 根据所述日志描述信息以及所述预设的异常检测规则,确定异常日志。
[0143] 本实施例中,结构化日志还包括日志描述信息,从结构化日志中获取用于异常检测的日志描述信息;其中,日志描述信息包括日志等级、错误码和目标字段中的至少一种,
目标字段为结构化日志中与预设正则相匹配的字段。进一步的,根据日志描述信息以及预
设的异常检测规则之间的关联关系,确定结构化日志是否为异常日志。
[0144] 可选地,所述根据所述日志描述信息以及所述预设的异常检测规则,确定异常日志包括:
[0145] 在所述结构化日志中的日志等级等于预设值的情况下,将所述结构化日志确定为所述异常日志;和/或
[0146] 在所述结构化日志中的错误码大于预设阈值的情况下,将所述结构化日志确定为所述异常日志;和/或
[0147] 在所述结构化日志包括所述目标字段的情况下,将所述结构化日志确定为所述异常日志。
[0148] 如上所述,日志描述信息包括日志等级、错误码和目标字段中的至少一种。
[0149] 一种可选的实施方式为,读取结构化日志中的日志等级,若该日志等级等于预设值,则将该结构化日志确定为异常日志。
[0150] 示例性的,正常日志对应的日志等级为INFO,异常日志对应的日志等级为ERROR。在解析日志文件,得到结构化日志后,若结构化日志中日志等级字段为预设值,即日志等级
字段为ERROR,则确定该结构化日志为异常日志。
[0151] 另一种可选的实施方式为,读取结构化日志中的错误码,若该错误码大于预设阈值,则将该结构化日志确定为异常日志。
[0152] 另一种可选的实施方式为,将包括目标字段的结构化日志,确定为异常日志。
[0153] 应理解,结构化日志包括多个字段,目标字段是结构化日志中与预设正则相匹配的字段,也就是说,目标字段的格式符合预设正则的表达式,可以使用预设的正则表达式对
目标字段进行解析。
[0154] 应理解,上述目标字段可以是结构化日志中的一个字段,也可以是多个字段,在此不做具体限定。
[0155] 本实施例中,通过根据日志描述信息以及预设的异常检测规则,确定结构化日志是否异常,以此筛选得到运行日志中的异常日志。
[0156] 可选地,所述生成根因分析结果之后,所述方法包括:
[0157] 根据所述根因分析结果,从所述被监控服务确定发生异常的服务为目标服务;
[0158] 发送与所述目标服务相关联的告警信息。
[0159] 如上所述,根因模式是预设的,一种设置根因模式的方式为,预先将表征根因模式的字符串存储至数据库中,在对异常日志增加模式字段后,将模式字段与根因模式进行匹
配,确定根因日志,其中,根因日志为产生异常的服务对应的运行日志。
[0160] 示例性的,上述表征根因模式的字符串为callSystem:null,该根因模式表示被调用方为空。可以理解的是,若一服务对应的被调用方为空,即该服务未调用任何服务,则可
以基于该根因模式确定该服务对应的日志为异常日志。若存在一模式字段为callSystem:
null,确定该模式字段与上述根因模式匹配,将该模式字段对应的异常日志确定为根因日
志。
[0161] 应理解,对于模式字段的设置,应与根因模式相关联。例如,预先设置的根因模式用于表征根因日志的错误信息,则在对异常日志增加模式字段的这一步骤中,应当将异常
日志中用于表征错误信息的字段作为模式字段。
[0162] 本实施例中,在确定根因日志后,将根因日志对应的被监控服务确定为目标服务,并发送该目标服务相关联的告警信息。其中,该目标服务也就是在一次服务请求涉及的多
个服务中,产生异常的服务,该目标服务又称为根因服务。
[0163] 其中,可以通过显示告警页面的方式,向运维人员发送告警信息;或者,向运维人员发送包含告警信息的邮件;或者,发送告警信息至kafka中间件。
[0164] 本实施例依据预设的根因模式与模式字段进行匹配,确定根因日志,并将根因日志对应的被监控服务确定为目标服务,以此发送与目标服务相关联的告警信息,提醒运维
人员及时修复异常服务,提高了运维效率。
[0165] 可选地,所述生成根因分析结果之后,所述方法包括:
[0166] 根据用户设置的显示方式,显示所述根因分析结果;
[0167] 其中,所述根因分析结果包括:根因模式、根因描述和异常日志。
[0168] 应理解,每个根因模式对应一个唯一的根因标识,该根因标识用于指示一个唯一的根因模式。
[0169] 本实施例中,可以预先将根因模式存储至数据库中,应理解,若数据库存储有根因模式,则数据库会为每个根因模式分配一个唯一的根因标识,在确定根因日志之后,将该根
因标识添加至该根因日志的日志内容中。
[0170] 本实施例中,在确定根因分析结果后,显示根因分析结果,该根因分析结果可以以日志页面的方式进行显示。该日志页面用于展示增加根因标识后的根因日志、正常日志和
异常日志,该日志页面可以是ES搜索引擎对应的浏览器页面。其中,根因标识可以表征根因
模式和根因描述。
[0171] 应理解,上述根因日志对应的服务、正常日志对应的服务和异常日志对应的服务位于同一服务请求对应的调用路径上。
[0172] 应理解,在显示根因分析结果时,可以在日志页面将含有根因标识的根因日志置顶显示,以便运维人员查阅。
[0173] 可选地,所述根据用户设置的显示方式,显示所述根因分析结果包括:
[0174] 根据所述异常日志的全局流水号,对所述异常日志进行聚合显示;和/或
[0175] 根据所述异常模式,对所述异常日志进行聚合显示。
[0176] 一种可选的实施方式为,在以日志页面显示所述根因分析结果的情况下,可以根据异常日志的全局流水号,将全局流水号相同的正常日志和异常日志聚合显示。
[0177] 另一种可选的实施方式为,在以日志页面显示所述根因分析结果的情况下,可以将异常模式为根因模式的异常日志,即根因日志,置顶显示;将异常模式相同的异常日志聚
合显示。
[0178] 本实施例中,通过对异常日志进行聚合显示,丰富了异常日志的显示方式,也便于运维人员在日志页面对根因日志进行定位。
[0179] 请参阅图2,图2为本发明实施例中根因分析方法的应用流程图。如图2所示,将获取到的运行日志采集到kafka中间件,并使用日志解析器对运行日志进行解析,得到结构化
日志。确定结构化日志中的异常日志,将异常日志和正常日志存储至搜索引擎的索引中。同
时,将增加模式字段的异常日志转发至消息总线,从消息总线中读取异常日志,并从数据库
中读取预设的根因模式。将根因模式与模式字段进行匹配,确定根因日志,也就是图2中的
实时流作业的过程。在确定根因日志后,在搜索引擎的索引对根因日志中增加对应的根因
标识,进而显示日志页面。此外,在确定根因日志后,通过告警通道提醒运维人员对异常服
务进行修复。
[0180] 本发明实施例还提供了一种根因分析系统,如图3所示,根因分析系统200包括:
[0181] 第一确定模块201,用于在获取到被监控服务对应的运行日志的情况下,确定所述运行日志中的异常日志;
[0182] 第二确定模块202,用于确定所述异常日志对应的异常模式;
[0183] 匹配模块203,用于基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果。
[0184] 可选地,所述第二确定模块202,具体用于:
[0185] 将所述异常日志中的预设字段,确定为异常标签;
[0186] 将所述异常标签表征的日志模式,确定为所述异常模式。
[0187] 可选地,所述根因分析系统200,还包括:
[0188] 第三确定模块,用于将所述异常标签和所述异常标签对应的值,确定为模式字段;
[0189] 增加模块,用于在所述异常日志中增加所述模式字段。
[0190] 可选地,所述匹配模块203,具体用于:
[0191] 将所述模式字段与所述预设的根因模式进行匹配;
[0192] 根据与所述模式字段匹配的根因模式,生成根因分析结果。
[0193] 可选地,所述第一确定模块201,具体用于:
[0194] 对所述运行日志进行解析,获得结构化日志;
[0195] 根据预设的异常检测规则对所述结构化日志进行检测,得到所述异常日志。
[0196] 可选地,所述第一确定模块201,还具体用于:
[0197] 根据所述运行日志的日志格式,确定与所述日志格式对应的解析模板;
[0198] 根据所述解析模板,构建解析作业;
[0199] 根据所述解析作业对所述运行日志进行解析。
[0200] 可选地,所述第一确定模块201,还具体用于:
[0201] 从所述结构化日志中获取用于异常检测的日志描述信息;
[0202] 根据所述日志描述信息以及所述预设的异常检测规则,确定异常日志。
[0203] 可选地,所述第一确定模块201,还具体用于:
[0204] 在所述结构化日志中的日志等级等于预设值的情况下,将所述结构化日志确定为所述异常日志;和/或
[0205] 在所述结构化日志中的错误码大于预设阈值的情况下,将所述结构化日志确定为所述异常日志;和/或
[0206] 在所述结构化日志包括目标字段的情况下,将所述结构化日志确定为所述异常日志。
[0207] 可选地,所述根因分析系统200,还包括:
[0208] 第四确定模块,用于根据所述根因分析结果,从所述被监控服务确定发生异常的服务为目标服务;
[0209] 发送模块,用于发送与所述目标服务相关联的告警信息。
[0210] 可选地,所述根因分析系统200,还包括:
[0211] 显示模块,用于根据用户设置的显示方式,显示所述根因分析结果。
[0212] 可选地,所述显示模块,具体用于:
[0213] 根据所述异常日志的全局流水号,对所述异常日志进行聚合显示;和/或
[0214] 根据所述异常模式,对所述异常日志进行聚合显示。
[0215] 本发明实施例还提供了一种电子设备,如图4所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完
成相互间的通信。
[0216] 存储器303,用于存放计算机程序;
[0217] 处理器301,用于执行存储器303上所存放的程序时,所述计算机程序被所述处理器301执行时,用于在获取到被监控服务对应的运行日志的情况下,确定所述运行日志中的
异常日志;
[0218] 确定所述异常日志对应的异常模式;
[0219] 基于所述异常模式,将所述异常日志与预设的根因模式进行匹配,生成根因分析结果。
[0220] 可选地,所述计算机程序被所述处理器301执行时,还用于将所述异常日志中的预设字段,确定为异常标签;
[0221] 将所述异常标签表征的日志模式,确定为所述异常模式。
[0222] 可选地,所述计算机程序被所述处理器301执行时,还用于将所述异常标签和所述异常标签对应的值,确定为模式字段;
[0223] 在所述异常日志中增加所述模式字段。
[0224] 可选地,所述计算机程序被所述处理器301执行时,还用于将所述模式字段与所述预设的根因模式进行匹配;
[0225] 根据与所述模式字段匹配的根因模式,生成根因分析结果。
[0226] 可选地,所述计算机程序被所述处理器301执行时,还用于对所述运行日志进行解析,获得结构化日志;
[0227] 根据预设的异常检测规则对所述结构化日志进行检测,得到所述异常日志。
[0228] 可选地,所述计算机程序被所述处理器301执行时,还用于根据所述运行日志的日志格式,确定与所述日志格式对应的解析模板;
[0229] 根据所述解析模板,构建解析作业;
[0230] 根据所述解析作业对所述运行日志进行解析。
[0231] 可选地,所述计算机程序被所述处理器301执行时,还用于从所述结构化日志中获取用于异常检测的日志描述信息;
[0232] 根据所述日志描述信息以及所述预设的异常检测规则,确定异常日志。
[0233] 可选地,所述计算机程序被所述处理器301执行时,还用于在所述结构化日志中的日志等级等于预设值的情况下,将所述结构化日志确定为所述异常日志;和/或
[0234] 在所述结构化日志中的错误码大于预设阈值的情况下,将所述结构化日志确定为所述异常日志;和/或
[0235] 在所述结构化日志包括目标字段的情况下,将所述结构化日志确定为所述异常日志。
[0236] 可选地,所述计算机程序被所述处理器301执行时,还用于根据所述根因分析结果,从所述被监控服务确定发生异常的服务为目标服务;
[0237] 发送与所述目标服务相关联的告警信息。
[0238] 可选地,所述计算机程序被所述处理器301执行时,还用于根据用户设置的显示方式,显示所述根因分析结果;
[0239] 其中,所述根因分析结果包括:根因模式、根因描述和异常日志。
[0240] 可选地,所述计算机程序被所述处理器301执行时,还用于根据所述异常日志的全局流水号,对所述异常日志进行聚合显示;和/或
[0241] 根据所述异常模式,对所述异常日志进行聚合显示。
[0242] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard 
Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0243] 通信接口用于上述终端与其他设备之间的通信。
[0244] 存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。可选的,存储器还可
以是至少一个位于远离前述处理器的存储装置。
[0245] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器
(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific 
Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,
简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0246] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一实
施例所述的根因分析方法。
[0247] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一实施例所述的根因分析方法。
[0248] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序
产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或
部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计
算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质
中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机
指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字
用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或
数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者
是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以
是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘
Solid State Disk(SSD))等。
[0249] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0250] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
的部分说明即可。
[0251] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围
内。