一种日志解析方法及装置的制造方法

文档序号:10687083阅读:319来源:国知局
一种日志解析方法及装置的制造方法
【专利摘要】本发明公开了一种日志解析方法及装置,在本发明实施例所述技术方案中,由于模板元素集合中包括多个模板元素,每个模板元素中包括字段输出名、该字段输出名对应的至少一个字符串信息的各自的正则表达式信息、以及字符串信息的预置输出数据类型;用户可以从模板元素集合中选择至少一个预置模板元素构成解析模板,而对待解析日志的解析是根据解析模板解析的,解析模板是用户可以根据模板元素集合随意配置的,所以本发明实施例提供的日志解析方法,无需为特定数据格式的待解析日志开发并维护日志解析应用程序,故此,能够适用任意数据格式的字符串待解析日志,也能够提高日志解析应用程序的开发效率,并降低维护工作量。
【专利说明】
一种日志解析方法及装置
技术领域
[0001 ]本发明涉及日志分析领域,尤其涉及一种日志解析方法及装置。
【背景技术】
[0002] 随着海量日志分析挖掘技术的发展,如何解析设备或系统的日志备受业界重视。 日志解析的目的,是将待解析日志(即原始日志)中的数据通过某种逻辑组织成格式化的数 据交换格式,以便于提供给下游系统进行分析和挖掘。
[0003] 目前,字符串日志,具有体积小、易压缩、更便于网络传输的优势,但是在带来诸多 优势的同事,也给日志解析带来很多不便。
[0004] 由于待解析日志的数据格式多种多样,现有的日志解析方法中,一般针对一种数 据格式的待解析日志开发一套对应的日志解析应用程序。由此,现有技术存在以下缺陷:
[0005] 1 )、一个日志解析应用程序只能解析对应的数据格式的待解析日志,而且每个解 析应用程序都需要维护,导致维护工作量大。
[0006] 2)、当待解析日志的数据格式改变时,需要开发人员重新开发日志解析应用程序。
[0007] 3)、当出现新的数据格式的待解析日志时,需要开发新的日志解析应用程序。
[0008]故此,现有的日志解析方法适用范围小,日志解析应用程序的开发效率低,周期 长,维护工作量大。

【发明内容】

