一种应用的日志分割方法及装置与流程

文档序号:17398470发布日期:2019-04-13 01:00阅读:168来源:国知局
一种应用的日志分割方法及装置与流程

本发明涉及日志处理领域,特别涉及一种应用的日志分割方法及装置。



背景技术:

在信息技术高速发展的背景下,应用的数量和种类越来越多。为了审计各种应用,及分析应用中存在的安全隐患,需要对应用的日志进行检测分析。目前,一种常用的应用检测方法是对应用的日志进行检测分析。具体的,通过为获取到的应用的日志设置相对应的正则表达式,然后利用该正则表达式对日志进行分割,将日志分割成多个字段,以便利用分割得出的字段对日志进行分析,进而得出应用的安全使用情况。但是,在这种方式中,是需要技术人员根据每个应用的日志格式,为每个应用的日志设置对应的正则表达式。因此,现有技术的方法在为应用设置正则表达式时,需要消耗大量的人力资源。另外,不同的应用的日志格式可能是相同的,因此通过人工为每个应用分别设置对应的正则表达式,将是对人力资源的又一浪费。

因此,如何提供一种日志分割方法,能够减少对人力资源的消耗,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种应用的日志分割方法,能够减少对人力资源的消耗;本发明的另一目的是提供一种应用的日志分割装置,具有上述相同的有益效果。

为解决上述技术问题,本发明提供一种应用的日志分割方法,包括:

获取目标应用的日志;其中,所述日志包括样本日志和目标日志;

利用所述样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式;

若存在,则利用所述目标正则表达式分割所述目标日志。

优选地,所述利用所述样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式具体包括:

分别利用预先存储的多个所述正则表达式分割所述样本日志,得到多个第一样本字段;

判断多个所述第一样本字段中是否存在与所述目标应用的标准字段格式一致的目标第一样本字段;

若存在,则根据所述目标第一样本字段确定出所述目标正则表达式,并进入所述利用所述目标正则表达式分割所述目标日志的步骤。

优选地,进一步包括:

若不存在,则获取根据所述样本日志设置的分隔符;

利用所述分隔符分割所述样本日志,得到第二样本字段;

判断所述第二样本字段的字段格式是否与所述目标应用的所述标准字段格式一致;

若是,则利用所述分隔符设置出所述目标正则表达式,并进入所述利用所述目标正则表达式分割所述目标日志的步骤。

优选地,所述利用所述分隔符分割所述样本日志,得到第二样本字段的过程具体包括:

利用字段模板、成对字符和所述分隔符对所述样本日志进行分割,得到所述第二样本字段;

对应的,所述利用所述分隔符设置出所述目标正则表达式具体为:

利用所述字段模板、所述成对字符和所述分隔符设置出所述目标正则表达式。

优选地,判断所述第一样本字段的字段格式或所述第二样本字段的字段格式是否与所述目标应用的标准字段格式一致具体包括:

判断所述第一样本字段的字段数量或所述第二样本字段的字段数量是否与所述标准字段数量一致;

若是,则表示所述第一样本字段的字段格式或所述第二样本字段的字段格式与所述目标应用的标准字段格式一致。

优选地,在所述获取目标应用的日志之后,进一步包括:

检测所述样本日志的日志格式;

当所述日志格式为json格式时,根据所述json格式分割所述目标日志;

当所述日志格式为固定分隔符格式时,利用所述样本日志中的固定分隔符分割所述目标日志;

当所述日志格式为无固定分隔符格式时,则进入所述利用所述样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式的步骤。

优选地,在所述利用所述目标正则表达式分割所述目标日志之后,进一步包括:

当判断出分割得出的目标字段与预设告警内容相匹配时,发出告警信息。

优选地,所述利用所述样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式具体为:

从云端服务器中获取预先存储的多个所述正则表达式;

利用所述样本日志判断多个所述正则表达式中是否存在所述目标正则表达式。

优选地,在得出所述目标正则表达式之后,进一步包括:

为所述目标正则表达式设置与所述目标应用对应的标识信息。

为解决上述技术问题,本发明还提供一种应用的日志分割装置,包括:

