本发明涉及计算机,尤其涉及日志解析方法、装置、设备及存储介质。
背景技术:
1、随着互联网、移动互联网、物联网等技术的迅速发展,大量的数据被生成,数据安全问题日益凸显,随着网络攻击的不断增强和演化,安全设备生成的日志数据量呈爆炸式增长。这些日志包含了大量的网络活动、攻击行为、异常事件等信息,对于保护网络安全和及时响应威胁至关重要。很多行业都要求对网络安全事件进行记录、审计和报告,因此,安全设备的日志数据分析就显得尤为重要。
2、相关技术中,通常是采用perl兼容的正则表达式(perl compatible regularexpressions,简称pcre)来匹配并提取日志数据的有用信息,从而形成标准化后的结构化数据,最终进行存储并供查询以及进一步的分析应用。
3、然而,采用上述方式进行海量日志解析时存在效率较低的问题。
技术实现思路
1、本发明旨在至少解决现有技术中存在的技术问题,为此,本发明第一方面提出一种日志解析方法,该方法包括:
2、接收安全设备的日志数据;
3、通过预设的hyperscan高性能正则表达式匹配库对日志数据进行匹配处理,若匹配结果为已匹配,则根据匹配结果回调函数生成日志数据的解析结果;
4、若匹配结果为未匹配,则通过pcre正则表达式对日志数据进行匹配处理,生成日志数据的解析结果。
5、在一种可能的实施方式中,若匹配结果为已匹配,则根据匹配结果回调函数生成日志数据的解析结果,包括:
6、若匹配结果为已匹配,则根据匹配结果回调函数确定匹配类型;
7、在匹配类型为第一匹配类型的情况下,则直接根据匹配结果生成日志数据的解析结果;其中,第一匹配类型为未使用预过滤器匹配的类型;
8、在匹配类型为第二匹配类型的情况下,则通过对应的pcre正则表达式对日志数据进行匹配处理,生成日志数据的解析结果;其中,第二匹配类型为使用预过滤器匹配的类型。
9、在一种可能的实施方式中,在匹配类型为第二匹配类型的情况下,则通过对应的pcre正则表达式对日志数据进行匹配处理,生成日志数据的解析结果,包括:
10、在匹配类型为第二匹配类型的情况下,则通过对应的pcre正则表达式对日志数据进行匹配处理,若匹配结果为已匹配,则直接生成日志数据的解析结果。
11、在一种可能的实施方式中,该方法还包括:
12、针对不同类型的日志格式,编写与各类型对应的正则表达式,得到多个正则表达式组成的正则表达式数组、编译标志数组及id数组;
13、遍历正则表达式数组,按照hyperscan的标准编译各条正则表达式,生成预设的hyperscan高性能正则表达式匹配库。
14、在一种可能的实施方式中,按照hyperscan的标准编译各条正则表达式,生成预设的hyperscan高性能正则表达式匹配库,包括:
15、针对各条正则表达式,按照hyperscan的标准编译正则表达式,若编译成功,则将编译后的第一目标正则表达式、第一目标编译标志及第一目标id进行保存;
16、若编译失败,则在编译失败的正则表达式对应的编译标志中添加预过滤器标志,再重新按照hyperscan的标准编译正则表达式,若编译成功,则将编译后的第二目标正则表达式、第二目标编译标志及第二目标id进行保存;其中,第二目标编译标志中包含预过滤器标志;
17、基于第一目标正则表达式、第一目标编译标志、第一目标id、第二目标正则表达式、第二目标编译标志及第二目标id,生成预设的hyperscan高性能正则表达式匹配库。
18、在一种可能的实施方式中,该方法还包括:
19、针对预设的hyperscan高性能正则表达式匹配库中的第一目标正则表达式及第二目标正则表达式,采用hyperscan多模式匹配方式进行编译,得到编译结果,并分配多模式匹配对应的内存空间;
20、通过预设的hyperscan高性能正则表达式匹配库对日志数据进行匹配处理,包括:
21、基于编译结果及内存空间,通过预设的hyperscan高性能正则表达式匹配库对日志数据进行匹配处理。
22、在一种可能的实施方式中,分配多模式匹配对应的内存空间,包括:
23、获取当前处理器的类型;
24、若当前处理器的类型为多核处理器,则向当前启用的各工作线程复制一个对应的内存空间。
25、本发明第二方面提出一种日志解析装置,该装置包括:
26、接收模块,用于接收安全设备的日志数据;
27、第一生成模块,用于通过预设的hyperscan高性能正则表达式匹配库对日志数据进行匹配处理,若匹配结果为已匹配,则根据匹配结果回调函数生成日志数据的解析结果;
28、第二生成模块,用于若匹配结果为未匹配,则通过pcre正则表达式对日志数据进行匹配处理,生成日志数据的解析结果。
29、在一种可能的实施方式中,上述第一生成模块具体用于:
30、若匹配结果为已匹配,则根据匹配结果回调函数确定匹配类型;
31、在匹配类型为第一匹配类型的情况下,则直接根据匹配结果生成日志数据的解析结果;其中,第一匹配类型为未使用预过滤器匹配的类型;
32、在匹配类型为第二匹配类型的情况下,则通过对应的pcre正则表达式对日志数据进行匹配处理,生成日志数据的解析结果;其中,第二匹配类型为使用预过滤器匹配的类型。
33、在一种可能的实施方式中,上述第一生成模块还用于:
34、在匹配类型为第二匹配类型的情况下,则通过对应的pcre正则表达式对日志数据进行匹配处理,若匹配结果为已匹配,则直接生成日志数据的解析结果。
35、在一种可能的实施方式中,上述日志解析装置还用于:
36、针对不同类型的日志格式,编写与各类型对应的正则表达式,得到多个正则表达式组成的正则表达式数组、编译标志数组及id数组;
37、遍历正则表达式数组,按照hyperscan的标准编译各条正则表达式,生成预设的hyperscan高性能正则表达式匹配库。
38、在一种可能的实施方式中,上述日志解析装置还用于:
39、针对各条正则表达式,按照hyperscan的标准编译正则表达式,若编译成功,则将编译后的第一目标正则表达式、第一目标编译标志及第一目标id进行保存;
40、若编译失败,则在编译失败的正则表达式对应的编译标志中添加预过滤器标志,再重新按照hyperscan的标准编译正则表达式,若编译成功,则将编译后的第二目标正则表达式、第二目标编译标志及第二目标id进行保存;其中,第二目标编译标志中包含预过滤器标志;
41、基于第一目标正则表达式、第一目标编译标志、第一目标id、第二目标正则表达式、第二目标编译标志及第二目标id,生成预设的hyperscan高性能正则表达式匹配库。
42、在一种可能的实施方式中,上述日志解析装置还用于:
43、针对预设的hyperscan高性能正则表达式匹配库中的第一目标正则表达式及第二目标正则表达式,采用hyperscan多模式匹配方式进行编译,得到编译结果,并分配多模式匹配对应的内存空间;
44、通过预设的hyperscan高性能正则表达式匹配库对日志数据进行匹配处理,包括:
45、基于编译结果及内存空间,通过预设的hyperscan高性能正则表达式匹配库对日志数据进行匹配处理。
46、在一种可能的实施方式中,上述日志解析装置还用于:
47、获取当前处理器的类型;
48、若当前处理器的类型为多核处理器,则向当前启用的各工作线程复制一个对应的内存空间。
49、本发明第三方面提出一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的日志解析方法。
50、本发明第四方面提出一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的日志解析方法。
51、本技术实施例具有以下有益效果:
52、本技术实施例提供的日志解析方法,该方法包括:接收安全设备的日志数据,通过预设的hyperscan高性能正则表达式匹配库对日志数据进行匹配处理,若匹配结果为已匹配,则根据匹配结果回调函数生成日志数据的解析结果,若匹配结果为未匹配,则通过pcre正则表达式对日志数据进行匹配处理,生成日志数据的解析结果。本方案通过使用hyperscan正则表达式代替传统pcre执行正则表达式匹配,提升海量日志解析性能;另外,对于hyperscan不支持的正则语法,会先执行预过滤器,快速识别和过滤出不匹配的数据块,减少pcre正则匹配次数,提高海量日志数据的解析性能和效率;同时,通过先匹配后提取,使用hyperscan执行匹配流程,对匹配到的日志再执行相应的pcre正则进行日志提取,两者结合,尽可能得减少pcre正则执行的次数。
1.一种日志解析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述若匹配结果为已匹配,则根据匹配结果回调函数生成所述日志数据的解析结果,包括:
3.根据权利要求2所述的方法,其特征在于,所述在所述匹配类型为第二匹配类型的情况下,则通过对应的pcre正则表达式对所述日志数据进行匹配处理,生成所述日志数据的解析结果,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述按照hyperscan的标准编译各条所述正则表达式,生成所述预设的hyperscan高性能正则表达式匹配库,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述分配多模式匹配对应的内存空间,包括:
8.一种日志解析装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7任一项所述的日志解析方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-7任一项所述的方法的步骤。