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

文档序号:16855517发布日期:2019-02-12 23:14阅读:119来源:国知局
日志解析的方法及装置与流程

本发明实施例涉及计算机技术领域,尤其涉及一种日志解析的方法及装置。



背景技术:

现有的实现方案中,不同格式的日志需要使用对应的解析方法进行解析。在大数据急速发展的今天,日志格式五花八门,每遇到一种新格式的日志,都需要人工编写相应的解析代码去解析日志。而且,日志在使用的过程中,其格式经常因为业务需求有变化而改变,导致日志的解析代码也需要随之人为更新维护,从而需要花费大量的时间成本和人力成本。



技术实现要素:

本发明实施例提供一种日志解析的方法及装置,对不同格式的日志都使用一种通用的方法进行解析,从而便于后续的统计分析,能够节省时间成本和人力成本。

为达到上述目的,本申请采用如下技术方案:

第一方面,本申请提供一种日志解析的方法,该方法可以包括:获取原始日志,所述原始日志包括第一数量的数据字段;根据原始日志的格式,在预设配置文件中找到与原始日志的格式对应的目标第一匹配规则;其中,预设配置文件包括至少一个第一匹配规则,每个第一匹配规则中包括至少一个数据字段,以及数据字段对应的字段名称、索引号和字段属性;每个第一匹配规则用于解析至少一种格式的日志;所述目标第一匹配规则用于解析与所述原始日志格式相同的日志;根据目标第一匹配规则,从第一数量的数据字段中确定第二数量的目标数据字段,以及与每个目标数据字段对应的字段名称、索引号、字段属性;将第二数量的目标数据字段以及每个目标数据字段对应的字段名称、索引号、字段属性按照预设格式合并,得到解析日志。

第二方面,本申请提供一种日志解析的装置,该装置包括:获取模块和处理模块。其中,获取模块用于获取原始日志,所述原始日志包括第一数量的数据字段。处理模块,用于根据所述原始日志的格式,在预设配置文件中找到与所述原始日志的格式对应的目标第一匹配规则;其中,所述预设配置文件包括至少一个第一匹配规则,每个第一匹配规则中包括至少一个数据字段,以及所述数据字段对应的字段名称、索引号和字段属性;每个第一匹配规则用于解析至少一种格式的日志;所述目标第一匹配规则用于解析与所述原始日志格式相同的日志;所述处理模块,还用于根据目标第一匹配规则,从第一数量的数据字段中确定第二数量的目标数据字段,以及与每个目标数据字段对应的字段名称、索引号、字段属性;所述处理模块,还用于将第二数量的目标数据字段以及每个目标数据字段对应的字段名称、索引号、字段属性按照预设格式合并,得到解析日志。

第三方面,本申请提供一种日志解析的装置,该装置包括:处理器、收发器和存储器。其中,存储器用于存储一个或多个程序。该一个或多个程序包括计算机执行指令,当该装置运行时,处理器执行该存储器存储的该计算机执行指令,以使该装置执行第一方面及其各种可选的实现方式中任意之一所述的日志解析的方法。

第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当装置执行该指令时,该装置执行上述第一方面及其各种可选的实现方式中任意之一所述的日志解析的方法。

本申请提供的日志解析的方法和装置,采用配置文件的方式针对原始日志进行解析;抽取指定的数据字段后,形成结构化存储的数据格式进行存储;并且我们利用配置文件即可完成非结构化数据至结构化数据的转换;提供一种支持多种格式日志的通用解析方法,这些格式的解析都无需开发人员进行代码开发,而是直接配置完成,从而便于后续的统计分析,能够节省时间成本和人力成本。

附图说明

图1为本申请实施例提供的日志解析的方法的流程示意图;

图2为本申请实施例提供的装置的结构示意图一;

图3为本申请实施例提供的装置的结构示意图二。

具体实施方式

下面结合附图对本申请实施例提供的日志解析的方法及装置进行详细地描述。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。

此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。

本申请实施例提供的日志解析的方法,可以对不同格式的日志进行解析。

本申请实施例提供一种日志解析的方法,可以应用于任意计算机设备,如图1所示,该方法可以包括s101-s104:

s101、获取原始日志,所述原始日志包括第一数量的数据字段。

具体的,原始日志为设备发送来的日志,比如设备的运行日志、防火墙的防护日志等。原始日志包括若干数据字段,其中包含待解析的信息。本申请实施例中,原始日志中的数据字段为非结构化数据。非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。

s102、根据所述原始日志的格式,在预设配置文件中找到与所述原始日志的格式对应的目标第一匹配规则。