获取模块,用于获取目标应用的日志;其中,所述日志包括样本日志和目标日志;

判断模块,用于利用所述样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式;

分割模块,用于当判断模块的判定结果为存在时,则利用所述目标正则表达式分割所述目标日志。

优选地,进一步包括:

分隔符获取模块,用于获取根据所述样本日志设置的分隔符;

样本日志分割模块,用于利用所述分隔符分割所述样本日志,得到第二样本字段;

格式判断模块,用于判断所述第二样本字段的字段格式是否与所述目标应用的所述标准字段格式一致;

设置模块,用于当所述格式判断模块的判定结果为是时,则利用所述分隔符设置出所述目标正则表达式,并进入所述利用所述目标正则表达式分割所述目标日志的步骤。

优选地,进一步包括:

日志格式检测模块,用于检测所述样本日志的日志格式;

第一执行模块,用于当所述日志格式为json格式时,根据json格式分割所述目标日志;

第二执行模块,用于当所述日志格式为固定分隔符格式时,利用所述样本日志中的固定分隔符分割所述目标日志;

第三执行模块,用于当所述日志格式为无固定分隔符格式时,则进入所述利用所述样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式的步骤。

优选地,进一步包括:

信息告警模块,用于当判断出分割得出的目标字段与预设告警内容相匹配时,发出告警信息。

优选地,进一步包括:

标识信息设置模块,用于为所述目标正则表达式设置与所述目标应用对应的标识信息。

为解决上述技术问题,本发明还提供一种应用的日志分割设备,包括:

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

处理器,用于执行所述计算机程序时实现上述任一种应用的日志分割方法的步骤。

为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种应用的日志分割方法的步骤。

本发明提供的应用的日志分割方法,相较于现有技术中在获取到目标应用的目标日志之后,通过技术人员为目标应用重新配置目标正则表达式的方式,本方法利用样本日志从预先存储的多个正则表达式中获取与目标应用对应的目标正则表达式,再利用该目标正则表达式对目标日志进行分割,因此省略了通过人工重新配置以得出目标正则表达式的过程,从而减少了对人力资源的消耗。

为解决上述技术问题,本发明还提供了一种应用的日志分割装置,具有上述相同的有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种应用的日志分割方法的流程图;

图2为本发明实施例提供的另一种应用的日志分割方法的流程图;

图3为本发明实施例提供的又一种应用的日志分割方法的流程图;

图4为本发明实施例提供的一种应用的日志分割装置的结构图;

图5为本发明实施例提供的一种应用的日志分割设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例的核心是提供一种应用的日志分割方法,能够减少对人力资源的消耗;本发明的另一核心是提供一种应用的日志分割装置,具有上述相同的有益效果。

为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明实施例提供的一种应用的日志分割方法的流程图。如图1所示,一种应用的日志分割方法包括:

s10:获取目标应用的日志;其中,日志包括样本日志和目标日志。

s20:利用样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式;若存在,则执行s30。

具体的,获取目标应用的日志的方式可以是通过运行采集日志的脚本的方式,也可以是通过检测目标应用运行时的数据传输情况以得到目标应用的日志,本实施例对获取目标应用的日志的方式不做限定。

为了对目标应用的目标日志进行分割,首先需要获取目标正则表达式。本实施例是利用样本日志在预先存储的多个正则表达式中得出目标正则表达式。因此,在获取目标应用的日志时,需要获取目标应用的样本日志和目标日志。具体的,可以在目标应用所在的设备上设置相对应的日志采集脚本,通过对应的指令运行日志采集脚本以获取目标应用的日志。

需要说明的是,样本日志和目标日志均指的是目标应用的日志,其中,样本日志是用于判断得出目标正则表达式的日志,目标日志指的是待分割的日志。由于目标日志的日志格式与样本日志的日志格式一致,因此通过利用预先存储的多个正则表达式对样本日志进行分割,并对分割得出的第一样本字段进行检测,若某个正则表达式能够将样本日志分割成与标准字段格式一致的字段,则表示该正则表达式能够将该目标应用的目标日志也分割成标准字段格式,因此得出目标正则表达式。

s30:利用目标正则表达式分割目标日志。

在s20的基础上,本步骤旨在利用目标正则表达式对目标日志进行分割,进而便于对分割得出的目标字段进行分析检测。需要说明的是,利用目标正则表达式对目标日志进行分割方法,与利用预先存储的正则表达式对样本日志进行分割的方法一致,并且本实施例的侧重点在于如何获取目标正则表达式,且利用目标正则表达式对目标日志进行分割的具体操作方法是本领域技术人员的公知常识,因此此处不再赘述。

本发明实施例提供的应用的日志分割方法,相较于现有技术中在获取到目标应用的目标日志之后,通过技术人员为目标应用重新配置目标正则表达式的方式,本方法利用样本日志从预先存储的多个正则表达式中获取与目标应用对应的目标正则表达式,再利用该目标正则表达式对目标日志进行分割,因此省略了通过人工重新配置以得出目标正则表达式的过程,从而减少了对人力资源的消耗。

如图2所示的另一种应用的日志分割方法的流程图,在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,利用样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式具体包括:

s21:分别利用预先存储的多个正则表达式分割样本日志,得到多个第一样本字段;

s22:判断多个第一样本字段中是否存在与目标应用的标准字段格式一致的目标第一样本字段;

s23:若存在,则根据目标第一样本字段确定出目标正则表达式,并进入利用目标正则表达式分割目标日志的步骤。

具体的,在本实施例中,为了判断出预先存储的多个正则表达式中是否存在目标正则表达式,分别利用预先存储的多个正则表达式对样本日志进行分割,得到第一样本字段,然后判断根据各个正则表达式得到的多个第一样本字段中,是否存在与目标应用的标准字段格式一致的目标第一样本字段,然后确定与该目标第一样本字段对应的正则表达式为目标正则表达式。也就是说,本方法是利用同一应用的样本日志的日志格式与目标日志的日志格式是完全相同的这一特性,通过预先存储的多个正则表达式分割样本日志,从而确定出目标正则表达式,因此,目标正则表达式能够按照标准字段格式对目标日志进行分割。

需要说明的是,在本实施例中,利用各个正则表达式分割样本日志的过程,可以是利用各个正则表达式依次分割该样本日志,也可以是利用多个正则表达式同时对样本日志进行分割,进而对分割得出的第一样本字段进行分析,以确定出目标正则表达式。

可见,本实施例通过判断预先存储的多个正则表达式是否能够将样本日志分割成标准字段格式的第一样本字段,从而确定出目标正则表达式,使得目标正则表达式能够对目标应用的目标日志按照标准字段格式进行分割,提高分割目标日志的准确度。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例进一步包括:

s24:若不存在,则获取根据样本日志设置的分隔符;

s25:利用分隔符分割样本日志,得到第二样本字段;

s26:判断第二样本字段的字段格式是否与目标应用的标准字段格式一致;

s27:若是,则利用分隔符设置出目标正则表达式,并进入利用目标正则表达式分割目标日志的步骤。

具体的,在本实施例中,是在判断出预先存储的多个正则表达式中不存在目标正则表达式,也即判断出不存在能够将样本日志按照标准字段格式进行分割的正则表达式时,获取根据样本日志设置的分隔符;然后利用分隔符对样本日志进行分割,得到第二样本字段;再判断第二样本字段的字段格式是否与目标应用的标准字段格式一致;若一致,利用分隔符设置出目标正则表达式。

具体的,获取分隔符的方法,可以是响应用户的输入操作,以获取分隔符;也可以是从预设的多个常用分隔符中选择分隔符,本实施例对此不做限定。具体的,分隔符包括但不限于“,”、“.”、“-”、“/”以及空格等。

在获取到样本日志的分隔符之后,利用分隔符分割样本日志,得到第二样本字段,然后判断第二样本字段的字段格式是否与目标应用的标准字段格式一致。

