CN112882713B - 一种日志解析的方法、装置、介质及计算机设备 - Google Patents
一种日志解析的方法、装置、介质及计算机设备 Download PDFInfo
- Publication number
- CN112882713B CN112882713B CN201911199808.6A CN201911199808A CN112882713B CN 112882713 B CN112882713 B CN 112882713B CN 201911199808 A CN201911199808 A CN 201911199808A CN 112882713 B CN112882713 B CN 112882713B
- Authority
- CN
- China
- Prior art keywords
- log data
- template
- analysis
- parser
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 129
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000007405 data analysis Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本文是关于一种日志解析方法、装置、介质及计算机设备,涉及日志数据解析技术。本文提供的一种日志解析方法,包括:为待解析的日志数据选择解析器;将所述日志数据与选择的解析器对应的模板进行匹配;使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果。本文通过为一个解析器配置多个模板,可以对来自同一个日志源的所有格式的日志数据使用同一个解析器进行解析。从而提高了解析器的灵活性和扩展性,大大增强了日志解析的适配性,提高了日志解析的解析效率。
Description
技术领域
本文涉及日志数据解析技术,尤其涉及一种日志解析方法、装置、介质及计算机设备。
背景技术
深度威胁识别系统Atd-rt实时引擎(advanced thread detection-real-time),最核心的功能就是分析客户业务输入的实时日志流,分析出安全威胁事件。作为一个通用的大数据日志安全分析平台,面临的第一个问题便是输入日志源的多样性的解析及归一化。
相关技术中对日志进行解析时,主要存在如下问题:
目前的日志解析方式,都是预先设定了解析器的模板,然后基于该模板的标注方法去标注日志中的字段,达到解析的目的。例如,可以根据apache、ngnix的典型日志设定模板实现解析。但是,由于设定模板过于单一,这种解析方式提供的适配性服务是比较有限的。且除了设定模板以外,在面对复杂情况还需要应用正则匹配表达式,也就是说,目前的解析方式中解析功能是难以扩展的。
目前的日志解析方式中的配置一般是固定的。而业务系统的日志格式随时间演化会不断发生更新,因此需要对固定的配置进行不断的更新,才可以对更新的日志格式实现解析操作。
发明内容
为克服相关技术中存在的问题,本文提供一种日志解析方法、装置、介质及计算机设备。
根据本文的第一方面,提供一种日志解析方法,包括:
为待解析的日志数据选择解析器;
将所述日志数据与选择的解析器对应的模板进行匹配;
使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果。
可选地,上述方法还包括:
使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果后,从所述解析结果中提取满足预设的再解析的条件的字段;
对提取的字段再次进行模板匹配和解析,直到解析结果中不存在满足预设的再解析的条件的字段时,停止解析操作。
可选地,上述方法中,所述预设的再解析的条件至少包括如下任一个条件:
字段长度达到或超过设定长度;
字段内至少包含两种字段名称。
可选地,上述方法中,所述为所述日志数据选择解析器,包括:
当所述日志数据的格式类型属于基本解析类型时,根据所述日志数据的格式类型为所述日志数据选择基本解析器;
当所述日志数据的格式类型不属于基本解析类型时,为所述日志数据选择正则解析器。
可选地,上述方法,所述将所述日志数据与选择的解析器对应的模板进行匹配,包括:
从所述日志数据中搜索与所述解析器对应的模板的关键词;
当从所述日志数据中搜索到任一模板的关键词时,确定该模板为与所述日志数据匹配的模板。
可选地,上述方法,所述从所述日志数据中搜索与所述解析器对应的模板的关键词,包括:
使用选择的解析器对应的模板索引字典树,搜索与所述日志数据匹配的模板,其中,所述模板索引字典树包括,所述解析器对应的所有模板的索引信息及每个模板的关键词。
根据本文的另一方面,提供一种日志解析装置,包括:
解析器选择模块,用于为待解析的日志数据选择解析器;
模板匹配模块,用于将所述日志数据与选择的解析器对应的模板进行匹配;
解析模块,用于使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果。
可选地,上述装置还包括:
局部字段提取模块,用于在使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果后,从所述解析结果中提取满足预设的再解析的条件的字段;
所述解析模块,用于对提取的字段再次进行模板匹配和解析,直到解析结果中不存在满足预设的再解析的条件的字段时,停止解析操作。
可选地,上述装置中,所述预设的再解析的条件至少包括如下任一个条件:
字段长度达到或超过设定长度;
字段内至少包含两种字段名称。
可选地,上述装置中,所述为所述日志数据选择解析器,包括:
当所述日志数据的格式类型属于基本解析类型时,根据所述日志数据的格式类型为所述日志数据选择基本解析器;
当所述日志数据的格式类型不属于基本解析类型时,为所述日志数据选择正则解析器。
可选地,上述装置中,所述将所述日志数据与选择的解析器对应的模板进行匹配,包括:
从所述日志数据中搜索与所述解析器对应的模板的关键词;
当从所述日志数据中搜索到任一模板的关键词时,确定该模板为与所述日志数据匹配的模板。
可选地,上述装置中,所述从所述日志数据中搜索与所述解析器对应的模板的关键词,包括:
使用选择的解析器对应的模板索引字典树,搜索与所述日志数据匹配的模板,其中,所述模板索引字典树包括,所述解析器对应的所有模板的索引信息及每个模板的关键词。
根据本文的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被执行时实现如上所述的日志解析方法的步骤。
根据本文的另一方面,提供一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的日志解析方法的步骤。
本文通过为一个解析器配置多个模板,可以对来自同一个日志源的所有格式的日志数据使用同一个解析器进行解析。从而提高了解析器的灵活性和扩展性,大大增强了日志解析的适配性,提高了日志解析的解析效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1是相关技术中进行日志解析的流程图。
图2是根据一示例性实施例示出的一种日志解析方法的流程图。
图3是根据一示例性实施例示出的一种日志解析方法中并联解析方式的流程图。
图4是根据一示例性实施例示出的一种日志解析方法中层级解析方式的流程图。
图5是根据一示例性实施例示出的一种日志解析装置的框图。
图6是根据一示例性实施例示出的一种计算机设备的框图。(服务器的一般结构)
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
相关技术中,解析日志数据的基本过程如图1所示。首先,根据日志格式选择可使用的基本解析器,每种基本解析器都有一套具有简单语法规则的配置模板,根据所选择的解析器的配置模板,对输入的日志数据进行语法标注后,得到解析结果。如果日志格式是基本解析器无法解析的,就只能采用正则解析器,编写正则匹配表达式对输入的日志数据进行匹配解析。
而在实际应用中,对于同一种服务类型的日志数据,也有可能具有多种相似的格式。而每种基本解析器只能针对同一种格式的日志数据进行解析,因此,对于这种包含多种相似格式的日志数据无法与基本解析器相匹配,只能选择正则解析器来实现这种多格式的日志数据的匹配(结合正则逻辑或表达式)。
另外,对于来自不同服务类型的日志数据的格式则更加变化无常。面对各式各样的格式,很多情况下即使日志数据在某些局部发生一点小的变化就可能导致无法与基本解析器的配置模板相匹配,即无法使用基本解析器,从而只能选择正则解析器进行解析。
例如,如下为一条原始日志数据的样例:
10.1.1.95-e800[18/Mar/2005:12:21:42+0800]"GET/stats/awstats.pl?config=e800HTTP/1.1"200 899"http://10.1.1.1/pv/""Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;Maxthon)"
如果使用基本解析器中的LogFormat解析器,对日志数据进行语法标注后,得到的解析结果如下:
从得到的解析结果来看,LogFormat解析器解析出了大多数的字段。但是未解析出request字段。对于request字段,其包含了三个重要的字段:请求方法(method)、请求资源路径和请求协议。其中,请求方法为GET,请求资源路径为/stats/awstats.pl?config=e800,请求协议为HTTP/1.1。由于这些字段无法使用LogFormat解析器解析出来,因此,只能使用正则解析器对上述日志数据进行解析。而使用正则解析器时,也存在一些问题。例如,一般正则解析器的配置性较低,是因为配置正确的正则表达式所花费的时间成本比较高。其次,正则解析器的灵活性差,因为日志数据的格式可能会不断的变化,一旦发生变化,正则表达式需要进行更新。而正则解析器的更新成本较高,维护性不高。还有,复杂的正则表达式的性能不可控。一般在一个实时流式处理系统中,一定会流入异常格式的日志,面对这种情况,当然希望是快速失败,不阻塞影响后面的日志流的处理。但是正则表达式一旦编写不好或者变得复杂,面对不匹配的异常日志可能会进行多次回溯匹配,会消耗不必的计算资源。
本实施例提供一种日志解析方法,该方法如图2所示,包括如下操作步骤:
步骤S201,为待解析的日志数据选择解析器;
其中,待解析的日志数据的来源可以包括多种来源。例如,可以是接收到的原始日志数据,也可以是预先存储的日志数据等,本实施例对此不做限制。
上述步骤S201中,可以根据日志数据的格式选择解析器。
例如,当日志数据的格式类型属于基本解析类型时,根据日志数据的格式类型为日志数据选择基本解析器。
当日志数据的格式类型不属于基本解析类型时,为日志数据选择正则解析器。
本文中,基本解析器可以包括相关技术中各种具有基本语法解析功能的解析器。对应的基本解析类型包括所有基本解析器可以解析的日志格式。例如,LogFormat解析器、explode类型解析器等,均属于本文的基本解析器。
步骤S202,将日志数据与选择的解析器对应的模板进行匹配;
该步骤中,解析器对应的模板可以是预先配置的。为同一个解析器配置的模板可以是一个或多个。为解析器配置有多个模板时,多个模板可以是基于相同的语法标注原理配置的。例如,针对同一个日志源的日志数据,可能包括多种格式的日志数据。因此,对于可以解析该日志源的日志数据的解析器,可以配置多个模板。其中,不同的模板分别解析该日志源中不同格式的日志数据。即一种模板与一种格式的日志数据相匹配。
步骤S203,使用与日志数据匹配的模板对日志数据进行解析,得到解析结果。
其中,执行上述步骤S203时,可以分为如下操作:
从日志数据中搜索与解析器对应的模板的关键词;
当从日志数据中搜索到任一模板的关键词时,确定该模板为与日志数据匹配的模板。
实际应用中,可以从解析器对应的所有模板中分别提取关键词,根据每个模板的关键词以及该模块的索引信息生成模板索引字典树。即,模板索引字典树包括,解析器对应的所有模板的索引信息及每个模板的关键词。这样,从日志数据中搜索与解析器对应的模板的关键词时,就可以利用模板索引字典树进行搜索,从而得到与日志数据匹配的模板。其中,模板的索引信息包括唯一地标识出模板的信息。例如,模板的标号,模板的名称等都属于模板的索引信息。
从上述描述可以看出,本文公开的技术方案为一个解析器配置了多个模板,不同的模板分别解析不同格式的日志数据。这样,对于同一个日志源的日志数据而言,即使日志数据的格式略有不同,也可以使用同一个解析器进行解析。即本文提供了一种易于灵活配置、适配性强、扩展性强、准确高效的日志解析方法,能方便简洁地为各种日志源定制日志解析方案,从而快速高效准确地将各种各样不同业务场景不同格式的日志进行解析转换成具有统一模式的结构化消息流,用于后续的安全行为特征分析。
另外,关于上文中关于相关技术中日志解析方案的分析,还发现很多仅仅使用基本类型解析器无法直接解析成目标结果的日志数据,在各个局部字段上更换另一种基本类型的解析器就可以进行解析。如上文中介绍的,使用logformat解析器进行一步尝试解析后,未解析出request字段。而未解析出的request字段可以利用explode解析器按制表符(如制表键Tab键)进行分割,之后可以解析出request包含的具体的字段。又例如,request的URI中可能还包含参数,/request?a=1&b=2,此时还需继续对URI字段进一步解析,提取出参数键值对及request_path。
因此,本实施例还提供一种日志解析方法,该方法在执行完上述步骤S203以后,增加了如下操作:
步骤S204,使用与日志数据匹配的模板对日志数据进行解析,得到解析结果后,从解析结果中提取满足预设的再解析的条件的字段;
步骤S205,对提取的字段再次进行模板匹配和解析,直到解析结果中不存在满足预设的再解析的条件的字段时,停止解析操作。
本实施例中,预设的再解析的条件至少包括如下任一个条件:
字段长度达到或超过设定长度;
字段内至少包含两种字段名称。
其中,预设的再解析的条件可以是日志管理员预先设置的,也可以是从第三方获取的,对此不做特别限制。
本实施例中,涉及的再解析的条件,主要是用于对解析操作得到的解析结果进行分析,通过再解析条件包含的字段长度达到或超过设定长度,或者字段内至少包含了两种字段名称,确定得到的解析结果是否是解析得到的最小单元,从而确定解析结果是否需要再解析。当确定解析得到的并非最小单元时,即存在再解析的需求。此时,可以对已经得到的解析结果中满足再解析的条件的字段进行再次解析即可。其中,在再解析过程中,根据满足再解析的条件的字段选择解析器时,所选择的解析器与最近一次解析操作所选择的解析器的类型可以相同,也可以不相同。再解析的具体过程可参见上述步骤S201至步骤S203的操作,在此不再赘述。
可见,本实施例不仅可以对解析器配置多个模板,而且可以对不同类型的解析器进行层次组合,即可以使用不同的解析器对日志数据进行多层次解析。这种解析方式,得到的解析结果更准确,也增强了日志解析的适配性,提高了日志数据的解析效率。
基于上述实施例的思想,提供一种日志解析方法,该方法为每种解析器绑定多个模板,多个模板可同时与同一条日志数据进行匹配后解析。这种解析方式相当于一种并联解析的方式,只要有一个模板与日志数据匹配,就可以进行正确解析,从而提高日志解析的解析效率。如图3所示,该方法包括如下操作:
步骤S301,接收一条原始日志数据。
步骤S302,判断该原始日志数据的格式类型是否属于基本解析类型,如果是,进入步骤S303,否则进入步骤S307;
步骤S303,为原始日志数据选择一种基本解析器。
该步骤中,可以根据原始日志数据的格式类型选择对应的基本解析器。
步骤S304,将原始日志数据与选择的基本解析器对应的模板进行匹配。
其中,如果原始日志数据与选择的基本解析器对应的模板均不相匹配,可以将该原始日志数据确认为是异常的日志数据。对于异常的日志数据可以丢弃,或者对异常的日志数据进行手动解析等操作。
该步骤S304可分为步骤S304a和步骤S304b:
步骤S304a,使用Trie中包含的模板的关键词与原始日志数据进行匹配。
本实施例中,为了使每条原始日志数据可以快速匹配到有望正确解析的模板,因此预先提取了解析器对应的每个模板中存在的关键词。之后,建立关键词及模板索引的映射表(hashmap),并依据提取的所有关键词构建模板索引字典树(Trie)。这样,原始日志可以通过模板索引字典树的过滤,得以迅速路由到正确的模板进行解析,减少匹配过程中额外耗费的计算资源。
步骤S304b,从Trie中搜索到关键词与原始日志数据相匹配时,将该关键对应的模板索引指示的模板确定为与原始日志数据匹配的模板。
其中,若有多个模板的关键词与原始日志数据相匹配时,可以从相匹配的多个模板中选择一个模板确定为与原始日志数据匹配的模板。选择模板的方式可以是随机选择,也可以按照预设规则选择等,本实施例对此不做特别限制。例如,可以将匹配的多个模板按照索引信息进行排序,将排序中位于第一位的模板确定为与原始日志数据匹配的模板。
步骤S305,使用与原始日志数据匹配的模板进行语法标注解析;
步骤S306,对得到的语法标注解析的结果进行逻辑映射,得到键值对形式的解析结果,结束本流程。
步骤S307,选择正则解析器;
本实施例中,涉及的正则解析器可以是预先编写的解析器。
步骤S308,将原始日志数据与正则解析器对应的模板进行匹配。
该步骤S308可分为步骤S308a和步骤S308b:
步骤S308a,使用Trie中包含的模板的关键词与原始日志数据进行匹配。
其中,为正则解析器建立的Trie与为基本解析器建立的Trie的原理相同,在此不再赘述。
步骤S308b,从Trie中搜索到关键词与原始日志数据相匹配时,将该关键对应的模板索引指示的模板确定为与原始日志数据匹配的模板。
步骤S309,使用与原始日志数据匹配的模板进行语法标注解析,进入步骤S306。
可见,本实施例对每一种解析器配置多个模板,即在纵向上进行了扩展。并结合模板索引字典树索引的并联集合,更加方便地解析同一个日志源的不同格式的日志流。同时,解析效率也更加高效。每一个基本类型的解析器通过这种并联及索引的方式,适配性得以提高。
本实施例提供一种日志解析方法,以上述并联解析方式为基础,通过层次级联的方式来组合不同类型的解析器构架一个级联后的多层日志解析方式。该方法可以在不同层次对中间的解析结果应用任意解析器进行再次解析,直到最终生成扁平化的键值对。该方法的实现过程如图4所示,包括台下操作:
步骤S401,接收一条原始日志数据。
步骤S402,判断该原始日志数据的格式类型是否属于基本解析类型,如果是,进入步骤S403,否则进入步骤S407;
步骤S403,为原始日志数据选择一种基本解析器。
步骤S404,将原始日志数据与选择的基本解析器对应的模板进行匹配。
该步骤S404可分为步骤S404a和步骤S404b:
步骤S404a,使用Trie中包含的模板的关键词与原始日志数据进行匹配。
步骤S404b,从Trie中搜索到关键词与原始日志数据相匹配时,将该关键对应的模板索引指示的模板确定为与原始日志数据匹配的模板。
步骤S405,使用与原始日志数据匹配的模板进行语法标注解析;
步骤S406,对得到的语法标注解析的结果进行逻辑映射,得到键值对形式的解析结果,进入步骤410。
步骤S407,选择正则解析器;
步骤S408,将原始日志数据与正则解析器对应的模板进行匹配。
该步骤S408可分为步骤S408a和步骤S408b:
步骤S408a,使用Trie中包含的模板的关键词与原始日志数据进行匹配。
步骤S408b,从Trie中搜索到关键词与原始日志数据相匹配时,将该关键对应的模板索引指示的模板确定为与原始日志数据匹配的模板。
步骤S409,使用与原始日志数据匹配的模板进行语法标注解析,进入步骤S406。
步骤S410,判断解析得到的键值对是否满足再解析的条件,如果是,进入步骤S411,否则结束本流程。
例如,再解析的条件可以是键值对中的字段长度达到或超过设定长度。此时,判断解析得到的键值对中的字段长度达到或超过设定长度时,认为该键值对满足再解析的条件。又如,再解析的条件可以是键值对的字段内至少包含两种字段名称。此时,判断解析得到的键值对中的字段包含了两种或两种以上的字段名称时,认为该键值对满足再解析的条件。另外,再解析的条件还可以同时包括,键值对中的字段长度达到或超过设定长度,以及字段内至少包含两种字段名称。此时,判断解析得到的键值对同时满足这两个条件时,认为该键值对满足再解析的条件。
步骤S411,提取出满足再解析的条件的键值对,将提取出的键值对做为接收的一条原始日志数据,执行步骤S402的操作。
从上述方法可以看出,本实施例步骤S401至步骤S409的操作与上述图3所示的解析方法相同,应用了单一加强的解析器(即配置有多模板的解析器)。而本实施例在每一个中间输出时,增加了循环解析的环节,即通过在不同层次及局部字段组合应用不同的解析器,本方案完全可以根据日志格式的复杂程度方便生成其自适应的级联的解析模板配置。即,将基本解析器进行层次组合,每个层次每个局部字段可以应用不同类型的解析器进行解析,可以认为是串联解析的方式,这种解析方式可以将复杂问题分而治之,不仅模板配置的语法标注更加简单,对于解析操作而言也是更加高效。
本实施例提供一种日志解析装置,该装置如图5所示,至少包括解析器选择模块51、模板匹配模块52和解析模块53。
其中,解析器选择模块51,被配置为,为待解析的日志数据选择解析器;
模板匹配模块52,被配置为,将日志数据与选择的解析器对应的模板进行匹配;
解析模块53,被配置为,使用与日志数据匹配的模板对日志数据进行解析,得到解析结果。
在一些可选的实施例中,日志解析装置除了包括上述解析器选择模块51、模板匹配模块52和解析模块53以外,还可以增加局部字段提取模块。
局部字段提取模块,被配置为,在使用与日志数据匹配的模板对日志数据进行解析,得到解析结果后,从解析结果中提取满足预设的再解析的条件的字段。此时,解析模块,还被配置为,对提取的字段再次进行模板匹配和解析,直到解析结果中不存在满足预设的再解析的条件的字段时,停止解析操作。其中,解析模块对提取的字段再次进行解析的过程中也会调用到解析器选择模块51和模板匹配模块52。即解析器选择模块51,为提取的字段选择解析器。模板匹配模块52,将提取的字段与选择的解析器对应的模板进行匹配。这样,解析模块53使用与提取的字段匹配的模板,对提取的字段再次进行解析。
其中,实施例中涉及的预设的再解析的条件至少包括如下任一个条件:
字段长度达到或超过设定长度;
字段内至少包含两种字段名称。
在一些可选的实施例中,上述解析器选择模块51为日志数据选择解析器的过程,可以参照如下操作:
当日志数据的格式类型属于基本解析类型时,解析器选择模块51根据日志数据的格式类型为日志数据选择基本解析器;
当日志数据的格式类型不属于基本解析类型时,解析器选择模块51为日志数据选择正则解析器。
在一些可选的实施例中,上述模板匹配模块52将日志数据与选择的解析器对应的模板进行匹配的过程,可以参照如下操作:
从日志数据中搜索与解析器对应的模板的关键词;
当从日志数据中搜索到任一模板的关键词时,确定该模板为与日志数据匹配的模板。
实际应用中,可以采用如下方式从日志数据中搜索与解析器对应的模板的关键词:
使用选择的解析器对应的模板索引字典树,搜索与日志数据匹配的模板,其中,模板索引字典树包括,解析器对应的所有模板的索引信息及每个模板的关键词。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于日志解析的计算机设备600的框图。例如,计算机设备600可以被提供为一服务器。参照图6,计算机设备600包括处理器601,处理器的个数可以根据需要设置为一个或者多个。计算机设备600还包括存储器602,用于存储可由处理器601的执行的指令,例如应用程序。存储器的个数可以根据需要设置一个或者多个。其存储的应用程序可以为一个或者多个。处理器601被配置为执行指令,以执行上述日志解析的方法,该方法包括:
为待解析的日志数据选择解析器;
将日志数据与选择的解析器对应的模板进行匹配;
使用与日志数据匹配的模板对日志数据进行解析,得到解析结果。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序被执行时实现如上所述的日志解析的方法,该方法包括:
为待解析的日志数据选择解析器;
将日志数据与选择的解析器对应的模板进行匹配;
使用与日志数据匹配的模板对日志数据进行解析,得到解析结果。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
Claims (8)
1.一种日志解析方法,其特征在于,包括:
为待解析的日志数据选择解析器;
将所述日志数据与选择的解析器对应的模板进行匹配;
使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果;
使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果后,从所述解析结果中提取满足预设的再解析的条件的字段;
对提取的字段再次进行模板匹配和解析,直到解析结果中不存在满足预设的再解析的条件的字段时,停止解析操作;
所述预设的再解析的条件至少包括如下任一个条件:
字段长度达到或超过设定长度;
字段内至少包含两种字段名称;
所述为待解析的日志数据选择解析器,包括:
当所述日志数据的格式类型属于基本解析类型时,根据所述日志数据的格式类型为所述日志数据选择基本解析器;
当所述日志数据的格式类型不属于基本解析类型时,为所述日志数据选择正则解析器。
2.如权利要求1所述的方法,其特征在于,所述将所述日志数据与选择的解析器对应的模板进行匹配,包括:
从所述日志数据中搜索与所述解析器对应的模板的关键词;
当从所述日志数据中搜索到任一模板的关键词时,确定该模板为与所述日志数据匹配的模板。
3.如权利要求2所述的方法,其特征在于,所述从所述日志数据中搜索与所述解析器对应的模板的关键词,包括:
使用选择的解析器对应的模板索引字典树,搜索与所述日志数据匹配的模板,其中,所述模板索引字典树包括,所述解析器对应的所有模板的索引信息及每个模板的关键词。
4.一种日志解析装置,其特征在于,包括:
解析器选择模块,用于为待解析的日志数据选择解析器;
模板匹配模块,用于将所述日志数据与选择的解析器对应的模板进行匹配;
解析模块,用于使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果;
局部字段提取模块,用于在使用与所述日志数据匹配的模板对所述日志数据进行解析,得到解析结果后,从所述解析结果中提取满足预设的再解析的条件的字段;
所述解析模块,用于对提取的字段再次进行模板匹配和解析,直到解析结果中不存在满足预设的再解析的条件的字段时,停止解析操作;
所述预设的再解析的条件至少包括如下任一个条件:
字段长度达到或超过设定长度;
字段内至少包含两种字段名称;
所述为待解析的日志数据选择解析器,包括:
当所述日志数据的格式类型属于基本解析类型时,根据所述日志数据的格式类型为所述日志数据选择基本解析器;
当所述日志数据的格式类型不属于基本解析类型时,为所述日志数据选择正则解析器。
5.如权利要求4所述的装置,其特征在于,所述将所述日志数据与选择的解析器对应的模板进行匹配,包括:
从所述日志数据中搜索与所述解析器对应的模板的关键词;
当从所述日志数据中搜索到任一模板的关键词时,确定该模板为与所述日志数据匹配的模板。
6.如权利要求5所述的装置,其特征在于,所述从所述日志数据中搜索与所述解析器对应的模板的关键词,包括:
使用选择的解析器对应的模板索引字典树,搜索与所述日志数据匹配的模板,其中,所述模板索引字典树包括,所述解析器对应的所有模板的索引信息及每个模板的关键词。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-3中任意一项所述方法的步骤。
8.一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-3中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911199808.6A CN112882713B (zh) | 2019-11-29 | 2019-11-29 | 一种日志解析的方法、装置、介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911199808.6A CN112882713B (zh) | 2019-11-29 | 2019-11-29 | 一种日志解析的方法、装置、介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112882713A CN112882713A (zh) | 2021-06-01 |
CN112882713B true CN112882713B (zh) | 2024-03-12 |
Family
ID=76038495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911199808.6A Active CN112882713B (zh) | 2019-11-29 | 2019-11-29 | 一种日志解析的方法、装置、介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112882713B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806321B (zh) * | 2021-09-02 | 2023-11-10 | 北京天融信网络安全技术有限公司 | 一种日志处理方法及系统 |
CN115629944B (zh) * | 2022-12-21 | 2023-04-07 | 杭州谐云科技有限公司 | 一种容器日志的处理方法和日志处理系统 |
CN117215902B (zh) * | 2023-11-09 | 2024-03-08 | 北京集度科技有限公司 | 日志解析方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164050A (zh) * | 2011-05-16 | 2011-08-24 | 北京星网锐捷网络技术有限公司 | 日志解析方法及日志解析节点设备 |
KR20130070864A (ko) * | 2011-12-20 | 2013-06-28 | 주식회사 이너버스 | 정규표현식을 이용한 로그 파일 표시방법 및 이를 수행하기 위한 장치 |
CN106055585A (zh) * | 2016-05-20 | 2016-10-26 | 北京神州绿盟信息安全科技股份有限公司 | 一种日志解析方法及装置 |
CN109726185A (zh) * | 2018-12-28 | 2019-05-07 | 杭州安恒信息技术股份有限公司 | 一种基于语法树的日志解析方法、系统和计算机可读介质 |
CN109800207A (zh) * | 2019-01-14 | 2019-05-24 | 深圳前海微众银行股份有限公司 | 日志解析方法、装置、设备及计算机可读存储介质 |
CN110321457A (zh) * | 2019-04-19 | 2019-10-11 | 杭州玳数科技有限公司 | 访问日志解析规则生成方法及装置、日志解析方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153701A (zh) * | 2015-04-03 | 2022-03-08 | 甲骨文国际公司 | 用于在日志分析系统中实现日志解析器的方法和系统 |
US11080305B2 (en) * | 2017-06-29 | 2021-08-03 | Accenture Global Solutions Limited | Relational log entry instituting system |
-
2019
- 2019-11-29 CN CN201911199808.6A patent/CN112882713B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164050A (zh) * | 2011-05-16 | 2011-08-24 | 北京星网锐捷网络技术有限公司 | 日志解析方法及日志解析节点设备 |
KR20130070864A (ko) * | 2011-12-20 | 2013-06-28 | 주식회사 이너버스 | 정규표현식을 이용한 로그 파일 표시방법 및 이를 수행하기 위한 장치 |
CN106055585A (zh) * | 2016-05-20 | 2016-10-26 | 北京神州绿盟信息安全科技股份有限公司 | 一种日志解析方法及装置 |
CN109726185A (zh) * | 2018-12-28 | 2019-05-07 | 杭州安恒信息技术股份有限公司 | 一种基于语法树的日志解析方法、系统和计算机可读介质 |
CN109800207A (zh) * | 2019-01-14 | 2019-05-24 | 深圳前海微众银行股份有限公司 | 日志解析方法、装置、设备及计算机可读存储介质 |
CN110321457A (zh) * | 2019-04-19 | 2019-10-11 | 杭州玳数科技有限公司 | 访问日志解析规则生成方法及装置、日志解析方法及系统 |
Non-Patent Citations (2)
Title |
---|
A Search-Based Approach for Accurate Identification of Log Message Formats;Salma Messaoudi等;《2018 IEEE/ACM 26th International Conference on Program Comprehension (ICPC)》;第167-177页 * |
日志解析系统的设计与实现;冯鑫;《中国优秀硕士学位论文全文数据库信息科技辑》(第7期);I139-42 * |
Also Published As
Publication number | Publication date |
---|---|
CN112882713A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11928144B2 (en) | Clustering of log messages | |
KR101755365B1 (ko) | 레코드 포맷 정보의 관리 | |
CN112882713B (zh) | 一种日志解析的方法、装置、介质及计算机设备 | |
US12026280B2 (en) | Automated data anonymization | |
EP3251298B1 (en) | Data extraction | |
CN108509658B (zh) | 一种xml文件的解析方法和装置 | |
WO2020206837A1 (zh) | 代码片段定位方法、装置、计算机设备和存储介质 | |
US11263062B2 (en) | API mashup exploration and recommendation | |
WO2020206838A1 (zh) | 代码片段翻译方法、装置、计算机设备和存储介质 | |
CN111984436A (zh) | 一种数据采集系统 | |
CN113923268B (zh) | 一种针对多版本通信规约的解析方法、设备及存储介质 | |
CN111126058A (zh) | 文本信息自动抽取方法、装置、可读存储介质和电子设备 | |
CN114385148A (zh) | 一种实现联动功能的方法、装置、设备和存储介质 | |
CN117827952A (zh) | 一种数据关联分析方法、装置、设备及介质 | |
CN112882991A (zh) | 日志数据的归一化处理方法、装置、介质及计算机设备 | |
CN113806647A (zh) | 识别开发框架的方法及相关设备 | |
CN116821903A (zh) | 检测规则确定及恶意二进制文件检测方法、设备及介质 | |
CN114329116B (zh) | 基于人工智能的智慧园区资源匹配度分析方法及系统 | |
EP4024251A1 (en) | Method for verifying vulnerabilities of network devices using cve entries | |
CN113641523B (zh) | 一种日志处理方法及装置 | |
CN114492324A (zh) | 组件数据统计方法及装置 | |
CN110704781A (zh) | 网页解析器 | |
Harding et al. | Sequence-RTG: efficient and production-ready pattern mining in system log messages | |
CN116303322B (zh) | 一种声明式日志泛化方法及装置 | |
CN116909828A (zh) | 设备日志模板提取方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |