一种日志数据的处理方法、处理装置及存储介质与流程

文档序号:22436451发布日期:2020-10-02 10:29阅读:157来源:国知局

本发明涉及数据分析处理技术领域,尤其涉及一种日志数据的处理方法、处理装置及存储介质。



背景技术:

日志数据处理系统用于采集、分析、归并和存储来自于整个局域网的安全事件信息。日志数据处理系统需要采集各类安全防护设备、网络设备、主机及应用系统等多种数据类型的日志,然而各设备厂商的日志格式和数据类型不尽相同。

目前,日志数据处理系统主要采用分析程序对各种数据类型的日志进行分析。但是,随着网络产品的日益增多,日志的数据类型不断增加,需要对分析程序中的程序代码进行适应性修改,这不利于提高日志数据处理的效率。

因此,需要提供一种日志数据的处理方法、处理装置及存储介质来解决上述问题。



技术实现要素:

本发明要解决的技术问题在于随着日志的数据类型不断增加,日志数据处理的效率不高,针对现有技术中的缺陷,提供一种日志数据的处理方法、处理装置及存储介质。

为了解决上述技术问题,本发明提供了一种日志数据的处理方法,包括:

获取并加载至少一个第一配置文件和至少一个第二配置文件;其中,所述第一配置文件携带有至少一个归并规则,所述第二配置文件携带有格式化规则,所述格式化规则中包括至少一个正则表达式;

采集待处理日志事件的第一日志数据;

判断所述至少一个正则表达式能否对所述第一日志数据进行解析;

如果所述至少一个正则表达式能对所述第一日志数据进行解析,则将所述第一日志数据进行解析,并生成第二日志数据;

根据所述格式化规则,对所述第二日志数据进行格式化,并生成第三日志数据;

根据所述第三日志数据,确定所述至少一个归并规则中的目标归并规则;

根据所述目标归并规则,对所述第三日志数据进行归并;

判断携带有所述第一日志数据的日志事件是否为首次出现,如果是,则对归并后的所述第三日志数据进行上报和存储;

如果不是,则对携带有所述第一日志数据的日志事件出现的次数进行累加;

循环执行所述采集待处理日志事件的第一日志数据,直至对该日志事件进行归并的时间达到预设的时间,对归并后的所述第三日志数据进行上报。

可选地,所述根据所述目标归并规则,对所述第三日志数据进行归并,包括:

根据所述正则表达式,确定所述第三日志数据的属性信息;

根据所述目标归并规则和所述第三日志数据的属性信息,对所述第三日志数据进行归并。

可选地,所述采集待处理日志事件的第一日志数据,包括:

采集所述日志事件,对所述日志事件按照设定时间进行轮询,直至轮询得到所述第一日志数据。

可选地,所述第一日志数据包括第一数量字符,所述正则表达式包括第二数量子表达式;

所述判断所述至少一个正则表达式能否对所述第一日志数据进行解析,包括:

针对任意一个正则表达式,根据如下公式计算该正则表达式对所述第一日志数据进行匹配的匹配值:

其中,所述q用于表征正则表达式对日志数据进行匹配的匹配值,所述m用于表征所述第一数量字符,所述n用于表征所述第二数量字符,所述ki用于表征第i个子表达式对日志数据进行匹配的比例因子,所述hi用于表征第i个子表达式是否对日志数据进行匹配的因子,所述xij用于表征第i个子表达式是否匹配到日志数据的第j个字符,所述gij用于表征第i个字表达式对日志数据第j个字符进行匹配所占的权重,f(hi,xij,gij)用于表征正则表达式第i个子表达式对日志数据的第j个字符进行匹配的匹配值;

如果存在一个正则表达式对所述第一日志数据进行匹配的匹配值大于预设匹配值,则确定该正则表达式能对所述第一日志数据进行解析;

如果任意一个正则表达式对所述第一日志数据进行匹配的匹配值都不大于预设匹配值,则确定该正则表达式不能对所述第一日志数据进行解析。

可选地,如果所述至少一个正则表达式不能对所述第一日志数据进行解析,则根据所述第一日志数据确定目标正则表达式;

根据所述目标正则表达式,确定目标格式化规则;