需要说明的是,若用于对样本日志进行分割的分隔符是从常用分隔符中随机选择的分隔符,则需要进一步确认分割得出的各第二样本字段的字段类型与标准字段格式的字段类型一致、以及确认第二样本字段的字段含义与标准字段的字段含义是否一致,从而确定是否使用该分隔符生成目标正则表达式。具体的,字段类型包括字符串类型、数字类型以及文本类型等,字段含义指的是字段所标识的内容,例如,时间(time)、ip地址、和日志信息(info)等。通过判断字段类型和字段含义是否与标准字段一致,以进一步确认分割得出的第二样本字段的字段格式是否与标准字段格式一致,以便于确定是否利用该分隔符设置目标正则表达式。

可以理解的是,当分割得出的样本字段值的字段格式与标准字段格式不一致时,也即判断出该分隔符不能生成对应的目标正则表达式时,还可以通过更换分隔符以便再次对样本日志进行分割,再次得出第二样本字段,再利用再次得出的第二样本字段对样本日志进行分割,直至确定出目标正则表达式。

在判断出第二样本字段的字段格式与目标应用的标准字段格式一致之后,利用分隔符及分隔符取反的方式设置出目标正则表达式。可以理解的是,利用分隔符分割日志指的是提取出相邻两个分隔符之间的日志内容作为分割出的字段,因此,首先设置用于匹配出日志内容中位于字段一侧的第一分隔符的第一表达式,然后设置用于依次对日志内容进行匹配的第二表达式,再设置用于匹配出按照匹配顺序最接近第一分隔符的第二分隔符的第三表达式,从而实现将匹配到的两个分隔符之间的非分隔符的内容作为一个字段,并且,第一表达式、第二表达式和第三表达式的组合即为目标正则表达式。另外需要说明的是,匹配顺序指的是预设的根据书写习惯确定的、用于对日志内容进行匹配的顺序,如从左至右或从右至左的顺序,本实施例对此不做限定。

例如,对于日志“aaabbbccc”,分隔符是空白字符(空格或tab),那么设置用于匹配分隔符之间的日志内容的目标正则表达式的步骤为:

(1)设置用于匹配出一个或多个空白字符的第一表达式“\s+”;

(2)在匹配出一个或多个空白字符之后,设置第二表达式“(\s+)”,用于匹配一个或多个非空白字符(除了空白字符以外的字符);

(3)设置第三表达式“\s+”,用于在再次匹配到一个或多个空白字符时,得出对应的字段,也即提取空白字符之间的内容。对应的,将第一表达式、第二表达式和第三表达式的组合得出目标正则表达式为\s+(\s+)\s+,并且利用目标正则表达式\s+(\s+)\s+分割出字段“bbb”。

需要说明的是,在具体实施中,可以根据分隔符的实际形式设置出相对应的目标正则表达式,上述举例只是一个具体的应用方式,不作为限定内容。

具体的,判断第一样本字段的字段格式或第二样本字段的字段格式是否与目标应用的标准字段格式一致具体包括:

判断第一样本字段的字段数量或第二样本字段的字段数量是否与标准字段数量一致;

若是,则表示第一样本字段的字段格式或第二样本字段的字段格式与目标应用的标准字段格式一致。

具体的,本实施例中,是通过判断分割得出的第一样本字段的字段数量或第二样本字段的字段数量是否与标准字段数量一致的方式,确定第一样本字段的字段格式或第二样本字段的字段格式是否与目标应用的标准字段格式一致。

具体的,字段数量也即分割得出的第一样本字段或第二样本字段的数量,若分割得出的字段数量与标准字段数量不一致,则表示该正则表达式或该分隔符不能将样本日志分割成标准字段格式,因此该正则表达式不是目标正则表达式,或者该分隔符不能生成对应的目标正则表达式,因此结束进程;若分割得出的字段数量与标准字段数量一致,表示第一样本字段的字段格式或第二样本字段的字段格式与目标应用的标准字段格式一致,因此表示该正则表达式为目标正则表达式,或该分隔符能确定出目标正则表达式。

本发明实施例提供的应用的日志分割方法,是在预先存储的多个正则表达式中不存在目标正则表达式时,通过获取样本日志的分隔符对样本日志进行分割,然后通过判断分割得出的第二样本字段的字段格式是否与标准样本字段一致,来确定出样本日志的分隔符,进而利用确定出的分隔符生成目标正则表达式。因此,本实施例提供了另一种对目标日志进行分割的方法,并且相较于现有技术中,为每个目标日志设置正则表达式的方式,本方法只需要设置分隔符即可得出目标正则表达式,因此,更加节省了人工的操作。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,利用分隔符分割样本日志,得到第二样本字段的过程具体包括:

利用字段模板、成对字符和分隔符对样本日志进行分割,得到第二样本字段;

对应的,利用分隔符设置出目标正则表达式具体为:

利用字段模板、成对字符和分隔符设置出目标正则表达式。

具体的,在利用分隔符对样本日志进行分割时,还可以利用预先设置的字段模板对样本日志进行分割。由于某些日志内容的格式是一定的,如日期、ip地址等,因此可以通过预先设置与该日志内容相对应的字段模板,然后利用设置出的字段模板对样本日志进行匹配,再将匹配出的日志内容进行分割。需要说明的是,在利用字段模板分割匹配出的日志内容,得出对应的字段之后,将样本日志中已匹配出的日志内容删除,再利用分隔符对剩余的日志内容进行分割,从而避免已确认分割的字段对后续的日志分割过程造成干扰。

例如,假设样本日志的内容为:“2018-10-2722:41:18,783[main]infocom.dremio.dac.daemon.dacdaemon-thisnodeisthemasternode,desktop-88bq242.thisnodeactsasbothacoordinatorandanexecutor.”。首先利用用于提取表示时间的字段模板:(\d+-\d+-\d+\s\d+:\d+:\d+,\d+)匹配出样本日志中的时间“2018-10-2722:41:18”,并将匹配出的时间作为一个字段从样本日志中分割出来,然后再利用获取到的分隔符对剩下的样本日志进行分割。

另外需要说明的是,由于不同应用的日志中的时间格式可能是不同的,因此还可以预先设置多个不同格式的用于分割时间的字段模板,本实施例对此不做限定。

具体的,在检测到样本日志中存在成对字符,如“<>”、“[]”、“{}”或““””等时,可以通过检测成对字符的起始符号和终止符号,直接将成对字符中的日志内容作为分割的字段。可以理解的是,由于成对字符中的日志内容往往是属于同一种内容,因此利用成对字符对样本日志进行分割,能够快速地分割出相应的字段。

例如,利用成对字符对上述样本日志进行分割,即利用用于匹配起始符号的表达式“\[”检测“[”符号,当检测到“[”符号时,利用用于匹配非成对字符的表达式“([^\]]*)”开始提取字段,并利用用于匹配终止符号的表达式“\]”检测“]”符号,当检测到“]”符号时,则停止提取字段,从而得出用于提取成对字符“[]”之间的日志内容的正则表达式“\[([^\]]*)\]”,并利用该目标正则表达式分割得出字段“main”。

对应的,在本实施例中,在利用字段模板、成对字符和分隔符分割样本日志,得出第二样本字段之后,若判断出第二样本字段的字段格式与目标应用的标准字段格式一致;则对应地利用字段模板、成对字符和分隔符设置出目标正则表达式。

需要说明的是,在具体实施中,为了更清楚、直接地得出分割目标日志后各目标字段的内容,还可以进一步设置各字段的名称。根据通过样本日志分割得出的样本字段的顺序,依次设置字段名称,以此表示各个字段所对应的内容。在利用分隔符对样本日志进行分割时,若分割得出的字段数量与标准字段数量相差一个时,则将剩下的日志内容作为一个字段,依次将各字段与各字段名称相对应;如果分割得出的字段数量少于预设的字段,则依据先后顺序,将排在后面的字段名称对应的字段设置为空。

具体的,假设样本日志为“2018-10-2722:41:18,783[main]infocom.dremio.dac.daemon.dacdaemon-thisnodeisthemasternode,desktop-88bq242.thisnodeactsasbothacoordinatorandanexecutor.”,各样本字段的字段名称为time、thread、level、class和info,根据上述方法提取出各字段为:

time2018-10-2722:41:18,783

threadmain

levelinfo

classcom.dremio.dac.daemon.dacdaemon

infothisnodeisthemasternode,desktop-88bq242.thisnodeactsasbothacoordinatorandanexecutor.