其中,所述预设配置文件包括至少一个第一匹配规则,每个第一匹配规则中包括至少一个数据字段,以及所述数据字段对应的字段名称、索引号和字段属性;每个第一匹配规则用于解析至少一种格式的日志;所述目标第一匹配规则用于解析与所述原始日志格式相同的日志。所述格式既可以指日志的文件格式,比如js文件格式、html文件格式、txt文件格式,也可以指日志内部的文本描述格式,比如json格式、xml格式。

具体的,本申请实施例中,预设配置文件为一个可扩展标记语言(extensiblemarkuplanguage,xml)文件。一个预设配置文件的实例为:

其中,标签<parsefile>中包括的内容即为一个第一匹配规则。本实施例中,预设配置文件仅包含一个第一匹配规则,但是本申请不限制预设配置文件中第一匹配规则的数量。在实际场景中,预设配置文件中可以设置多个第一匹配规则,以适用不同格式的日志。

本实施例中,标签<parsefile>中包括字段的名称,索引号,字段属性等内容。比如,<parsefilename="sanfor"text="sanfor"type="char"encode="">中,name表示日志的名称,text表示日志的描述,type表示日志的类型。

标签<parse>中包括正则表达式,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。比如,match='<\d+>(\d+).*日志类型:(.*),\s+源ip:(.*),\s+源端口:(.*),\s+目的ip:(.*),\s+目的端口:(.*),\s+协议:(.*),\s+攻击类型:(.*),\s+漏洞名称:(.*),\s+严重等级:(.*),\s+动作:(.*)'>中,match='<\d+>(\d+).*日志类型:(.*),\s+源ip:(.*),\s+源端口:(.*),\s+目的ip:(.*),\s+目的端口:(.*),\s+协议:(.*),\s+攻击类型:(.*),\s+漏洞名称:(.*),\s+严重等级:(.*),\s+动作:(.*)'就是正则表达式。

标签<field>中设置有字段名称(name)、索引号(index)、和字段属性,其中,字段属性包括:日志描述(text)、日志类型(type)、时间格式(timeformat)、默认赋值(default)等。其中,timeformat是只有时间字段才需要填写此属性。如果日志中的时间可以用simpledateformat来格式化,则该字段填写表达式(比如yyyy-mm-ddhh:mm:ss);如果时间格式是时间戳,则填写timestamp。default是该字段默认的赋值,如果没有匹配到相应的字段,都会使用默认赋值。

本实施例中,根据日志文件的格式,确定所对应的第一匹配规则。比如,日志文件为sanfor日志格式,即日志名称为“sanfor”,日志描述为“sanfor”,表示该日志来自sanfor防火墙设备,日志类型为“char”,表示该日志内容为字符类型。该日志格式就与上述预设配置文件中的<parsefilename="sanfor"text="sanfor"type="char"encode="">对应。因此适用这一标签<parsefile>所对应的第一匹配规则对该日志进行解析。

s103、根据所述目标第一匹配规则,从所述第一数量的数据字段中确定第二数量的目标数据字段,以及与每个所述目标数据字段对应的字段名称、索引号、字段属性。

根据正则表达式,将原始字段中的部分字段提取出来,得到目标数据字段,并将它们储存在一个数组中。同时,按照目标数据字段在数组中的顺序给目标数据字段编号(即数组第0位编号为1,第1位编号为2)。根据每个目标数据字段的编号,找到与该字段具有相同索引号的标签<field>,将该标签内定义的索引号、字段名称、和字段属性与该字段对应起来,构成一组数据。

例如,一个原始日志内容如下:

<1>1536550596,日志类型:eventlog,源ip:192.168.0.0,源端口:800,目的ip:c0a80001,目的端口:880,协议:http,攻击类型:csrf攻击,漏洞名称:csrf漏洞,严重等级:中,动作:启动防护。

则,经过上述正则表达式匹配后,提取的数组为{1536550596,eventlog,192.168.0.0,800,192.168.0.1,880,http,csrf攻击,csrf漏洞,中,添加验证}。数组中每一字符串的顺序即为其索引号。如,字符串“1536550596”的索引号为1,字符串“eventlog”的索引号为2。

数组中字段的顺序与标签中的索引号对应,即eventlog对应索引号为2,根据索引号2找到对应的<field>标签为<fieldname="logtype"text="日志类型"index="2"default=""/>,字段名称为logtype,字段属性:日志类型,默认赋值为“”。得到的字段为“logtype日志类型2”。

同理,可以得到索引号1、3-11对应的字段。

可选的,在预设配置文件中可以设置标签<map>。标签<map>中包括第二匹配规则,第二匹配规则用于在第一匹配规则匹配后,再对目标字段进行字段映射、字段匹配、字段转换等处理时所采用的规则。