获取并加载至少一个第三配置文件;其中,所述第三配置文件携带有所述目标格式化规则。

本发明还提供了一种日志数据的处理装置,包括:加载模块、采集模块、判断模块、处理模块、归并模块和循环执行模块;

所述加载模块,用于获取并加载至少一个第一配置文件和至少一个第二配置文件;其中,所述第一配置文件携带有至少一个归并规则,所述第二配置文件携带有格式化规则,所述格式化规则中包括至少一个正则表达式;

所述采集模块,用于采集待处理的第一日志数据;

所述判断模块,用于判断所述加载模块加载至内存的所述第二配置文件中的所述至少一个正则表达式能否对所述第一日志数据进行解析;

所述处理模块,用于如果所述判断模块判断出所述至少一个正则表达式能对所述第一日志数据进行解析,则将所述采集模块采集到的所述第一日志数据进行解析,生成第二日志数据,并根据所述格式化规则,对所述第二日志数据进行格式化,生成第三日志数据;

所述归并模块,用于根据所述处理模块生成的所述第三日志数据,确定所述至少一个归并规则中的目标归并规则,并根据所述目标归并规则,对所述第三日志数据进行归并;

所述循环执行模块,用于执行如下步骤:

判断携带有所述第一日志数据的日志事件是否为首次出现,如果是,则将所述归并模块归并后的所述第三日志数据进行上报和存储;

如果不是,则对携带有所述第一日志数据的日志事件出现的次数进行累加;

采集循环执行所述采集待处理日志事件的第一日志数据,直至对该日志事件进行归并的时间达到预设的时间,对归并后的所述第三日志数据进行上报。

可选地,所述归并模块,用于执行如下操作:

根据所述正则表达式,确定所述第三日志数据的属性信息;

根据所述目标归并规则和所述第三日志数据的属性信息,对所述第三日志数据进行归并。

可选地,所述采集模块,用于执行如下操作:

采集所述日志事件;

对所述日志事件按照设定时间进行轮询,直至轮询得到所述第一日志数据。

本发明实施例还提供了一种数据的处理装置,该装置包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,执行上述一种日志数据处理方法中的任一所述的方法。

本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述一种日志数据处理方法中的任一所述的方法。

实施本发明的一种日志数据的处理方法、处理装置及存储介质,具有以下有益效果:

通过将编写的归并规则和格式化规则作为配置文件,并在系统启动运行时,将携带有归并规则的配置文件和携带有格式化规则的配置文件加载到内存中,用于对采集到的日志数据进行格式化操作和归并操作。由于是采用加载配置文件的方式进行日志数据处理,因此,当日志数据类型需要修改或更新时,只需要在配置文件中进行修改并重新加载,解决了采用编程的方式对数据进行修改难度较大的问题。因此,这不仅能够提升系统的可扩展性和可维护性,还可以提升日志数据处理的效率。此外,本方案通过设定一个日志事件的归并周期,判断对该日志事件进行归并的时间是否达到归并周期,以确定是否需要将该日志事件进行上报和存储,如此用户可以根据需要,针对不同的事件类型设定合适的归并周期,而不用将每一个归并后的日志数据都进行上报和/或存储,这有利于提升系统的执行效率,也有利于用户的管理。

附图说明

图1是本发明一个实施例提供的一种日志数据的处理方法的流程图;

图2是本发明另一个实施例提供的一种日志数据的处理方法的流程图;

图3是本发明一个实施例提供的一种日志数据的处理装置所在设备的示意图;

图4是本发明一个实施例提供的一种日志数据的处理装置的示意图。

具体实施方式

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

如图1所示,本发明实施例提供了一种日志数据的处理方法,该方法可以包括如下步骤:

步骤101:获取并加载至少一个第一配置文件和至少一个第二配置文件;其中,所述第一配置文件携带有至少一个归并规则,所述第二配置文件携带有格式化规则,所述格式化规则中包括至少一个正则表达式;

步骤102:采集待处理的第一日志数据;

步骤103:判断所述至少一个正则表达式能否对所述第一日志数据进行解析;

如果所述至少一个正则表达式能对所述第一日志数据进行解析,则将所述第一日志数据进行解析,并生成第二日志数据;