对应生成的目标正则表达式为:

(\d+-\d+-\d+\s\d+:\d+:\d+,\d+)\s\[([^\]]*)\]\s(\s+)\s+(\s+)\s-\s(.*),以便利用该目标正则表达式对目标日志进行分割。可见,本实施例提供的设置目标正则表达式的方法,能够更快速、准确地设置目标正则表达式。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,在获取目标应用的日志之后,进一步包括:

检测样本日志的日志格式;

当日志格式为json格式时,根据json格式分割目标日志;

当日志格式为固定分隔符格式时,利用样本日志中的固定分隔符分割目标日志;

当日志格式为无固定分隔符格式时,则进入利用样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式的步骤。

在本实施例中,在获取到目标应用的日志之后,进一步检测样本日志的格式,由于目标日志的格式与样本日志的日志格式是相同的,因此确定出目标日志的日志格式,然后根据目标日志的不同的格式类型,使用对应的分割方法。

具体的,当日志格式为json格式时,根据json格式分割目标日志。可以理解的是,json格式指的是具有“名称/值”对的格式,例如,假设日志内容为“firstname:jason”,“lastname:hunter”,“email:aaaa”,则可以将“jason”、“hunter”以及“aaaa”作为字段值,将“firstname”、“lastname”以及“email”为各个字段的名称,对目标日志进行分割。

当日志格式为固定分隔符格式时,也即表示目标日志中的分隔符是固定的一种,因此可以直接利用对应的固定分隔符对目标日志进行分割。例如,假设样本日志为“0,90,北京市,110000,2018-05-27,颗粒物(pm10),良”,且确定出该样本日志的固定分隔符为“,”,字段名称依次为:id、aqi、city、code、date、indicator和level。根据固定分隔符对样本日志进行分割,得出各字段如“0”、“90”、“北京市”等,依次类推,得出切分后的字段如下:“id”:0;“aqi”:90;“city”:北京市;“code”:110000;“date”:2018-05-27;“indicator”:“颗粒物(pm10)”;“level”:良。

另外,当日志格式为无固定分隔符格式时,则进入判断预先存储的多个正则表达式中是否存在目标正则表达式的步骤,也即,通过获取目标正则表达式的方式对目标日志进行分割。

可见,本实施例通过对各种不同类型的目标日志使用相对应的日志分割方法,对一些能够直接进行分割的目标日志直接进行分割,避免了对每个目标日志均利用目标正则表达式的方式进行分割,从而节约系统资源。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,在利用目标正则表达式分割目标日志之后,进一步包括:

当判断出分割得出的目标字段与预设告警内容相匹配时,发出告警信息。

需要说明的是,在本实施例中,是在利用目标正则表达式分割目标日志之后,也即得出目标字段之后,利用分割得出的目标字段与预设告警内容进行匹配,也即判断分割得出的目标字段中是否存在与预设告警内容相匹配的内容,当存在与预设告警内容相匹配的目标字段时,则发出告警信息。

具体的,发出告警信息的方式可以是通过蜂鸣器、指示灯或语音播放器的方式,也可以通过触发生成对应的邮件信息,并将该邮件信息发送给指定的用户的方式发出告警信息,本实施例对此不做限定。需要说明的是,在本实施例中,在发送告警邮件时,还可以进一步获取该目标字段对应的目标日志、与预设告警内容相匹配的字段以及该匹配结果对应的风险级别等信息,并将这些信息增加至告警邮件中,发送给指定的用户。可以理解的是,本实施例中,发出告警信息的主要目的在于使得用户知晓当前分割得出的目标字段的情况,从而得出目标日志的情况,因此对具体的告警提示方法不做限定。

显然,本实施例通过检测目标字段是否与预设告警内容相匹配,从而判断目标日志中是否存在异常情况;或者说,通过对目标日志的内容进行检测,以判断目标应用的运行情况。另外需要说明的是,由于本实施例是利用对目标日志分割后得到的目标字段与预设告警内容进行匹配,因此相较于对整个目标日志进行预设内容匹配的方式,本实施例的方法,不仅能够有针对性地对某些字段进行匹配,而且本方法是对目标日志与预设告警内容进行更细粒度的匹配,因此能够使得匹配结果更准确。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,利用样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式具体为:

