CN113656246A - 日志解析方法、系统、电子装置、计算机设备及存储介质 - Google Patents
日志解析方法、系统、电子装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113656246A CN113656246A CN202110932467.XA CN202110932467A CN113656246A CN 113656246 A CN113656246 A CN 113656246A CN 202110932467 A CN202110932467 A CN 202110932467A CN 113656246 A CN113656246 A CN 113656246A
- Authority
- CN
- China
- Prior art keywords
- log
- analyzed
- peg
- operator
- analyzer
- 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.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 56
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims description 66
- 230000008569 process Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000002372 labelling Methods 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 claims description 2
- 238000010276 construction Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 9
- 230000006978 adaptation Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 150000001875 compounds Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种日志解析方法、系统、电子装置、计算机设备及存储介质,其中,该日志解析方法包括:获取待解析日志并分析所述待解析日志的日志级别;使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;基于所述状态机,生成适配所述待解析日志的日志解析器;通过所述日志解析器将所述待解析日志解析成安全日志。通过保存至缓存表的各种PEG算子,通过FST算法快速组合生成日志解析器,降低日志解析器的设计难度,优化了算子性能,从而提高了日志解析器的性能,提高了日志解析的速度,扩展了日志解析的适配范围。
Description
技术领域
本申请涉及信息安全处理领域,特别是涉及日志解析方法、系统、电子装置、计算机设备及存储介质。
背景技术
日志,作为行为或状态详细描述的载体,其时效性与信息丰富程度在企业安全事件分析、事件回溯和取证过程中起到重要作用。在法律层,日志也是重要的电子证据,先进的日志记录、监控和审计手段,可以帮助客户有效地减少信息破坏、信息泄露的问题,对违法行为起到一定威慑作用。
传统的日志解析,为了加快现场日志适配,现有生成的日志解析器,大量使用了正则匹配,但是正则匹配有较大的局限性,比如只能适合匹配文本字面,不适合匹配文本意义;容易造成大量的回溯,性能会成倍的下降。综上所述,传统的基于正则匹配的日志解析器性能较低。
针对相关技术中存在的日志解析器性能较低的问题,目前还没有提出有效的解决方案。
发明内容
本申请实施例提供了一种日志解析方法、系统、电子装置、计算机设备及存储介质,以至少解决相关技术中日志解析器性能较低的问题。
第一方面,本申请实施例提供了一种日志解析方法,包括以下步骤:
获取待解析日志并分析所述待解析日志的日志级别;
使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;
基于所述状态机,生成适配所述待解析日志的日志解析器;
通过所述日志解析器将所述待解析日志解析成安全日志。
在其中一些实施例中,所述使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机,包括以下步骤:
挑选所述缓存表中与所述日志级别相对应的PEG算子;
将挑选的PEG算子进行组合,生成组合算子,并基于所述组合算子利用FST算法构建状态机。
在其中一些实施例中,所述日志解析方法还包括以下步骤:
统计所有能成功解析所述待解析日志的所述日志解析器的耗时,以耗时从短到长依次进行排序。
在其中一些实施例中,所述日志解析方法还包括以下步骤:
淘汰解析耗时排序最靠后的至少一个所述日志解析器中的PEG算子。
在其中一些实施例中,所述日志解析方法还包括以下步骤:
选取解析耗时排序最靠前的至少一个所述日志解析器中的PEG算子;
将选取的所述PEG算子通过轮询调度迭代使用,同时将其保存至所述缓存表。
在其中一些实施例中,所述日志解析方法还包括以下步骤:
在通过所述日志解析器将所述待解析日志解析成安全日志的过程中,对所述待解析日志进行同一化处理、打标签及日志富化处理。
第二方面,本申请实施例提供了一种日志解析系统,包括获取模块、构建模块、生成模块及解析模块,其中:
所述获取模块,用于获取待解析日志并分析所述待解析日志的日志级别;
所述构建模块,用于使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;
所述生成模块,用于基于所述状态机,生成适配所述待解析日志的日志解析器;
所述解析模块,用于通过所述日志解析器将所述待解析日志解析成安全日志。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述第一方面所述的日志解析方法。
第四方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的日志解析方法的步骤。
第五方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的日志解析方法的步骤。
相比于相关技术,上述的日志解析方法、系统、电子装置、计算机设备及存储介质,通过获取待解析日志并分析所述待解析日志的日志级别;使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;基于所述状态机,生成适配所述待解析日志的日志解析器;通过所述日志解析器将所述待解析日志解析成安全日志。通过保存至缓存表的各种PEG算子,通过FST算法快速组合生成日志解析器,降低日志解析器的设计难度,优化了算子性能,从而提高了日志解析器的性能,提高了日志解析的速度,扩展了日志解析的适配范围。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据相关技术的日志解析方法的终端的硬件结构框图;
图2是本实施例的日志解析方法的流程图;
图3是本实施例的日志解析系统的结构示意图。
图4是本实施例的另一种日志解析系统的结构示意图。
附图标注:10、获取模组;20、构建模块;30、生成模块;40、解析模块;50、同一化模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。以运行在终端上为例,图1是本发明实施例的日志解析方法的终端的硬件结构框图。如图1所示,终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的日志解析方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端10的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本实施例提供了一种日志解析方法,图2是根据本申请实施例的日志解析方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,获取待解析日志并分析所述待解析日志的日志级别。
在日志的解析过程中,由同一日志源在同一原因产生的日志,通常具有相同的结构,对于任一种结构的日志,可以调用相同的普通的PEG算子进行解析,对于优化后的PEG文法可以快速解析日志的级别。例如,log4j定义了8个级别的日志(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL。在本实施例中,待解析日志可以是从日志源直接获取的,也可以是经过筛选或处理后的日志
步骤S220,使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机。
具体的,缓存表内存放已经编译好的若干PEG算子。PEG文法通常是使用字符串描述,在使用其匹配字符串前,需要先编译。为了减少重复编译,把已经编译的结构中的单子(不能再拆开的匹配算子)进行缓存,这样,后续编译再遇到同样的算子时,即可以使用缓存表中缓存的已经编译好了的算子。通常缓存表内会预定义一系列常用的算子,比如匹配空格、匹配下划线、匹配制表符等算子。因此,在构建状态机的过程中,通过FST(Finite-StateTransducer,有穷状态转换器或者有限状态传感器)算法快速搜索缓存表内与日志级别对应的PEG算子,动态调整PEG算子,并将搜索到的PEG算子建立关联关系,生成完善有向无环图,即日志解析器。
在状态机构建的过程中,调用的PEG算子会越来越多,通过增加的PEG算子来丰富解析所述日志的日志解析字典,形成更加完善有向无环图,通过该有向无环图可以更加方便的对日志结构进行查询,同时,也可以减少PEG算子的重复匹配。当日志的长度越长,它就比简单的for循环日志规则解析高效,因为它的每一阶段都只计算一个小算子,匹配成功才会进入下一环节,减少匹配过程中的计算量。
步骤S230,基于所述状态机,生成适配所述待解析日志的日志解析器。
FST算法构建的状态机为有穷性状态机,在其循环的过程中会生成若干的日志解析器,生成的日志解析器包括可以成功解析待解析日志的日志解析器,也包括了不能解析待解析日志的日志解析器。
步骤S240,通过所述日志解析器将所述待解析日志解析成安全日志。
最终,通过上述的生成的日志解析器,将一条条不同级别的日志解析为相同的安全日志。
通过上述步骤S210至S240,获取待解析日志并分析所述待解析日志的日志级别;使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;基于所述状态机,生成适配所述待解析日志的日志解析器;通过所述日志解析器将所述待解析日志解析成安全日志。通过保存至缓存表的各种PEG算子,通过FST算法快速组合生成日志解析器,降低日志解析器的设计难度,优化了算子性能,从而提高了日志解析器的性能,提高了日志解析的速度,扩展了日志解析的适配范围。
进一步地,在一个实施例中,基于上述步骤S220,使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机,包括以下步骤:
步骤S221,挑选所述缓存表中与所述日志级别相对应的PEG算子;
步骤S222,将挑选的PEG算子进行组合,生成组合算子,并基于所述组合算子利用FST算法构建状态机。
通过对PEG算子进行算子组合,使其生成更高阶的组合算子,便于生成日志解析,同时这样也有利于日志解析器的优化,使得算子的性能得到明显的提升。其过程,依赖于PEG文法实现,因为PEG文法通常使用函数式实现,每一个PEG算子其实也就是一个函数,它们通常可以使用compose函数进行组合生成组合算子。比如,P用于解析句首的两个空格,M解析name。那么PM组合起来就是可以解析__name(_表示空格),称P、M为PM的组合算子。此时,日志解析器可以由PEG算子和/或组合算子进行组合。
进一步地,日志解析器可以通过进一步构建来进行深度优化,从而进一步提升日志解析器的性能,其过程包含于步骤S230中,具体包括如下步骤:
步骤S231,统计所有能成功解析所述待解析日志的所述日志解析器的耗时,以耗时从短到长依次进行排序。
步骤S232,淘汰解析耗时排序最靠后的至少一个所述日志解析器中的PEG算子。
步骤S233,选取解析耗时排序最靠前的至少一个所述日志解析器中的PEG算子;
步骤S234,将选取的所述PEG算子通过轮询调度迭代使用,同时将其保存至所述缓存表。
在本实施例中,在能成功解析待解析日志的情况下,统计日志解析器的耗时,其本质是对日志解析器中的PEG算子的耗时进行统计,若日志解析器中存在组合算子,也统计组合算子的耗时。通过淘汰耗时较长的PEG算子;同时,选取耗时较短的PEG算子,对其进行迭代使用,并且将耗时较短的PEG算子(和/或组合算子)保存至缓存表,此时,对缓存表的PEG算子和组合算子进行更新和优化,可以进一步提升缓存表内PEG算子的性能,与此同时,淘汰缓存表内的耗时较长的PEG算子,可以减少缓存表的内存占用。至于选取N个PEG算子具体为多少,可根据实际情况选择,在本实施例中不作进一步的说明。筛选较优PEG算子的同时对其进行迭代优化,可以更进一步的提升组合算子的性能。优选的,在本实施例中,选取的N个耗时短的PEG算子通过Round-Robin算法(轮询调度)迭代使用,此时,日志解析器已经被深度优化,算子的性能得到明显的提升。基于PEG文法的缓存表设计,通过FST算法优化缓存表,可以动态调整PEG算子,动态优化日志解析器性能,减少缓存表的内存占用。
具体的,在其中一些实施例中,所述缓存表包含PEG算子和/或组合算子。
另外的,在其中一些实施例中,为了把一条条未知格式的日志,解析成同一化的安全日志,方便后续业务进行分析。通过构建结构化、同一化日志格式的安全日志,是系统对异源日志分析进行安全分析的很重要的一步。如果没有统一的格式,就无法进行后续的聚合分析、查询、联机告警,隐含在日志里面的重要安全信息就无法挖掘出来分析。所述日志解析方法还包括以下步骤:
步骤S250,在通过所述日志解析器将所述待解析日志解析成安全日志的过程中,对所述待解析日志进行同一化处理、打标签及日志富化处理。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种日志解析系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请实施例的日志解析系统的结构框图,如图3所示,日志解析系统包括获取模块10、构建模块20、生成模块30及解析模块40,其中:
获取模块10,用于获取待解析日志并分析所述待解析日志的日志级别;
构建模块20,用于使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;
生成模块30,用于基于所述状态机,生成适配所述待解析日志的日志解析器;
解析模块40,用于通过所述日志解析器将所述待解析日志解析成安全日志。
上述日志解析系统,通过获取待解析日志并分析所述待解析日志的日志级别;使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;基于所述状态机,生成适配所述待解析日志的日志解析器;通过所述日志解析器将所述待解析日志解析成安全日志。通过保存至缓存表的各种PEG算子,通过FST算法快速组合生成日志解析器,降低日志解析器的设计难度,优化了算子性能,从而提高了日志解析器的性能,提高了日志解析的速度,扩展了日志解析的适配范围。
在其中一个实施例中,构建模块20还用于挑选所述缓存表中与所述日志级别相对应的PEG算子;将挑选的PEG算子进行组合,生成组合算子,并基于所述组合算子利用FST算法构建状态机。
在其中一个实施例中,生成模块30还用于统计所有能成功解析所述待解析日志的所述日志解析器的耗时,以耗时从短到长依次进行排序。淘汰解析耗时排序最靠后的至少一个所述日志解析器中的PEG算子。同时,选取解析耗时排序最靠前的至少一个所述日志解析器中的PEG算子;将选取的所述PEG算子通过轮询调度迭代使用,同时将其保存至所述缓存表。
图4是根据本申请实施例的日志解析系统的优选结构框图,如图4所示,该装置包括图3所示的所有模块,此外还包括同一化模块50。所述同一化模块50用于在通过所述日志解析器将所述待解析日志解析成安全日志的过程中,对所述待解析日志进行同一化处理、打标签及日志富化处理。把一条条未知格式的日志,解析成同一化的安全日志,是为了方便后续的聚合分析、查询、联机告警,如果不进行同一化处理,则无法将隐含在日志里面的重要安全信息挖掘出来分析。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤S210,获取待解析日志并分析所述待解析日志的日志级别。
在日志的解析过程中,由同一日志源在同一原因产生的日志,通常具有相同的结构,对于任一种结构的日志,可以调用相同的普通的PEG算子进行解析,对于优化后的PEG文法可以快速解析日志的级别。例如,log4j定义了8个级别的日志(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL。在本实施例中,待解析日志可以是从日志源直接获取的,也可以是经过筛选或处理后的日志
步骤S220,使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机。
具体的,缓存表内存放已经编译好的若干PEG算子。PEG文法通常是使用字符串描述,在使用其匹配字符串前,需要先编译。为了减少重复编译,把已经编译的结构中的单子(不能再拆开的匹配算子)进行缓存,这样,后续编译再遇到同样的算子时,即可以使用缓存表中缓存的已经编译好了的算子。通常缓存表内会预定义一系列常用的算子,比如匹配空格、匹配下划线、匹配制表符等算子。因此,在构建状态机的过程中,通过FST(Finite-StateTransducer,有穷状态转换器或者有限状态传感器)算法快速搜索缓存表内与日志级别对应的PEG算子,动态调整PEG算子,并将搜索到的PEG算子建立关联关系,生成完善有向无环图,即日志解析器。
在状态机构建的过程中,调用的PEG算子会越来越多,通过增加的PEG算子来丰富解析所述日志的日志解析字典,形成更加完善有向无环图,通过该有向无环图可以更加方便的对日志结构进行查询,同时,也可以减少PEG算子的重复匹配。当日志的长度越长,它就比简单的for循环日志规则解析高效,因为它的每一阶段都只计算一个小算子,匹配成功才会进入下一环节,减少匹配过程中的计算量。
步骤S230,基于所述状态机,生成适配所述待解析日志的日志解析器。
FST算法构建的状态机为有穷性状态机,在其循环的过程中会生成若干的日志解析器,生成的日志解析器包括可以成功解析待解析日志的日志解析器,也包括了不能解析待解析日志的日志解析器。
步骤S240,通过所述日志解析器将所述待解析日志解析成安全日志。
最终,通过上述的生成的日志解析器,将一条条不同级别的日志解析为相同的安全日志。
通过上述步骤S210至S240,获取待解析日志并分析所述待解析日志的日志级别;使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;基于所述状态机,生成适配所述待解析日志的日志解析器;通过所述日志解析器将所述待解析日志解析成安全日志。通过保存至缓存表的各种PEG算子,通过FST算法快速组合生成日志解析器,降低日志解析器的设计难度,优化了算子性能,从而提高了日志解析器的性能,提高了日志解析的速度,扩展了日志解析的适配范围。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的日志解析方法的步骤。
上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤S210,获取待解析日志并分析所述待解析日志的日志级别。
在日志的解析过程中,由同一日志源在同一原因产生的日志,通常具有相同的结构,对于任一种结构的日志,可以调用相同的普通的PEG算子进行解析,对于优化后的PEG文法可以快速解析日志的级别。例如,log4j定义了8个级别的日志(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL。在本实施例中,待解析日志可以是从日志源直接获取的,也可以是经过筛选或处理后的日志
步骤S220,使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机。
具体的,缓存表内存放已经编译好的若干PEG算子。PEG文法通常是使用字符串描述,在使用其匹配字符串前,需要先编译。为了减少重复编译,把已经编译的结构中的单子(不能再拆开的匹配算子)进行缓存,这样,后续编译再遇到同样的算子时,即可以使用缓存表中缓存的已经编译好了的算子。通常缓存表内会预定义一系列常用的算子,比如匹配空格、匹配下划线、匹配制表符等算子。因此,在构建状态机的过程中,通过FST(Finite-StateTransducer,有穷状态转换器或者有限状态传感器)算法快速搜索缓存表内与日志级别对应的PEG算子,动态调整PEG算子,并将搜索到的PEG算子建立关联关系,生成完善有向无环图,即日志解析器。
在状态机构建的过程中,调用的PEG算子会越来越多,通过增加的PEG算子来丰富解析所述日志的日志解析字典,形成更加完善有向无环图,通过该有向无环图可以更加方便的对日志结构进行查询,同时,也可以减少PEG算子的重复匹配。当日志的长度越长,它就比简单的for循环日志规则解析高效,因为它的每一阶段都只计算一个小算子,匹配成功才会进入下一环节,减少匹配过程中的计算量。
步骤S230,基于所述状态机,生成适配所述待解析日志的日志解析器。
FST算法构建的状态机为有穷性状态机,在其循环的过程中会生成若干的日志解析器,生成的日志解析器包括可以成功解析待解析日志的日志解析器,也包括了不能解析待解析日志的日志解析器。
步骤S240,通过所述日志解析器将所述待解析日志解析成安全日志。
最终,通过上述的生成的日志解析器,将一条条不同级别的日志解析为相同的安全日志。
通过上述步骤S210至S240,获取待解析日志并分析所述待解析日志的日志级别;使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;基于所述状态机,生成适配所述待解析日志的日志解析器;通过所述日志解析器将所述待解析日志解析成安全日志。通过保存至缓存表的各种PEG算子,通过FST算法快速组合生成日志解析器,降低日志解析器的设计难度,优化了算子性能,从而提高了日志解析器的性能,提高了日志解析的速度,扩展了日志解析的适配范围。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
本申请实施例还提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种日志解析方法。
上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤S210,获取待解析日志并分析所述待解析日志的日志级别。
在日志的解析过程中,由同一日志源在同一原因产生的日志,通常具有相同的结构,对于任一种结构的日志,可以调用相同的普通的PEG算子进行解析,对于优化后的PEG文法可以快速解析日志的级别。例如,log4j定义了8个级别的日志(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL。在本实施例中,待解析日志可以是从日志源直接获取的,也可以是经过筛选或处理后的日志
步骤S220,使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机。
具体的,缓存表内存放已经编译好的若干PEG算子。PEG文法通常是使用字符串描述,在使用其匹配字符串前,需要先编译。为了减少重复编译,把已经编译的结构中的单子(不能再拆开的匹配算子)进行缓存,这样,后续编译再遇到同样的算子时,即可以使用缓存表中缓存的已经编译好了的算子。通常缓存表内会预定义一系列常用的算子,比如匹配空格、匹配下划线、匹配制表符等算子。因此,在构建状态机的过程中,通过FST(Finite-StateTransducer,有穷状态转换器或者有限状态传感器)算法快速搜索缓存表内与日志级别对应的PEG算子,动态调整PEG算子,并将搜索到的PEG算子建立关联关系,生成完善有向无环图,即日志解析器。
在状态机构建的过程中,调用的PEG算子会越来越多,通过增加的PEG算子来丰富解析所述日志的日志解析字典,形成更加完善有向无环图,通过该有向无环图可以更加方便的对日志结构进行查询,同时,也可以减少PEG算子的重复匹配。当日志的长度越长,它就比简单的for循环日志规则解析高效,因为它的每一阶段都只计算一个小算子,匹配成功才会进入下一环节,减少匹配过程中的计算量。
步骤S230,基于所述状态机,生成适配所述待解析日志的日志解析器。
FST算法构建的状态机为有穷性状态机,在其循环的过程中会生成若干的日志解析器,生成的日志解析器包括可以成功解析待解析日志的日志解析器,也包括了不能解析待解析日志的日志解析器。
步骤S240,通过所述日志解析器将所述待解析日志解析成安全日志。
最终,通过上述的生成的日志解析器,将一条条不同级别的日志解析为相同的安全日志。
通过上述步骤S210至S240,获取待解析日志并分析所述待解析日志的日志级别;使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;基于所述状态机,生成适配所述待解析日志的日志解析器;通过所述日志解析器将所述待解析日志解析成安全日志。通过保存至缓存表的各种PEG算子,通过FST算法快速组合生成日志解析器,降低日志解析器的设计难度,优化了算子性能,从而提高了日志解析器的性能,提高了日志解析的速度,扩展了日志解析的适配范围。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种日志解析方法,其特征在于,包括以下步骤:
获取待解析日志并分析所述待解析日志的日志级别;
使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;
基于所述状态机,生成适配所述待解析日志的日志解析器;
通过所述日志解析器将所述待解析日志解析成安全日志。
2.根据权利要求1所述的日志解析方法,其特征在于,所述使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机,包括以下步骤:
挑选所述缓存表中与所述日志级别相对应的PEG算子;
将挑选的PEG算子进行组合,生成组合算子,并基于所述组合算子利用FST算法构建状态机。
3.根据权利要求1所述的日志解析方法,其特征在于,所述日志解析方法还包括以下步骤:
统计所有能成功解析所述待解析日志的所述日志解析器的耗时,以耗时从短到长依次进行排序。
4.根据权利要求3所述的日志解析方法,其特征在于,所述日志解析方法还包括以下步骤:
淘汰解析耗时排序最靠后的至少一个所述日志解析器中的PEG算子。
5.根据权利要求3所述的日志解析方法,其特征在于,所述日志解析方法还包括以下步骤:
选取解析耗时排序最靠前的至少一个所述日志解析器中的PEG算子;
将选取的所述PEG算子通过轮询调度迭代使用,同时将其保存至所述缓存表。
6.根据权利要求1所述的日志解析方法,其特征在于,所述日志解析方法还包括以下步骤:
在通过所述日志解析器将所述待解析日志解析成安全日志的过程中,对所述待解析日志进行同一化处理、打标签及日志富化处理。
7.一种日志解析系统,其特征在于,包括获取模块、构建模块、生成模块及解析模块,其中:
所述获取模块,用于获取待解析日志并分析所述待解析日志的日志级别;
所述构建模块,用于使用缓存表中与所述日志级别相对应的PEG算子,利用FST算法构建状态机;
所述生成模块,用于基于所述状态机,生成适配所述待解析日志的日志解析器;
所述解析模块,用于通过所述日志解析器将所述待解析日志解析成安全日志。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6中任一项所述的日志解析方法。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的日志解析方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的日志解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932467.XA CN113656246B (zh) | 2021-08-13 | 2021-08-13 | 日志解析方法、系统、电子装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932467.XA CN113656246B (zh) | 2021-08-13 | 2021-08-13 | 日志解析方法、系统、电子装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656246A true CN113656246A (zh) | 2021-11-16 |
CN113656246B CN113656246B (zh) | 2024-03-19 |
Family
ID=78491597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110932467.XA Active CN113656246B (zh) | 2021-08-13 | 2021-08-13 | 日志解析方法、系统、电子装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656246B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237326A (zh) * | 2008-02-29 | 2008-08-06 | 华为技术有限公司 | 设备日志实时解析的方法、装置和系统 |
US20110307502A1 (en) * | 2010-06-14 | 2011-12-15 | Microsoft Corporation | Extensible event-driven log analysis framework |
CN103914485A (zh) * | 2013-01-07 | 2014-07-09 | 上海宝信软件股份有限公司 | 一种远程收集和检索展示应用系统日志的系统及方法 |
CN106354617A (zh) * | 2016-08-29 | 2017-01-25 | 广州华多网络科技有限公司 | 程序压缩性日志文件输出方法及装置 |
CN111708681A (zh) * | 2020-06-15 | 2020-09-25 | 北京优特捷信息技术有限公司 | 一种日志处理方法、装置、设备及存储介质 |
CN111817888A (zh) * | 2020-06-29 | 2020-10-23 | 中孚安全技术有限公司 | 一种基于单一状态机的网络日志解析方法 |
CN112084499A (zh) * | 2020-09-11 | 2020-12-15 | 杭州安恒信息技术股份有限公司 | 一种基于语法分析的0day攻击检测方法、装置、设备及介质 |
-
2021
- 2021-08-13 CN CN202110932467.XA patent/CN113656246B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237326A (zh) * | 2008-02-29 | 2008-08-06 | 华为技术有限公司 | 设备日志实时解析的方法、装置和系统 |
US20110307502A1 (en) * | 2010-06-14 | 2011-12-15 | Microsoft Corporation | Extensible event-driven log analysis framework |
CN103914485A (zh) * | 2013-01-07 | 2014-07-09 | 上海宝信软件股份有限公司 | 一种远程收集和检索展示应用系统日志的系统及方法 |
CN106354617A (zh) * | 2016-08-29 | 2017-01-25 | 广州华多网络科技有限公司 | 程序压缩性日志文件输出方法及装置 |
CN111708681A (zh) * | 2020-06-15 | 2020-09-25 | 北京优特捷信息技术有限公司 | 一种日志处理方法、装置、设备及存储介质 |
CN111817888A (zh) * | 2020-06-29 | 2020-10-23 | 中孚安全技术有限公司 | 一种基于单一状态机的网络日志解析方法 |
CN112084499A (zh) * | 2020-09-11 | 2020-12-15 | 杭州安恒信息技术股份有限公司 | 一种基于语法分析的0day攻击检测方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
WPOH_RGZNAI100: "pgen解析器的诸多缺陷,并介绍了PEG解析器的优点", pages 1 - 6, Retrieved from the Internet <URL:https://www.elecfans.com/d/1015124.html> * |
Also Published As
Publication number | Publication date |
---|---|
CN113656246B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182215B (zh) | 一种结构化查询语言sql性能统计的方法及装置 | |
US8516456B1 (en) | Compact instruction format for content search systems | |
US20160197621A1 (en) | Text compression and decompression | |
CN109522341B (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
CN108694221B (zh) | 数据实时分析方法、模块、设备和装置 | |
US10977161B2 (en) | Automatic intelligent cloud service testing tool | |
CN107797823B (zh) | 业务规则管理方法、装置、存储介质和计算机设备 | |
US20120110003A1 (en) | Conditional execution of regular expressions | |
CN111427784B (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN111309751A (zh) | 大数据处理方法及装置 | |
CN112395251A (zh) | 数据文件的智能解析方法、装置、电子设备及存储介质 | |
CN113918160A (zh) | 图数据库执行计划生成及调度的方法、系统、装置和介质 | |
CN110795069A (zh) | 代码分析方法、智能终端及计算机可读存储介质 | |
CN112346721A (zh) | 基于面向切面编程的日志采集方法、装置和电子设备 | |
CN112671878B (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN109241157B (zh) | 数据调用方法、装置、通信设备及存储介质 | |
CN106648722A (zh) | 基于大数据的Flume接收端数据处理方法和装置 | |
CN113656246B (zh) | 日志解析方法、系统、电子装置、计算机设备及存储介质 | |
US9063744B2 (en) | Modifying a file written in a formal language | |
CN115658072A (zh) | 数据血缘解析方法、装置、设备及计算机可读存储介质 | |
CN111221841A (zh) | 基于大数据的实时处理方法及装置 | |
CN115794752A (zh) | 一种数据处理方法、装置、设备、介质及产品 | |
CN113934430A (zh) | 数据检索分析方法、装置、电子设备及存储介质 | |
CN112035416A (zh) | 数据血缘分析方法、装置、电子设备及存储介质 | |
CN113282559A (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 |