步骤104:根据所述格式化规则,对所述第二日志数据进行格式化,并生成第三日志数据;

步骤105:根据所述第三日志数据,确定所述至少一个归并规则中的目标归并规则;

步骤106:根据所述目标归并规则,对所述第三日志数据进行归并;

步骤107:判断携带有所述第一日志数据的日志事件是否为首次出现,如果是,则对归并后的所述第三日志数据进行上报和存储;

步骤108:如果不是,则对携带有所述第一日志数据的日志事件出现的次数进行累加;

循环执行所述采集待处理的第一日志数据,直至对该日志事件进行归并的时间达到预设的时间,对归并后的所述第三日志数据进行上报。

在本发明实施例中,本发明提供的一种日志数据的处理方法通过将编写的归并规则和格式化规则作为配置文件,并在系统启动运行时,将携带有归并规则的配置文件和携带有格式化规则的配置文件加载到内存中,用于对采集到的日志数据进行格式化操作和归并操作。由于是采用加载配置文件的方式进行日志数据处理,因此,当日志数据类型需要修改或更新时,只需要在配置文件中进行修改并重新加载,解决了采用编程的方式对数据进行修改难度较大的问题。因此,这不仅能够提升系统的可扩展性和可维护性,还可以提升日志数据处理的效率。此外,本方案通过设定一个日志事件的归并周期,判断对该日志事件进行归并的时间是否达到归并周期,以确定是否需要将该日志事件进行上报和存储,如此用户可以根据需要,针对不同的事件类型设定合适的归并周期,而不用将每一个归并后的日志数据都进行上报和存储,这有利于提升系统的执行效率,也有利于用户的管理。

基于图1所示的一种日志数据的处理方法,在本发明实施例中,所述根据所述目标归并规则,对所述第三日志数据进行归并,包括:

根据所述正则表达式,确定所述第三日志数据的属性信息;

根据所述目标归并规则和所述第三日志数据的属性信息,对所述第三日志数据进行归并。

在本发明实施例中,当需要重点关注某一日志事件的某一类型日志数据,并需要对该类型日志数据进行归并时,可以针对性的确定该类型日志数据中的属性信息,进而通过正则表达式对该日志数据中的属性信息进行提取和转换,然后根据归并规则对该转换后的日志数据进行归并,由此可以看出,该方案可以对日志数据的某些信息进行重点关注,不用对完整的日志数据进行整理和分析,如此能够使用户关注和管理时更加具有针对性,从而可以节省大量的时间。

基于图1所示的一种日志处理方法,在本发明实施例中,所述采集待处理的第一日志数据,包括:

采集所述日志事件,对所述日志事件按照设定时间进行轮询,直至轮询得到所述第一日志数据。

在本发明实施例中,进行日志数据采集时,可以采用被动的数据接收来获取日志数据,也可以采用主动的方式,在规定间隔时间对日志事件进行访问来获取日志数据,如此用户可以根据所要关注的事件类型或事件所出现的频率有针对性的选择数据采集方式,从而避免系统占用大量的内存,导致系统的执行效率降低。

基于图1所示的一种日志数据的处理方法,在本发明实施例中,所述第一日志数据包括第一数量字符,所述正则表达式包括第二数量子表达式;

所述判断所述至少一个正则表达式能否对所述第一日志数据进行解析,包括:

针对任意一个正则表达式,根据如下公式计算该正则表达式对所述第一日志数据进行匹配的匹配值:

其中,所述q用于表征正则表达式对日志数据进行匹配的匹配值,所述m用于表征所述第一数量字符,所述n用于表征所述第二数量字符,所述ki用于表征第i个子表达式对日志数据进行匹配的比例因子,所述hi用于表征第i个子表达式是否对日志数据进行匹配的因子,所述xij用于表征第i个子表达式是否匹配到日志数据的第j个字符,所述gij用于表征第i个字表达式对日志数据第j个字符进行匹配所占的权重,f(hi,xij,gij)用于表征正则表达式第i个子表达式对日志数据的第j个字符进行匹配的匹配值;

如果存在一个正则表达式对所述第一日志数据进行匹配的匹配值大于预设匹配值,则确定该正则表达式能对所述第一日志数据进行解析;