字段映射是指将目标数据字段的值根据映射规则,映射成另一个值。其中,映射规则用来表示若干组值与值的映射关系。字段匹配是指根据第三匹配规则,提取所述目标数据字段中与第三匹配规则中数据字段相匹配的字段,本实施例中,第三匹配规则为一种正则表达式。字段转换是根据转换规则将字段的值由原来的格式转换为另一种格式。其中,转换规则规定了字段原有的格式,即对满足转换规则中规定的格式的字段进行转换。

例如,在上述预设配置文件和原始日志的例子中,根据目的ip字段中的<mapipradix="16"value=""/>,ipradix这里定义为16,意思为若该字段的原值为16进制时,则将原值转换为10进制。目的ip字段的值为c0a80001,为16进制,因此还需要进行字段转换,即将c0a80001转换为10进制,为192.168.0.1。

又根据严重等级字段中的<mapkey="中"value="4"/>,需要对该字段进行字段映射。其中,key表示原值,value表示映射后的值。上述得到的严重等级字段的值为“中”,因此要将它映射为“4”。

可选的,还可以对上述匹配出来的字段进行二次匹配,形式例如<mapmatch="\?"value="question"/>,其中,match为正则表达式,如果字段能够匹配正则表达式,则利用value作为字段的值,如果value的值为空,那么值就是字段的值。

可选的,若上述步骤中得到的目标数据字段为预设的类型,则根据所述预设类型,使用相应的处理引擎对所述目标数据字段进行处理。

示例性的,本实施例中,预设类型包括:时间类型、经纬度类型。若目标数据字段为时间类型,则使用时间处理引擎对其进行处理,处理过程包括:时间制式识别,时间标准化,以及时区转换等。若目标数据字段为经纬度类型,则使用经纬度处理引擎对其进行处理,处理过程包括:校验字段的合法性,将字段标准化等。

s104、将所述第二数量的目标数据字段以及每个所述目标数据字段对应的字段名称、索引号、字段属性按照预设格式合并,得到解析日志。

所述预设格式为结构化数据格式。本实施例中,结构化数据格式为二维表格式。因此,将以上处理得到的目标数据字段按照二维表的格式进行合并,最终得到的解析日志为:

本申请提供的日志解析的方法,采用配置文件的方式针对原始日志进行解析;抽取指定的数据字段后,形成结构化存储的数据格式进行存储;并且我们利用配置文件即可完成非结构化数据至结构化数据的转换;提供一种支持多种格式日志的通用解析方法,这些格式的解析都无需开发人员进行代码开发,而是直接配置完成,从而便于后续的统计分析,能够节省时间成本和人力成本。

本申请实施例可以根据上述方法示例对装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图2示出了上述实施例中所涉及的装置的一种可能的结构示意图。该装置包括获取模块201、处理模块202。

其中,所述获取模块201,用于获取原始日志,所述原始日志包括第一数量的数据字段。

所述处理模块202,用于根据所述原始日志的格式,在预设配置文件中找到与所述原始日志的格式对应的目标第一匹配规则;其中,所述预设配置文件包括至少一个第一匹配规则,每个第一匹配规则中包括至少一个数据字段,以及所述数据字段对应的字段名称、索引号和字段属性;每个第一匹配规则用于解析至少一种格式的日志;所述目标第一匹配规则用于解析与所述原始日志格式相同的日志;所述处理模块,还用于根据目标第一匹配规则,从第一数量的数据字段中确定第二数量的目标数据字段,以及与每个目标数据字段对应的字段名称、索引号、字段属性;所述处理模块,还用于将第二数量的目标数据字段以及每个目标数据字段对应的字段名称、索引号、字段属性按照预设格式合并,得到解析日志。

图3示出了上述实施例中所涉及的日志解析的装置的又一种可能的结构示意图。该装置包括:处理器301和通信接口302。处理器301用于对装置的动作进行控制管理,例如,执行上述处理模块201执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信接口302用于支持装置与其他装置实体的通信,例如,执行上述获取模块201执行的步骤。装置还可以包括存储器303和总线304,存储器303用于存储装置的程序代码和数据。

其中,上述处理器301可以是装置中的处理器,该处理器可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器或控制器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

通信接口302可以是装置中的收发器、收发电路或通信接口等。

存储器303可以是装置中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。

总线304可以是扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线304可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当装置执行该指令时,该装置执行上述方法实施例所示的方法流程中装置执行的各个步骤。

其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(compactdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(applicationspecificintegratedcircuit,asic)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1