日志解析的方法和装置与流程

文档序号:31731954发布日期:2022-10-05 02:13阅读:51来源:国知局
日志解析的方法和装置与流程

1.本说明书一个或多个实施例涉及计算机领域,尤其涉及日志解析的方法和装置。


背景技术:

2.网络设备、系统及服务程序等,在运行时都会产生一个叫日志(log)的事件记录;每一条记录都记载着日期、时间、使用者、动作或运行参数等相关操作的描述。以系统日志为例,通常是指系统所指定对象的某些操作和其操作结果按时间有序的集合。每个日志文件由日志记录组成,每条日志记录描述了一次单独的系统事件。通常情况下,系统日志是用户可以直接阅读的文本文件,其中包含了一个时间戳和一个信息或者子系统所特有的其他信息。
3.为了实现对网络设备、系统及服务程序等自身各类指标的可监测、可告警,通过日志解析来实现监测是通用方案。由于不同的日志记载的内容不同,现有技术中,通过人工编写的程序实现特定日志的日志解析,以实现对某些指标的监测,解析的准确性和效率都得不到保障。


技术实现要素:

4.本说明书一个或多个实施例描述了一种日志解析的方法和装置,能够确保解析的准确性和效率。
5.第一方面,提供了一种日志解析的方法,方法包括:
6.获取第一日志的日志实例;所述第一日志为标准化日志,其包括多个字段,相邻字段间通过第一符号来进行字段分割;
7.查找所述日志实例中的各个第一符号,将相邻的两个第一符号之间的日志确定为一个捕获字段;
8.根据各个捕获字段,生成用于监测所述第一日志的正则表达式,所述正则表达式包括待监测字符串。
9.在一种可能的实施方式中,所述生成用于监测所述第一日志的正则表达式,包括:
10.将各个捕获字段展示给用户;
11.接收用户的选择指令,根据所述选择指令从所述各个捕获字段中选择出至少一个第一捕获字段;
12.将所述至少一个第一捕获字段分别作为待监测字符串,生成用于监测所述第一日志的正则表达式。
13.进一步地,所述方法还包括:
14.接收用户的合并指令,根据所述合并指令将相邻的两个捕获字段合并为一个所述第一捕获字段。
15.在一种可能的实施方式中,所述生成用于监测所述第一日志的正则表达式之后,所述方法还包括:
16.响应于第一用户指令,指定所述待监测字符串的长度范围。
17.在一种可能的实施方式中,所述生成用于监测所述第一日志的正则表达式之后,所述方法还包括:
18.响应于第二用户指令,修改所述第一日志中的与所述待监测字符串对应的字段名称。
19.在一种可能的实施方式中,所述生成用于监测所述第一日志的正则表达式之后,所述方法还包括:
20.将所述正则表达式提供给数据采集器,以使所述数据采集器将所述第一日志与所述正则表达式中的待监测字符串进行匹配,以获取监测结果。
21.第二方面,提供了一种日志解析的装置,装置包括:
22.获取单元,用于获取第一日志的日志实例;所述第一日志为标准化日志,其包括多个字段,相邻字段间通过第一符号来进行字段分割;
23.查找单元,用于查找所述获取单元获取的日志实例中的各个第一符号,将相邻的两个第一符号之间的日志确定为一个捕获字段;
24.生成单元,用于根据所述查找单元得到的各个捕获字段,生成用于监测所述第一日志的正则表达式,所述正则表达式包括待监测字符串。
25.第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
26.第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
27.通过本说明书实施例提供的方法和装置,首先获取第一日志的日志实例;所述第一日志为标准化日志,其包括多个字段,相邻字段间通过第一符号来进行字段分割;然后查找所述日志实例中的各个第一符号,将相邻的两个第一符号之间的日志确定为一个捕获字段;最后根据各个捕获字段,生成用于监测所述第一日志的正则表达式,所述正则表达式包括待监测字符串。由上可见,本说明书实施例,采用正则表达式来监测第一日志,并且正则表达式的生成基于对日志实例的解析而得到,与纯人工手写的方式得到正则表达式相比,能够确保解析的准确性和效率。
附图说明
28.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
29.图1为本说明书披露的一个实施例的实施场景示意图;
30.图2示出根据一个实施例的日志解析的方法流程图;
31.图3示出根据一个实施例的日志解析的装置的示意性框图。
具体实施方式
32.下面结合附图,对本说明书提供的方案进行描述。
33.图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及日志解析,日志解析所针对的对象为标准化日志,其包括多个字段,相邻字段间通过预定符号来进行字段分割,其中,预定符号可以为分隔符或者特殊符号。参照图1,一个标准化日志中包括的字段分别为:时间、用户id、api名、关键参数、是否成功、执行时间。该日志中,各个字段之间通过空格分割。本说明书实施例,可以通过正则表达式监测该标准化日志,例如,通过正则表达式提取其中的字段,再基于提取的字段生成诸如展示用户某一段时间内调用api成功率的图表。
34.正则表达式,又称规则表达式,是一种文本模式,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式或规则的文本。
35.与通常地人工手写得到正则表达式的方式不同,本说明书实施例,通过快捷解析日志生成正则表达式,实现日志的标准化解析,确保生成正则表达式的准确性和减轻研发人员的工作量。
36.本说明书实施例提供的方案,可以应用于公有云场景,也可以应用于专有云场景,例如,可以实现智科产品专有云输出后,对产品自身各类指标的可监测、可告警。
37.图2示出根据一个实施例的日志解析的方法流程图,该方法可以基于图1所示的实施场景。如图2所示,该实施例中日志解析的方法包括以下步骤:步骤21,获取第一日志的日志实例;所述第一日志为标准化日志,其包括多个字段,相邻字段间通过第一符号来进行字段分割;步骤22,查找所述日志实例中的各个第一符号,将相邻的两个第一符号之间的日志确定为一个捕获字段;步骤23,根据各个捕获字段,生成用于监测所述第一日志的正则表达式,所述正则表达式包括待监测字符串。下面描述以上各个步骤的具体执行方式。
38.首先在步骤21,获取第一日志的日志实例;所述第一日志为标准化日志,其包括多个字段,相邻字段间通过第一符号来进行字段分割。可以理解的是,第一日志为具有一定数据格式的某一类日志,可以但不限于为应用程序日志、安全日志、系统日志中的任意一种。
39.本说明书实施例,第一日志可以包括多条记录,日志实例可以是上述多条记录中的任意一条记录。
40.其中,前述第一符号为预定符号,可以为分隔符或者特殊符号,例如,空格、*、#等等。
41.然后在步骤22,查找所述日志实例中的各个第一符号,将相邻的两个第一符号之间的日志确定为一个捕获字段。可以理解的是,第一符号通常为分隔符或者特殊符号,日志的各个字段中通常不会包含该第一符号。
42.本说明书实施例,由于日志示例包括多个字段,相应地,得到的捕获字段也为多个,其中,可能存在需要监测的字段和不需要监测的字段。
43.最后在步骤23,根据各个捕获字段,生成用于监测所述第一日志的正则表达式,所述正则表达式包括待监测字符串。可以理解的是,各个捕获字段通常是不需要全部监测的,在得到各个捕获字段之后,至少需要对各个捕获字段进行筛选,筛选出需要监测的捕获字段,基于筛选出的捕获字段,生成用于监测所述第一日志的正则表达式。
44.本说明书实施例,可以基于预设规则对各个捕获字段进行筛选,也可以采用人工筛选的方式对各个捕获字段进行筛选。
45.在一个示例中,所述生成用于监测所述第一日志的正则表达式,包括:
46.将各个捕获字段展示给用户;
47.接收用户的选择指令,根据所述选择指令从所述各个捕获字段中选择出至少一个第一捕获字段;
48.将所述至少一个第一捕获字段分别作为待监测字符串,生成用于监测所述第一日志的正则表达式。
49.该示例中,采用人工筛选的方式对各个捕获字段进行筛选,由于各个捕获字段是通过日志解析获得的,各个捕获字段的准确性能够得到保障,并且效率较高,用户只需从其中进行选择即可,大大减轻了用户的工作量。
50.进一步地,所述方法还包括:
51.接收用户的合并指令,根据所述合并指令将相邻的两个捕获字段合并为一个所述第一捕获字段。
52.该示例中,针对日志的字段内部也有第一符号的情况,在步骤22中会将该字段划分成多个捕获字段,通过合并的方式可以对该情况进行修正。
53.在一个示例中,所述生成用于监测所述第一日志的正则表达式之后,所述方法还包括:
54.响应于第一用户指令,指定所述待监测字符串的长度范围。
55.该示例中,通过指定所述待监测字符串的长度范围,能够显著提升正则表达式的解析速度。
56.在一个示例中,所述生成用于监测所述第一日志的正则表达式之后,所述方法还包括:
57.响应于第二用户指令,修改所述第一日志中的与所述待监测字符串对应的字段名称。
58.该示例中,通过用户指令,可以进一步优化正则表达式。
59.在一个示例中,所述生成用于监测所述第一日志的正则表达式之后,所述方法还包括:
60.将所述正则表达式提供给数据采集器,以使所述数据采集器将所述第一日志与所述正则表达式中的待监测字符串进行匹配,以获取监测结果。
61.该示例中,数据采集器支持正则表达式解析,其可以安装于服务器上,在获取监测结果之后,还可以将监测结果上传到监测平台。
62.通过本说明书实施例提供的方法,首先获取第一日志的日志实例;所述第一日志为标准化日志,其包括多个字段,相邻字段间通过第一符号来进行字段分割;然后查找所述日志实例中的各个第一符号,将相邻的两个第一符号之间的日志确定为一个捕获字段;最后根据各个捕获字段,生成用于监测所述第一日志的正则表达式,所述正则表达式包括待监测字符串。由上可见,本说明书实施例,采用正则表达式来监测第一日志,并且正则表达式的生成基于对日志实例的解析而得到,与纯人工手写的方式得到正则表达式相比,能够确保解析的准确性和效率。
63.根据另一方面的实施例,还提供一种日志解析的装置,该装置用于执行本说明书实施例提供的方法。图3示出根据一个实施例的日志解析的装置的示意性框图。如图3所示,
该装置300包括:
64.获取单元31,用于获取第一日志的日志实例;所述第一日志为标准化日志,其包括多个字段,相邻字段间通过第一符号来进行字段分割;
65.查找单元32,用于查找所述获取单元31获取的日志实例中的各个第一符号,将相邻的两个第一符号之间的日志确定为一个捕获字段;
66.生成单元33,用于根据所述查找单元32得到的各个捕获字段,生成用于监测所述第一日志的正则表达式,所述正则表达式包括待监测字符串。
67.可选地,作为一个实施例,所述生成单元33包括:
68.展示子单元,用于将各个捕获字段展示给用户;
69.接收子单元,用于接收用户的选择指令,根据所述选择指令从所述展示子单元展示的各个捕获字段中选择出至少一个第一捕获字段;
70.生成子单元,用于将所述接收子单元得到的至少一个第一捕获字段分别作为待监测字符串,生成用于监测所述第一日志的正则表达式。
71.进一步地,所述接收子单元,还用于接收用户的合并指令,根据所述合并指令将相邻的两个捕获字段合并为一个所述第一捕获字段。
72.可选地,作为一个实施例,所述装置还包括:
73.指定单元,用于在所述生成单元33生成用于监测所述第一日志的正则表达式之后,响应于第一用户指令,指定所述待监测字符串的长度范围。
74.可选地,作为一个实施例,所述装置还包括:
75.修改单元,用于在所述生成单元33生成用于监测所述第一日志的正则表达式之后,响应于第二用户指令,修改所述第一日志中的与所述待监测字符串对应的字段名称。
76.可选地,作为一个实施例,所述装置还包括:
77.提供单元,用于在所述生成单元33生成用于监测所述第一日志的正则表达式之后,将所述正则表达式提供给数据采集器,以使所述数据采集器将所述第一日志与所述正则表达式中的待监测字符串进行匹配,以获取监测结果。
78.通过本说明书实施例提供的装置,首先获取单元31获取第一日志的日志实例;所述第一日志为标准化日志,其包括多个字段,相邻字段间通过第一符号来进行字段分割;然后查找单元32查找所述日志实例中的各个第一符号,将相邻的两个第一符号之间的日志确定为一个捕获字段;最后生成单元33根据各个捕获字段,生成用于监测所述第一日志的正则表达式,所述正则表达式包括待监测字符串。由上可见,本说明书实施例,采用正则表达式来监测第一日志,并且正则表达式的生成基于对日志实例的解析而得到,与纯人工手写的方式得到正则表达式相比,能够确保解析的准确性和效率。
79.根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
80.根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所描述的方法。
81.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
82.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1