[0009] 本发明实施例提供了一种日志解析方法及装置,用以解决目前存在的由于每种数 据格式的待解析日志对应一种日志解析应用程序,使得无现有的日志解析方法适用范围 小,日志解析应用程序的开发效率低,周期长,维护工作量大等的问题。
[0010] 本发明实施例提供了一种日志解析方法,包括:
[0011] 获取解析模板;其中,解析模板中包括解析后的预置数据交换格式以及从模板元 素集合中选择的至少一个预置模板元素;每个预置模板元素中包括字段输出名、该字段输 出名对应的至少一个字符串信息的各自的正则表达式信息、以及字符串信息的预置输出数 据类型;
[0012] 针对每个预置模板元素中的每个正则表达式信息,从待解析日志中提取与该正则 表达式信息匹配的字符串信息;并将匹配的字符串信息配置为预置输出数据类型;
[0013] 按照预置数据交换格式,输出解析模板中的每个预置模板元素的字段输出名以及 每个字段输出名对应的字符串信息。
[0014] 进一步地,本发明实施例还提供了一种日志解析装置,包括:
[0015] 解析模板获取模块,用于获取解析模板;其中,解析模板中包括解析后的预置数据 交换格式以及从模板元素集合中选择的至少一个预置模板元素;每个预置模板元素中包括 字段输出名、该字段输出名对应的至少一个字符串信息的各自的正则表达式信息、以及字 符串信息的预置输出数据类型;
[0016] 解析模块,用于针对每个预置模板元素中的每个正则表达式信息,从待解析日志 中提取与该正则表达式信息匹配的字符串信息;并将匹配的字符串信息配置为预置输出数 据类型;
[0017] 输出模块,用于按照预置数据交换格式,输出解析模板中的每个预置模板元素的 字段输出名以及每个字段输出名对应的字符串信息。
[0018] 本发明有益效果如下:在本发明实施例所述技术方案中,由于模板元素集合中包 括多个模板元素,每个模板元素中包括字段输出名、该字段输出名对应的至少一个字符串 信息的各自的正则表达式信息、以及字符串信息的预置输出数据类型;用户可以从模板元 素集合中选择的至少一个预置模板元素构成解析模板,而对待解析日志的解析是根据解析 模板解析的,解析模板是用户可以根据模板元素集合随意配置的,所以本发明实施例提供 的日志解析方法,无需为特定数据格式的待解析日志开发并维护日志解析应用程序,故此, 能够适用任意数据格式的待解析日志,也能够提高日志解析应用程序的开发效率,并降低 维护工作量。
【附图说明】
[0019] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0020] 图1所示为本发明实施例一中所述日志解析方法的流程示意图;
[0021 ]图2所示为本发明实施例一中所述模板元素的示意图;
[0022] 图3所示为本发明实施例一中所述解析模板的示意图;
[0023] 图4所示为本发明实施例一中所述字段模板的示意图;
[0024] 图5所示为本发明实施例二中所述日志解析装置的结构示意图。
【具体实施方式】
[0025] 本发明实施例提供了一种日志解析方法及装置,适用于字符串日志。在本发明实 施例所述技术方案中,由于模板元素集合中包括多个模板元素,每个模板元素中包括字段 输出名、该字段输出名对应的至少一个字符串信息的各自的正则表达式信息、以及字符串 信息的预置输出数据类型;用户可以从模板元素集合中选择的至少一个预置模板元素构成 解析模板,而对待解析日志的解析是根据解析模板解析的,解析模板是用户可以根据模板 元素集合随意配置的,所以本发明实施例提供的日志解析方法,无需为特定数据格式的待 解析日志开发并维护日志解析应用程序,故此,能够适用任意数据格式的字符串类型待解 析日志,也能够提高日志解析应用程序的开发效率,并降低维护工作量。
[0026] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进 一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施 例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的 所有其它实施例,都属于本发明保护的范围。
[0027] 实施例一:
[0028] 如图1所示,其为本发明实施例一中所述日志解析方法的流程示意图,所述日志解 析方法可包括以下步骤:
[0029] 步骤101:获取解析模板;其中,解析模板中包括解析后的预置数据交换格式以及 从模板元素集合中选择的至少一个预置模板元素;每个预置模板元素中包括字段输出名、 该字段输出名对应的至少一个字符串信息的各自的正则表达式信息、以及字符串信息的预 置输出数据类型。
[0030] 其中,在一个实施例中,预置数据交换格式例如是XML(Extensible Markup Language,可扩展标记语言)、JS0N( JavaScript Ob ject Notation JavaScript对象表不 法)、YAML(Yet Another Markup Language,另一种标记语言)等中的其中一种。需要说明的 是,任何预置数据交换格式均适用于本发明实施例,本发明对此不做限定。
[0031]其中,在一个实施例中,预置输出数据类型例如是以下中的任一种:int(Integer, 整数类型)、String(字符串)、long(整型)、boolean(布尔型)、f loat(浮点型)、double(双精 度浮点型)、date(日期型)等。
[0032]其中,在一个实施例中正则表达式信息可以是一个具体的正则表达式,也可以是 正则表达式的标识,具体实施时,可以根据实际需要设定,本发明实施例对此不做限定。
[0033]其中,在一个实施例中,模板元素集合的存储形式可以是数据库也可以是文件,本 发明对此不做限定。
[0034]步骤102:针对每个预置模板元素中的每个正则表达式信息,从待解析日志中提取 与该正则表达式信息匹配的字符串信息;并将匹配的字符串信息配置为预置输出数据类 型。
[0035]步骤103:按照预置数据交换格式,输出解析模板中的每个预置模板元素的字段输 出名以及每个字段输出名对应的字符串信息。
[0036]为便于理解,下面对本发明实施例提供的日志解析方法进行进一步地说明,具体 的,包括以下内容:
[0037] 1)、关于模板元素与解析模板:
[0038] 其中,在一个实施例中,可以通过预先定义字段模板,每个字段模板均有对应的正 则表达式,该正则表达式可用于提取待解析日志中的字符串信息。故此,本发明实施例中为 便于配置解析模板,正则表达式信息为字段模板名;针对任一预置模板元素,根据以下方法 配置该预置模板元素,包括步骤A1-步骤A4:
[0039] 步骤A1:接收对字段模板集合中的至少一个字段模板名的选择指令;其中,每个字 段模板名对应一个字段模板,每个字段模板均有对应的正则表达式。
[0040] 其中,在一个实施例中,字段模板集合的存储形式可以是数据库也可以是文件,本 发明对此不做限定。
[0041] 步骤A2:将选择的字段模板名对应的字段模板作为预置字段模板,并接收针对预 置模板元素的字段输出名的命名指令。
[0042] 步骤A3:接收对输出数据类型的设定指令。
[0043] 其中,在一个实施例中步骤A2与步骤A3的执行顺序不受限。
[0044] 步骤A4:根据命名指令中包括的字段输出名、设定指令中包括的预置输出数据类 型以及预置字段模板,生成预置模板元素。
[0045] 为便于理解,这里举例对步骤A1-步骤A4进行说明:假设字段模板集合如表1所示。 其中,需要说明的是表1仅用来说明本发明实施例,并不用于限定本发明实施例,具体实施 时,可以根据实际需要设计字段模板集合,本发明实施例对此并不限定。
[0046] 表1字段模板集合示例
[0048]若选择的字段模板名为Ml和M2,则字段模板Ml、M2均为预置模板元素的预置字段 模板。若命名指令中包括的字段输出名为U,设定指令中包括的输出数据类型为String,则 最终的生成的预置模板元素可以表示为如图2所示:在图2中201表示字段模板分割符,用于 区分出不同的字段模板名;202表示字段输出名标识符,用于识别出字段输出名;203表示预 置输出数据类型标识符,用于识别出预置输出数据类型。具体实施时,201可用";"表示;202 可用":"表示;203可用表示,则预置模板元素U可表示为:
[0049] Ml;M2:U;String
[0050]具体识别时,可以根据各符号以及该符号出现的位置识别出预置模板元素中的字 段模板名、字段输出名以及预置输出数据类型。例如,预置模板元素U中":"前面的";"均为 字段模板分割符;":"后面的为预置输出数据类型。
[0051]需要说明的是,一个模板元素中可以包括一个字段模板,也可以包括两个或两个 以上的字段模板,本发明实施例对此不做限定。
[0052]有了模板元素之后,即可以配置解析模板,解析模板中可包括至少一个预置模板 元素。当解析模板中包括多个预置模板元素时,为了便于识别出各预置模板元素,本发明实 施例中解析模板中包括模板元素起始符和模板元素分割符。则解析模板的示意图可以如图 3所示:其中,301表示模板元素起始符用于区分出预置数据交换格式以及模板元素;302表 示模板元素分割符,用于当解析模板中包括多个预置模板元素时,区分出各模板元素;U1表 示一个预置模板元素,U2表示另一个预置模板元素。具体实施时,可以用"〈>"表示模板元素 起始符;用"%"表示模板元素分割符,若预置数据交换格式为JS0N,则图3所示的解析模板 可表示为:
[0053] output_format: json<%Ul %U2>
[0054]其中,在一个实施例中,解析模板包括的预置模板元素,可以用预置模板元素的标 识表示(例如将预置模板元素命名为U1,U1则为预置模板元素的标识),也可以用预置模板 元素(例如上例中的Ml ;M2:U;String)表示。
[0055] 2)、关于字段模板
[0056] 其中,在一个实施例中为了便于用户通过自动模板设置出解析模板,本发明实施 例中,字段模板集合中的字段模板可以根据用户需求配置。故此,本发明实施例中还包括以 下修改字段模板集合的方法,具体可执行为:接收对字段模板集合的编辑指令,所述编辑指 令包括以下中的任一种:删除字段模板集合中第一指定字段模板的删除指令、向字段模板 集合中添加字段模板的添加指令、修改字段模板集合中第二指定字段模板的修改指令。
[0057]其中,在一个实施例中,为便于用户根据已有的字段模板生成新的字段模板对应 的正则表达式,本发明实施例中新的字段模板还可以嵌套至少一个已有的字段模板,以使 新的字段模板的正则表达式为其嵌套的至少一个已有的字段模板的正则表达式的集合。 [0058]为便于理解,这里举例说明,例如如图4所示为字段模板的示意图:401表示字段模 板名与其对应的正则表达式的分割符,用于区分出字段模板名和其对应的正则表达式。具 体实施时401可以为空格符。则字段模板的表达形式可以为:
[0059]字段模版名[空格符]正则表达式
[0060] 例如名称为DATA的字段模板,其正则表达式若为(表示与任意字符串匹配), 则该字段模板可以表示为:
[0061] DATA.*?
[0062]若新的字段模板(字段模板名记为F0US)需要嵌套名称为DATA的字段模板,则新的 字段模板F0US可表不为:
[0063] F0US"%{DATA}"
[0064]其中,F0US表示新的字段模板名,DATA表示已有的字段模板的字段模板名。若需要 嵌套多个已有的字段模板,则同上面所述的原理,添加字段模板分割符以区分开嵌套的各 字段模板即可,在此不再赘述。
[0065] 3)、关于日志解析
[0066] 通过上述第1)以及第2)部分的说明,本发明实施例中为了便于快速的进行日志解 析,在所述获取待解析日志的解析模板之后,可以执行以下步骤:
[0067] 步骤B1:提取解析模板中的每个预置模板元素包括的字段输出名,生成字段输出 名集合;并,提取每个预置模板元素包括的预置输出数据类型,生成预置输出数据类型集 合。
[0068] 步骤B2:提取解析模板中的每个预置模板元素包括的每个字段模板名,生成字段 模板名集合;并建立字段模板名、预置输出数据类型以及字段输出名三者之间的三维对应 关系。
[0069]其中,步骤B1与步骤B2的执行顺序可以不受限。
[0070]其中,在一个实施例中个,三维对应关系可以包括以下两种方式:
[0071]方式一,建立三维对应关系表:上述三个集合(包括字段输出名集合、预置输出数 据类型集合以及字段模板名集合)作为上述集合之外的信息,也可以包含在上述集合中。
[0072] 方式二、可以使属于同一预置模板元素的字段输出名,预置输出数据类型和字段 模板名具有相同的关系标识,上述三个集合的元素中具有相同关系标识的元素具有对应关 系。
[0073] 例如,若不同预置模板元素的字段输出名不同,那么该关系标识便可以是字段输 出名;当然具体实施时也可以为每一个预置模板元素分配一个唯一的序号,那么字段输出 名集合中各字段输出名均与对应的序号关联存储,同理,预置输出数据类型集合中的各预 置输出数据类型与对应的序号关联存储;字段模板名集合中各字段模板名与对应的序号关 联存储。举例来说,若解析模板中有两个预置模板元素,为其中一个预置模板元素分配序号 1,另一个预置模板元素分配序号2。若假设:序号为1的预置模板元素包括的字段输出名为 U1,预置输出数据类型为int(假设用type_0表示int)、字段模板名包括ID(IDentity,身份 标识号码)分别为0和1的两个;序号为2的预置模板元素包括的字段输出名为U2,预置输出 数据类型为string(假设用type_l表示string、字段模板名包括10(1〇6111:;^7,身份标识号 码)分别为2和3的两个。那么字段输出名集合可表示为:
[0074] (1,2)
[0075] 其中1表示序号为1的预置模板元素,2表示序号为2的预置模板元素。
[0076] 预置输出数据类型集合可表示为:
[0077] (l_type_0,2_type_l)
[0078]其中,l_type_0表示序号为1的预置模板元素的预置输出数据类型为type_0,2_ type_l表示序号为2的预置模板元素的预置输出数据类型为type_l。
[0079]字段模板名集合可表示为:
[0080] (1_ID_0,1_ID_1,2_ID_2,2_ID_3)
[0081]其中,1_ID_0表示ID为0的字段模板名属于序号为1的预置模板元素;同理,1_ID_1 表示ID为1的字段模板名属于序号为1的预置模板元素;2_ID_2表示ID为2的字段模板名属 于序号为2的预置模板元素;2_ID_3表示ID为3的字段模板名属于序号为2的预置模板元素。
[0082] 由上述例子可知,对于ID为0的字段模板名其对应的预置输出数据类型,便为包含 序号1的预置输出数据类型,这样通过一个序号便可以建立三维对应关系。
[0083] 当然,由于字段输出名与预置输出数据类型为一一对应关系,本发明实施例中还 可以不添加关系标识,而仅凭在集合中排序建立三维对应关系,由于一个预置模板元素可 能包括至少一个字段模板名,那么字段模板名中集合中的元素可以是多维元素。例如(ID_ 〇, ID j)为字段模板名中的一个元素,这个元素的含义是该元素中包括ID分别为0和1的两 个字段模板名。这样,仅凭在集合中的排序位置,可以确定三维对应关系。例如,针对一个预 置模板元素,其字段输出名位于字段输出名集合的第一位,则相应的其预置输出数据类型 位于预置输出数据类型集合的第一位,其包含的所有字幕模板名组成一个元素位于字段模 板名集合的第一位。这样,三个集合中位于相同排序位置的元素属于同一预置模板元素,便 有了三维对应关系。
[0084] 需要说明的是,任何能够表示本发明实施例所述三维对应关系的现有技术的方法 均适用于本发明实施例,本发明对此不做限定。
[0085] 有了上述三维对应关系后,步骤102可以具体包括以下步骤:
[0086] 步骤C1:遍历字段模板名集合中的每个字段模板,根据每个字段模板对应的正则 表达式从待解析日志中提取与该正则表达式匹配的字符串信息。
[0087] 步骤C2:针对提取的每个字符串信息,根据三维对应关系,确定该字符串信息对应 的字段模板对应的预置输出数据类型,并将该字符串信息的数据类型配置为确定的预置输 出数据类型。
[0088] 由此,在执行步骤103之前,还可以根据以下方法确定每个字段输出名对应的字符 串信息,具体的:根据三维对应关系,确定字段输出名集合中的每个字段输出名对应的字符 串fg息。
[0089]日志解析前,会根据使用者解析模版的配置生成并缓存上述三个集合及三维对应 关系,避免在解析每条或者每批日志时都要重新组织三维对应关系,通过牺牲了少量的临 时存储空间来换取日志解析效率的整体提升,特别适用于当前大数据日志的解析处理。
[0090]其中,在一个实施例中,一种解析模板不能适用于所有的日志,所以具体实施时可 以根据实际需要配置不同的解析模板。那么,针对一特定解析模板,若待解析日志并不适用 这一解析模板,那么日志解析处理将是无用功,这将浪费处理资源。故此,本发明实施例中, 为了节约处理资源,本发明实施例中获取解析模板之后,还可以判断待解析日志与解析模 板是否匹配,若匹配则继续执行步骤102。其中,判断待解析日志与解析模板是否匹配的方 法可以包括以下中的任一方法:
[0091 ]方法一,可以为每一个解析模板分配一个ID,在生成日志时,在日志中添加使用的 解析模板ID,这样,获取待解析日志后可以判断待解析日志与解析模板的解析模板ID是否 相同,若相同,则确定待解析日志与解析模板匹配;否则不匹配。
[0092]方法二,可以在生成字段模板名集合之后,包括以下步骤:
[0093]步骤D1:根据字段模板名集合中的至少一个字段模板各自对应的正则表达式,生 成日志检测正则表达式。
[0094] 步骤D2:检测待处理日志与日志检测正则表达式是否匹配。
[0095]步骤D3:若匹配,则确定待解析日志与解析模板匹配。
[0096] 其中,可以从字段模板名集合中选择预设数量的字段模板名,由选择的字段模板 名对应的字段模板的正则表达式组成正则表达式集合作为日志检测正则表达式。例如,选 择10个字段模板,则日志检测正则表达式为这10个字段模板的正则表达式集合,当待解析 日志与这10个字段模板的正则表达式集合匹配时则确定待解析日志与解析模板匹配。其中 的预设数量可以为比例(例如50%,表示选择字段模板名集合中50%的字段模板名),当然 预设数量越多则判断待解析日志与解析模板是否匹配的准确性越高。
[0097] 其中,为了提高判断的效率,本发明实施例中,还可以预先获取解析模板使用的至 少一个日志。然后,针对每个日志,步骤D1可执行为:将该日志中与解析模板中每个字段模 板的正则表达式匹配的字符串信息替换成表示与任何字符串匹配的正则表达式,由此生成 日志检测正则表达式。例如,若日志内容为:abed;其中,解析模板中共包括两个字段模板, 一个字段模板的正则表示式与a匹配,另一个自动模板的正则表达式与d匹配。则将日志中 的a和d均替换为与任何字符串匹配的正则表达式(即.*?),最终得到的日志检测正则表达 式为:.*?bc.*?。后续进行日志解析时,若待解析日志与该日志检测正则表达式匹配,则确 定待解析日志与解析模板匹配,之后可以继续执行步骤102。
[0098] 综上,本发明实施例中,由于模板元素集合中包括多个模板元素,每个模板元素中 包括字段输出名、该字段输出名对应的至少一个字符串信息的各自的正则表达式信息、以 及字符串信息的预置输出数据类型;用户可以从模板元素集合中选择的至少一个预置模板 元素构成解析模板,而对待解析日志的解析是根据解析模板解析的,解析模板是用户可以 根据模板元素集合随意配置的,所以本发明实施例提供的日志解析方法,无需为特定数据 格式的待解析日志开发并维护日志解析应用程序,故此,能够适用任意数据格式的待解析 日志,也能够提高日志解析应用程序的开发效率,并降低维护工作量。
[0099] 实施例二
[0100] 基于相同的发明构思,本发明实施例还提供一种日志解析装置,如图5所示,为该 装置的结构示意图,包括:
[0101] 解析模板获取模块501,用于获取解析模板;其中,解析模板中包括解析后的预置 数据交换格式以及从模板元素集合中选择的至少一个预置模板元素;每个预置模板元素中 包括字段输出名、该字段输出名对应的至少一个字符串信息的各自的正则表达式信息、以 及字符串信息的预置输出数据类型;
[0102] 解析模块502,用于针对每个预置模板元素中的每个正则表达式信息,从待解析日 志中提取与该正则表达式信息匹配的字符串信息;并将匹配的字符串信息配置为预置输出 数据类型;
[0103] 输出模块503,用于按照预置数据交换格式,输出解析模板中的每个预置模板元素 的字段输出名以及每个字段输出名对应的字符串信息。
[01 04]其中,在一个实施例中,所述正则表达式信息为字段模板名;所述装置还包括:
[0105] 模板元素配置模块,用于针对任一预置模板元素,根据以下装置配置该预置模板 元素:
[0106] 接收对字段模板集合中的至少一个字段模板名的选择指令;其中,每个字段模板 名对应一个字段模板,每个字段模板均有对应的正则表达式;
[0107] 将选择的字段模板名对应的字段模板作为预置字段模板,并接收针对预置模板元 素的字段输出名的命名指令;并,
[0108] 接收对输出数据类型的设定指令;
[0109] 根据命名指令中包括的字段输出名、设定指令中包括的预置输出数据类型以及预 置字段模板,生成预置模板元素。
[0110] 其中,在一个实施例中,所述装置还包括:
[0111] 编辑模块,用于接收对字段模板集合的编辑指令,所述编辑指令包括以下中的任 一种:删除字段模板集合中第一指定字段模板的删除指令、向字段模板集合中添加字段模 板的添加指令、修改字段模板集合中第二指定字段模板的修改指令。
[0112] 其中,在一个实施例中,所述装置还包括:
[0113] 提取模块,用于所述解析模板获取模块获取解析模板之后,提取解析模板中的每 个预置模板元素包括的字段输出名,生成字段输出名集合;并,提取每个预置模板元素包括 的预置输出数据类型,生成预置输出数据类型集合;以及,提取解析模板中的每个预置模板 元素包括的每个字段模板名,生成字段模板名集合;并建立字段模板名、预置输出数据类型 以及字段输出名三者之间的三维对应关系。
[0114] 其中,在一个实施例中,所述解析模块,具体包括:
[0115] 字符串信息提取单元,用于遍历字段模板名集合中的每个字段模板,根据每个字 段模板对应的正则表达式从待解析日志中提取与该正则表达式匹配的字符串信息;
[0116] 数据类型配置单元,用于针对提取的每个字符串信息,根据三维对应关系,确定该 字符串信息对应的字段模板对应的预置输出数据类型,并将该字符串信息的数据类型配置 为确定的预置输出数据类型;
[0117] 所述装置还包括:
[0118] 对应确定模块,用于所述输出模块按照预置数据交换格式,输出解析模板中的每 个预置模板元素的字段输出名以及每个字段输出名对应的字符串信息之前,根据三维对应 关系,确定字段输出名集合中的每个字段输出名对应的字符串信息。
[0119] 其中,在一个实施例中,所述装置还包括:
[0120]判断待解析日志与解析模板是否匹配;
[0121 ]若匹配,则执行所述针对每个预置模板元素中的每个正则表达式信息,从待解析 日志中提取与该正则表达式信息匹配的字符串信息的步骤。
[0122] 综上,本发明实施例中,由于模板元素集合中包括多个模板元素,每个模板元素中 包括字段输出名、该字段输出名对应的至少一个字符串信息的各自的正则表达式信息、以 及字符串信息的预置输出数据类型;用户可以从模板元素集合中选择的至少一个预置模板 元素构成解析模板,而对待解析日志的解析是根据解析模板解析的,解析模板是用户可以 根据模板元素集合随意配置的,所以本发明实施例提供的日志解析方法,无需为特定数据 格式的待解析日志开发并维护日志解析应用程序,故此,能够适用任意数据格式的待解析 日志,也能够提高日志解析应用程序的开发效率,并降低维护工作量。
[0123] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法 的实施例中进行了详细描述,此处将不做详细阐述说明。
[0124] 本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、系统、或计算 机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方 面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的 计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机 程序产品的形式。
[0125] 本发明是参照根据本发明实施例的方法、装置(装置)和计算机程序产品的流程图 和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程 和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指 令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理装置的处理器以产生 一个机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令产生用于实现 在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0126] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理装置以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
[0127] 这些计算机程序指令也可装载到计算机或其他可编程数据处理装置上,使得在计 算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程装置上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一 个方框或多个方框中指定的功能的步骤。
[0128] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造 性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优 选实施例以及落入本发明范围的所有变更和修改。
[0129] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1. 一种日志解析方法,其特征在于,包括: 获取解析模板;其中,解析模板中包括解析后的预置数据交换格式以及从模板元素集 合中选择的至少一个预置模板元素;每个预置模板元素中包括字段输出名、该字段输出名 对应的至少一个字符串信息的各自的正则表达式信息、以及字符串信息的预置输出数据类 型; 针对每个预置模板元素中的每个正则表达式信息,从待解析日志中提取与该正则表达 式信息匹配的字符串信息;并将匹配的字符串信息配置为预置输出数据类型; 按照预置数据交换格式,输出解析模板中的每个预置模板元素的字段输出名以及每个 字段输出名对应的字符串信息。2. 根据权利要求1所述的方法,其特征在于,所述正则表达式信息为字段模板名;针对 任一预置模板元素,根据以下方法配置该预置模板元素: 接收对字段模板集合中的至少一个字段模板名的选择指令;其中,每个字段模板名对 应一个字段模板,每个字段模板均有对应的正则表达式; 将选择的字段模板名对应的字段模板作为预置字段模板,并接收针对预置模板元素的 字段输出名的命名指令;并, 接收对输出数据类型的设定指令; 根据命名指令中包括的字段输出名、设定指令中包括的预置输出数据类型以及预置字 段模板,生成预置模板元素。3. 根据权利要求2所述的方法,其特征在于,所述方法还包括: 接收对字段模板集合的编辑指令,所述编辑指令包括以下中的任一种:删除字段模板 集合中第一指定字段模板的删除指令、向字段模板集合中添加字段模板的添加指令、修改 字段模板集合中第二指定字段模板的修改指令。4. 根据权利要求2所述的方法,其特征在于,所述获取解析模板之后,所述方法还包括: 提取解析模板中的每个预置模板元素包括的字段输出名,生成字段输出名集合;并,提 取每个预置模板元素包括的预置输出数据类型,生成预置输出数据类型集合;以及, 提取解析模板中的每个预置模板元素包括的每个字段模板名,生成字段模板名集合; 并建立字段模板名、预置输出数据类型以及字段输出名三者之间的三维对应关系。5. 根据权利要求4所述的方法,其特征在于,所述针对每个预置模板元素中的每个正则 表达式信息,从待解析日志中提取与该正则表达式信息匹配的字符串信息;并将匹配的字 符串信息配置为预置输出数据类型,具体包括: 遍历字段模板名集合中的每个字段模板,根据每个字段模板对应的正则表达式从待解 析日志中提取与该正则表达式匹配的字符串信息;并, 针对提取的每个字符串信息,根据三维对应关系,确定该字符串信息对应的字段模板 对应的预置输出数据类型,并将该字符串信息的数据类型配置为确定的预置输出数据类 型; 所述按照预置数据交换格式,输出解析模板中的每个预置模板元素的字段输出名以及 每个字段输出名对应的字符串信息之前,所述方法还包括: 根据三维对应关系,确定字段输出名集合中的每个字段输出名对应的字符串信息。6. 根据权利要求1-5中任一所述的方法,其特征在于,所述方法还包括: 判断待解析日志与解析模板是否匹配; 若匹配,则执行所述针对每个预置模板元素中的每个正则表达式信息,从待解析日志 中提取与该正则表达式信息匹配的字符串信息的步骤。7. -种日志解析装置,其特征在于,包括: 解析模板获取模块,用于获取解析模板;其中,解析模板中包括解析后的预置数据交换 格式以及从模板元素集合中选择的至少一个预置模板元素;每个预置模板元素中包括字段 输出名、该字段输出名对应的至少一个字符串信息的各自的正则表达式信息、以及字符串 信息的预置输出数据类型; 解析模块,用于针对每个预置模板元素中的每个正则表达式信息,从待解析日志中提 取与该正则表达式信息匹配的字符串信息;并将匹配的字符串信息配置为预置输出数据类 型; 输出模块,用于按照预置数据交换格式,输出解析模板中的每个预置模板元素的字段 输出名以及每个字段输出名对应的字符串信息。8. 根据权利要求7所述的装置,其特征在于,所述正则表达式信息为字段模板名;所述 装置还包括: 模板元素配置模块,用于针对任一预置模板元素,根据以下装置配置该预置模板元素: 接收对字段模板集合中的至少一个字段模板名的选择指令;其中,每个字段模板名对 应一个字段模板,每个字段模板均有对应的正则表达式; 将选择的字段模板名对应的字段模板作为预置字段模板,并接收针对预置模板元素的 字段输出名的命名指令;并, 接收对输出数据类型的设定指令; 根据命名指令中包括的字段输出名、设定指令中包括的预置输出数据类型以及预置字 段模板,生成预置模板元素。9. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 编辑模块,用于接收对字段模板集合的编辑指令,所述编辑指令包括以下中的任一种: 删除字段模板集合中第一指定字段模板的删除指令、向字段模板集合中添加字段模板的添 加指令、修改字段模板集合中第二指定字段模板的修改指令。10. 根据权利要求8所述的装置,其特征在于,所述装置还包括: 提取模块,用于所述解析模板获取模块获取解析模板之后,提取解析模板中的每个预 置模板元素包括的字段输出名,生成字段输出名集合;并,提取每个预置模板元素包括的预 置输出数据类型,生成预置输出数据类型集合;以及,提取解析模板中的每个预置模板元 素包括的每个字段模板名,生成字段模板名集合;并建立字段模板名、预置输出数据类型以 及字段输出名三者之间的三维对应关系。11. 根据权利要求10所述的装置,其特征在于,所述解析模块,具体包括: 字符串信息提取单元,用于遍历字段模板名集合中的每个字段模板,根据每个字段模 板对应的正则表达式从待解析日志中提取与该正则表达式匹配的字符串信息; 数据类型配置单元,用于针对提取的每个字符串信息,根据三维对应关系,确定该字符 串信息对应的字段模板对应的预置输出数据类型,并将该字符串信息的数据类型配置为确 定的预置输出数据类型; 所述装置还包括: 对应确定模块,用于所述输出模块按照预置数据交换格式,输出解析模板中的每个预 置模板元素的字段输出名以及每个字段输出名对应的字符串信息之前,根据三维对应关 系,确定字段输出名集合中的每个字段输出名对应的字符串信息。12.根据权利要求7-11中任一所述的装置,其特征在于,所述装置还包括: 判断待解析日志与解析模板是否匹配; 若匹配,则执行所述针对每个预置模板元素中的每个正则表达式信息,从待解析日志 中提取与该正则表达式信息匹配的字符串信息的步骤。
【文档编号】G06F17/30GK106055585SQ201610342256
【公开日】2016年10月26日
【申请日】2016年5月20日
【发明人】袁帅
【申请人】北京神州绿盟信息安全科技股份有限公司, 北京神州绿盟科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1