如果任意一个正则表达式对所述第一日志数据进行匹配的匹配值都不大于预设匹配值,则确定该正则表达式不能对所述第一日志数据进行解析。

在本发明实施例中根据正则表达式对字符进行匹配的原理,将日志数据确定为由m个字符组成,同时将对该日志数据进行解析的正则表达式确定为由n个子表达式组成,如此通过上述公式可以计算出每个正则表达式对该日志数据进行匹配的匹配值,进而通过判断该匹配值与预设的匹配值的大小以确定该正则表达式能否对该日志数据进行解析,因此,该方案能够提升正则表达式对日志数据进行匹配的准确率。

基于图1所示的一种日志数据的处理方法,在本发明实施例中,在判断所述至少一个正则表达式能否对所述第一日志数据进行解析之后,进一步包括:

如果所述至少一个正则表达式不能对所述第一日志数据进行解析,则根据所述第一日志数据确定目标正则表达式;

根据所述目标正则表达式,确定目标格式化规则;

获取并加载至少一个第三配置文件;其中,所述第三配置文件携带有所述目标格式化规则。

在本发明实施例中,如果在对采集到的日志数据进行解析时没有解析成功,可以对该日志数据编写格式化规则,因此,该方案具有通用性,可以适用于任意日志事件的归并。

如图2所示,本发明另一个实施例还提供了一种日志数据处理的方法,该方法可以包括如下步骤:

步骤201:获取并加载配置文件。

在本步骤中,进行配置文件加载时,可以加载一个也可以同时加载多个配置文件。配置文件中根据需要可以针对事件类型而携带不同类型的归并规则以及格式化格则。例如,加载至内存的携带有格式化规则的配置文件主要包括正则表达式的值,从而可以用于对日志文件的内容进行提取和格式转换,进一步将相应的内容与正则表达式作匹配操作,并对匹配上的数据进行相应的格式转换。

步骤202:采集待处理日志事件的第一日志数据。

在本步骤中,从一方面来说,日志数据的采集模块具有被动接收模式和主动询问模式这两种工作模式,在被动接收模式下,采集模块与其所管理的代理单元保持网络连接,从而代理单元实时采集日志信息并将传送给采集模块。在主动询问模式下,当数据采集模块需要日志数据时调用代理单元来采集日志数据,从而完成对日志数据的进一步处理。因此该数据采集方式可以根据需要选择工作模式,以解除数据实时采集时所占用的大量内存,以提升数据处理的效率。

另一方面来讲,日志数据的采集采用分布式采集的方式,主要可以包括三种:第一种是专用的采集代理,通过安装在主机中的软件代理进行采集;第二种是日志协议采集,该采集方式支持http、icmp、snmp、udp、tcp、sys、ssh等协议,能广泛支持不同厂家的设备;第三种是监控第三方探针采集方式,该方式可以兼容ntop、nmap、collected等监控采集软件。因此,日志数据的采集方式具有多种,并且可以支持多种协议,从而使得日志数据的采集方式更加具有通用性,以适用于各种类型的日志数据。

步骤203:判断正则表达式能否对第一日志数据进行解析。

引擎决定了正则表达式匹配方法及内部搜索过程,目前主要流行引擎有dfa和nfa两种引擎,dfa以字符串字符,逐个在正则表达式匹配查找,而nfa以正则表达式为主,在字符串中逐一查找,现以nfa进行举例说明。对于字符串“def”而言,包括d、e、f三个字符和0、1、2、3四个数字位置:0d1e2f3,对于正则表达式而言所有源字符串,都有字符和位置。正则表达式会从0号位置,逐个去匹配。例如,对于源字符def,对应标记是:0d1e2f3,匹配正则表达式是:/d\w+f/的过程就可以理解为:首先由正则表达式字符/d/取得控制权,从位置0开始匹配,由/d/来匹配“d”,匹配成功,控制权交给字符/\w+/;由于“d”已被/d/匹配,所以/\w+/从位置1开始尝试匹配,\w+贪婪模式,会记录一个备选状态,默认会匹配最长字符,直接匹配到ef,并且匹配成功,此时到当前位置3了。然后把控制权交给/f/,由/f/匹配失败,\w+匹配会回溯一位,当前位置变成2。并把控制权交个/f/,由/f/匹配字符f成功。因此\w+这里匹配e字符,匹配完成。如此可完成日志数据的匹配,即可实现对日志数据的解析。