从云端服务器中获取预先存储的多个正则表达式;

利用样本日志判断多个正则表达式中是否存在目标正则表达式。

具体的,云端服务器指的是用于存储正则表达式并且能够提供http服务的服务器。也就是说,云端服务器能够接收本地应用发送的正则表达式并进行存储,也能够在接收到本地应用的指令时,将存储的正则表达式下发至本地应用。

作为优选的实施方式,在本实施例中,是从云端服务器中获取预先存储的多个正则表达式,也即,正则表达式是预先存储于云端服务器中的,当获取到目标日志时,则先从云端服务器下载所有的正则表达式,然后利用分别利用下载的正则表达式对样本日志进行分割,并得出目标正则表达式;或者,依次从云端服务器下载正则表达式并对样本日志进行分割,直至得出目标正则表达式或云端服务器将所有的正则表达式都发送完毕。

需要说明的是,预先存储于云端服务器中的正则表达式一般是技术人员预先设置的正则表达式,作为优选的实施方式,本实施例是将根据上述实施例的步骤得出的目标正则表达式也存储至云端服务器中,以增大云端服务器中存储的正则表达式的数量,从而使得能够获取到的正则表达式的类型越多。

可见,本实施例提供的方法,通过从云端服务器中获取预先存储的多个正则表达式,由于云端服务器中存储的正则表达式的类型更多,因此能够增大从预先存储的正则表达式中确定出目标正则表达式的概率,从而能够提高对目标日志进行分割的效率。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,在得出目标正则表达式之后,进一步包括:

为目标正则表达式设置与目标应用对应的标识信息。

具体的,在得出目标正则表达式之后,可以进一步为目标正则表达式设置标识信息,标识信息可以是对该目标正则表达式设置对应的序号,也可以是其他类型的标识信息,本实施例对此不做限定。在本实施例中,是通过对目标正则表达式设置与该目标日志的对应标记,设置出目标日志与目标正则表达式的对应关系,使得后期不仅能够知晓不同的应用所对应的正则表达式的具体内容,以便于在再次需要对与该目标应用相同或相似的应用的日志进行分割时,能够更快速地确定出对应的目标正则表达式;此外,通过对目标正则表达式设置与目标应用对应的标识信息,因此后期能够了解到各正则表达式分别能够对哪些应用的日志进行分割,从而进一步分析各种类型的应用的发展趋势。

需要说明的是,在具体实施中,在获取到目标应用的日志之后,还可以进一步对获取各日志的情况进行统计,例如统计出各日志的具体时间的分布情况等,从而分析目标应用的运行状态。更进一步的,可以对各不同的应用的日志进行统计,如预设时间段内获取到各不同应用的日志的总数等,从而可以分析各种应用的运行情况。

此外,在具体实施中,还可以使用可视化模块查询和搜索获取到的日志,并将日志的信息和/或对目标日志进行分割得出的目标字段以图表方式展示。需要说明的是,可视化模块指的是能够依据统计的时间、数值或日志内容等信息生成对应的报表、图像等,从而更直观地展现获取到的日志的信息,进一步提升用户的使用体验。

为了使本技术领域的人员更好地理解本申请中的技术方案,下面结合实际应用场景对本申请实施例中的技术方案进行详细说明。结合图3所示的又一种应用的日志分割方法的流程图,本实施例提供的应用的日志分割方法具体步骤如下:

s101:设置目标应用的日志的存储路径,并通过运行预设的采集脚本获取目标应用的日志;

s102:检测并确定出日志的日志格式;

s103:当日志格式为无固定分隔符格式时,则向云端服务器发送获取指令,以便从云端服务器中获取预先存储的多个正则表达式;

s104:利用多个正则表达式对样本日志进行分割,得出多个第一样本字段;

s105:分别将各第一样本字段的字段格式与目标应用的标准字段格式进行比较,并得出第一样本字段中与目标应用的标准字段格式一致的目标第一样本字段,对应的,将样本日志分割成目标第一样本字段的正则表达式即为目标正则表达式;