进一步,在本发明实施例中,通过将日志数据确定为由m个字符组成,将对该日志数据进行解析的正则表达式确定为由n个字表达式组成,通过公式计算该正则表达式对该日志数据进行匹配的匹配值,并判断该匹配值与预设匹配值的大小以确定该正则表达式能否对该日志数据进行解析,匹配值计算的公式如下:

其中,所述q用于表征正则表达式对日志数据进行匹配的匹配值,所述m用于表征所述第一数量字符,所述n用于表征所述第二数量字符,所述ki用于表征第i个子表达式对日志数据进行匹配的比例因子,所述hi用于表征第i个子表达式是否对日志数据进行匹配的因子,所述xij用于表征第i个子表达式是否匹配到日志数据的第j个字符,所述gij用于表征第i个字表达式对日志数据第j个字符进行匹配所占的权重,f(hi,xij,gij)用于表征正则表达式第i个子表达式对日志数据的第j个字符进行匹配的匹配值;

例如,通过计算得出了a正则表达式对第一日志数据进行解析的匹配值为0.682,b正则表达式对第一日志数据进行解析的匹配值为0.982,c正则表达式对第一日志数据进行解析的匹配值为0.311,预设匹配值为0.95,如此,可以确定存在b正则表达式可以对该第一日志数据进行解析。

步骤204:如果正则表达式能对日志数据进行解析,则将第一日志数据进行解析,并生成第二日志数据。

在本步骤中,如果根据配置文件中的正则表达式,通过上述例中的解析过程实现了对第一日志数据的解析,则将该日志数据进行解析生成第二日志数据。

步骤205:如果正则表达式不能对第一日志数据进行解析,则需要根据第一日志数据确定目标正则表达式,并根据目标正则表达式确定格式化规则,以通过配置文件的形式加载至内存中。

在本步骤中,如果加载至内存中的配置文件中没有能够对第一日志数据进行解析的正则表达式,则可以根据该第一日志数据编写正则表达式,并以配置文件的形式重新加载至系统内存中,如此当再次对该第一日志数据进行解析时,利用重新加载进去的正则表达式即可解析成功。

步骤206:根据格式化规则,对第二日志数据进行格式化,并生成第三日志数据。

在本步骤中,需要将解析后的第二日志数据进行格式化操作。具体地,对于一个日志事件,其可能包含的内容有日志接收时间、产生时间、持续时间、用户名称、源地址、源mac地址、源端口、目的地址、目的mac地址、目的端口、操作、日志事件名称、事件等级、事件类型、事件主体、事件内容和协议等,通过编写正则表达式,有针对性的对事件的一些信息进行提取,并完成格式化操作。

例如,对如下原始报文进行解析和格式转换过程:

原始报文:

<188>2018/09/1414:48:00usg6600%%01ddos/4/firewallatck(l):attacktype="largeicmpattack",slot="",cpu="0",receiveinterface="ge1/0/0",proto="icmp",src="192.168.1.194:0",dst="192.168.1.223:0",begintime="2018-9-1414:47:40",endtime="2018-9-1414:47:54",totalpackets="4",maxspeed="0",user="",action="discard".

格式化规则(格式化规则文件内容为正则表达式):

如下内容所示为该例中的原始报文经正则表达式后所提取到的日志数据信息:

item["level"]=188

item["date"]=2018/09/1414:48:00

item["device_name"]=usg6600

item["device_type"]=fw

item["event_type"]=firewallatck

item["event_stype"]=0

item["message1"]=largeicmpattack

item["message2"]=192.168.1.194

item["message3"]=0

item["message4"]=192.168.1.223

item["message5"]=0

进一步,将提取出的日志数据进行格式化处理得到如下格式的日志数据:

<1>2020-08-1214:48:00dcd_namedcd2020-08-1214:48:00asset_name192.168.1.2vendorsvr321192.168.1.1920192.168.1.2230largeicmpattack

步骤207:根据第三日志数据,确定目标归并规则,并根据目标归并规则对第三日志数据进行归并;

在本步骤中,归并规则是以配置文件的形式加载至系统内存中的,配置文件加载时可以加载有多个配置文件,换句话说,根据不同的数据类型或不同的事件类型,需要在系统内存中确定对即将要处理的第三日志事件的目标归并规则,从而根据确定的该目标归并规则完成对日志事件的归并。

归并规则对应数据的结构,一种类型的数据对应一种类型的合并规则,合并规则具有的属性可以包括:使能(enable)、合并队列的限制长度(length)、合并时间间隔(time)和类型(type)。例如enable通过取值0或1来分别表示是否需要归并,length用于表示归并队列的长度,time用于表示归并操作的时间,type用于对应数据的类型值。具体地,对4582类型的归并规则可以定义为:<enable=”1”,length=”100”.time=”15”,type=”4582”>,在合并规则下进一步会包括规则策略,而归并规则策略的属性可以包括标识id、归并过滤模式以及归并策略说明等,如此可以定义出归并策略规则,再进一步,归并策略下有对应数据结构中每个字段的字段合并策略,该策略中可以包括结构体字段中的名称和合并方式等属性,如此可以具体的根据日志数据确定出对应的归并规则,以进一步根据该归并规则对日志数据进行归并。

步骤208:判断携带有第一日志数据的日志事件是否为首次出现,如果是,则对归并后的第三日志数据进行上报和存储。

在具体应用过程中,并不是会将每一个归并日志数据后的日志事件进行上报,而是需要将一段时间内归并日志数据后的日志事件进行上报,而当一个日志事件第一次出现,或者该日志事件是在某一个归并周期内第一次出现,也需要将该日志事件进行上报。

步骤209:如果不是,则对携带有第一日志数据的日志事件出现的次数进行累加。

对日志事件进行归并的过程都会存在一个归并周期,例如,a事件的归并周期为15min,当完成一次a事件日志数据的归并后,通过判断确定了在该归并周期内,a事件并不是首次出现,则此时需要对a事件日志数据的归并次数进行记录,并继续执行对下一个日志数据的归并操作。

步骤210:循环执行所述采集待处理日志事件的第一日志数据,直至对该日志事件进行归并的时间达到预设的时间,对归并后的所述第三日志数据进行上报。

在本步骤中,如果判断出携带有第一日志数据的日志事件不是首次出现,则需要循环执行日志数据的采集操作,直至对该日志事件进行归并的时间达到预设的时间后,将该日志事件的日志数据进行上报。例如,对于一个应用程序a来说,根据实际需求,需要记录10min内登入该应用程序的日志数据,如此,可以设置归并周期为10min,如此,系统会以10min的间隔时间对该日志事件进行上报。另外,在一个归并周期内,当日志事件首次出现时,系统会进行上报并存储,当一个归并周期满后,系统会将该日志事件进行上报,并初始化重新开始统计。

如图3和图4所示,本发明实施例提供了一种日志数据的处理装置所在的设备和一种日志数据的处理装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供了一种日志数据的处理装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的cpu将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。如图4所示,本发明实施例提供了一种日志数据的处理装置,该装置包括:加载模块401、采集模块402、判断模块403、处理模块404、归并模块405和循环执行模块406;

加载模块401,用于获取并加载至少一个第一配置文件和至少一个第二配置文件;其中,第一配置文件携带有至少一个归并规则,第二配置文件携带有格式化规则,格式化规则中包括至少一个正则表达式;

采集模块402,用于采集待处理的第一日志数据;

判断模块403,用于判断加载模块401加载至内存的第二配置文件中的至少一个正则表达式能否对所述采集模块402采集到的所述第一日志数据进行解析;

处理模块404,用于如果判断模块403判断出至少一个正则表达式能对第一日志数据进行解析,则将采集模块402采集到的第一日志数据进行解析,生成第二日志数据,并根据格式化规则,对第二日志数据进行格式化,生成第三日志数据;

归并模块405,用于根据处理模块404生成的第三日志数据,确定至少一个归并规则中的目标归并规则,并根据目标归并规则,对第三日志数据进行归并。