s106:当多个正则表达式中不存在目标正则表达式时,则获取根据样本日志设置的分隔符,并利用分隔符分割样本日志,得到第二样本字段;

s107:当比较出第二样本字段的字段格式与目标应用的标准字段格式一致时,利用分隔符设置出目标正则表达式;

s108:利用目标正则表达式对目标日志进行分割,得到目标字段;

s109:将目标字段与预设告警内容进行匹配,并在匹配成功时,发出告警信息;

s110:为目标正则表达式设置与目标应用相对应的标识信息;

s111:将目标正则表达式存储至云端服务器中。

需要说明的是,本实施例提供的方法中的具体步骤,已在上述实施例中进行详细的描述,因此此处不再赘述。

本实施例提供的应用的日志分割方法,相较于现有技术,不需要技术人员为需要进行日志分割的目标应用设置对应的目标正则表达式,而是通过从云端服务器中获取预先存储的多个正则表达式,并从多个正则表达式中,利用样本日志匹配得出目标正则表达式,或者根据目标日志的分隔符设置出目标正则表达式,因此大大减少了技术人员的工作量,节约人力资源;并且本方法能够在目标日志中存在预设告警内容时,进行告警提示;此外,本方法还在得出目标正则表达式之后,为目标正则表达式设置标识信息,以便于后期的分析统计。

上文对于本发明提供的一种应用的日志分割方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的应用的日志分割装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图4为本发明实施例提供的一种应用的日志分割装置的结构图,如图4所示,一种应用的日志分割装置包括:

获取模块41,用于获取目标应用的日志;其中,日志包括样本日志和目标日志;

判断模块42,用于利用样本日志判断预先存储的多个正则表达式中是否存在目标正则表达式;

分割模块43,用于当判断模块的判定结果为存在时,则利用目标正则表达式分割目标日志。

本发明实施例提供的应用的日志分割装置,相较于现有技术中在获取到目标应用的目标日志之后,通过技术人员为目标应用重新配置目标正则表达式的方式,本装置利用样本日志从预先存储的多个正则表达式中获取与目标应用对应的目标正则表达式,再利用该目标正则表达式对目标日志进行分割,因此省略了通过人工重新配置以得出目标正则表达式的过程,从而减少了对人力资源的消耗。

在上述实施例的基础上,本实施例还提供另一种应用的日志分割装置,具体的,本装置进一步包括:

分隔符获取模块,用于获取根据样本日志设置的分隔符;

样本日志分割模块,用于利用分隔符分割样本日志,得到第二样本字段;

格式判断模块,用于判断第二样本字段的字段格式是否与目标应用的标准字段格式一致;

设置模块,用于当格式判断模块的判定结果为是时,则利用分隔符设置出目标正则表达式,并进入利用目标正则表达式分割目标日志的步骤。

作为优选的实施方式,本实施例所提供的应用的日志分割装置,进一步包括:

日志格式检测模块,用于检测样本日志的日志格式;

第一执行模块,用于当日志格式为json格式时,根据json格式分割目标日志;

第二执行模块,用于当日志格式为固定分隔符格式时,利用样本日志中的固定分隔符分割目标日志;

第三执行模块,用于当日志格式为无固定分隔符格式时,则调用判断模块。

作为优选的实施方式,本实施例所提供的应用的日志分割装置,进一步包括:

信息告警模块,用于当判断出分割得出的目标字段与预设告警内容相匹配时,发出告警信息。

作为优选的实施方式,本实施例所提供的应用的日志分割装置,进一步包括:

标识信息设置模块,用于为目标正则表达式设置与目标应用对应的标识信息。

图5为本发明实施例提供的一种应用的日志分割设备的结构图,如图5所示,一种应用的日志分割设备包括:

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

处理器52,用于执行计算机程序时实现如上述应用的日志分割方法的步骤。

本发明实施例提供的应用的日志分割设备,具有上述应用的日志分割方法的有益效果。

为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述应用的日志分割方法的步骤。

本发明实施例提供的计算机可读存储介质,具有上述应用的日志分割方法的有益效果。

以上对本发明所提供的应用的日志分割方法及装置进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

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