所述循环执行模块406,用于执行如下操作:

判断携带有第一日志数据的日志事件是否为首次出现,如果是,则对归并模块405归并后的第三日志数据进行上报和/或存储;

如果不是,则对携带有第一日志数据的日志事件出现的次数进行累加;

采集模块402循环执行采集待处理的第一日志数据,直至对该日志事件进行归并的时间达到预设的时间,并将归并模块405归并后的第三日志数据进行上报。

在图4所示的一种日志数据的处理装置的示意图中,归并模块405用于执行如下操作:

根据加载模块401加载至内存中的第二配置文件中的正则表达式,确定第三日志数据的属性信息;

根据目标归并规则和第三日志数据的属性信息,对第三日志数据进行归并。

在图4所示的一种日志数据的处理装置的示意图中,处理模块404用于执行如下操作:

如果判断模块403判断出至少一个正则表达式不能对采集模块402采集到的第一日志数据进行解析,则根据采集模块402采集到的第一日志数据确定目标正则表达式;

根据目标正则表达式,确定目标格式化规则,并获取和加载至少一个第三配置文件;其中,第三配置文件携带有目标格式化规则。

本发明实施例还提供了一种数据的处理装置,其特征在于,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例中的日志数据的处理方法。

本发明实施例还提供了一种存储介质,该存储介质存储有计算机指令,计算机指令在被处理器执行时,使处理器执行本发明任一实施例中的日志数据的处理方法。具体地,可以提供配有存储介质的方法或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该方法或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作方法等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

综上所述,本发明各个实施例提供一种日志数据的处理方法、装置和存储介质,至少具有如下有益效果:

1、在本发明实施例中,通过将编写的归并规则和格式化规则作为配置文件,并在系统启动运行时,将携带有归并规则的配置文件和携带有格式化规则的配置文件加载到内存中,用于对采集到的日志数据进行格式化操作和归并操作。由于是采用加载配置文件的方式进行日志数据处理,因此,当日志数据类型需要修改或更新时,只需要在配置文件中进行修改并重新加载,解决了采用编程的方式对数据进行修改难度较大的问题。因此,这不仅能够提升系统的可扩展性和可维护性,还可以提升日志数据处理的效率。此外,本方案通过设定一个日志事件的归并周期,判断对该日志事件进行归并的时间是否达到归并周期,以确定是否需要将该日志事件进行上报和存储,如此用户可以根据需要,针对不同的事件类型设定合适的归并周期,而不用将每一个归并后的日志数据都进行上报和/或存储,这有利于提升系统的执行效率,也有利于用户的管理。

2、在本发明实施例中,当需要重点关注某一日志事件的某一类型日志数据,并需要对该类型日志数据进行归并时,可以针对性的确定该类型日志数据中的属性信息,进而通过正则表达式对该日志数据中的属性信息进行提取和转换,然后根据归并规则对该转换后的日志数据进行归并,由此可以看出,该方案可以对日志数据的某些信息进行重点关注,不用对完整的日志数据进行整理和分析,如此能够使用户关注和管理时更加具有针对性,从而可以节省大量的时间。

3、在本发明实施例中,当需要进行日志数据采集时,可以采用被动的数据接收来获取日志数据,也可以采用主动的方式,在规定间隔时间对日志事件进行访问来获取日志数据,如此用户可以根据所要关注的事件类型或事件所出现的频率有针对性的选择数据采集方式,从而避免系统占用大量的内存,导致系统的执行效率降低。

4、在本发明实施例中,根据正则表达式对字符进行匹配的原理,将日志数据确定为由m个字符组成,同时将对该日志数据进行解析的正则表达式确定为由n个子表达式组成,如此通过上述公式可以计算出每个正则表达式对该日志数据进行匹配的匹配值,进而通过判断该匹配值与预设的匹配值的大小以确定该正则表达式能否对该日志数据进行解析,因此,该方案能够提升正则表达式对日志数据进行匹配的准确率。

5、在本发明实施例中,如果在对采集到的日志数据进行解析时没有解析成功,可以对该日志数据编写格式化规则,因此,该方案具有通用性,可以适用于任意日志事件的归并。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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