一种日志解析规则的生成方法技术

技术编号:23343674 阅读:19 留言:0更新日期:2020-02-15 03:59
本发明专利技术公开了日志解析规则的生成方法,通过把原始日志文本中的静态部分从日志内容中分离出来,从而可以只对动态部分进行处理、生成正则表达式,并为动态部分添加描述,进而得到结构化的日志解析规则。该解析规则生成方法,具有较大的适应性,资源消耗少,而且其生成的解析规则的解析精度较高。

A method of generating log parsing rules

【技术实现步骤摘要】
一种日志解析规则的生成方法
本专利技术属于计算机及信息安全领域,尤其是涉及一种为日志分析产品生成解析规则的方法。
技术介绍
网络安全日志,包括操作系统产生的系统日志和网络安全设备产生的报警日志等,主要记录了系统和网络环境中发生的各种安全事件,为网络异常诊断和网络攻击威胁的发现提供重要的线索。在网络安全日志的分析中,日志解析是一个至关重要的步骤。目前的日志分析产品在日志范式化上面临许多实际问题,对于人工方式录入正则:首先,繁多的日志种类和格式,无法通过统一的解析规则实现解析,而且每当有新的日志类型,就需要针对性的开发新解析方法,开发和维护成本都非常高。其次,虽然同种日志内容通常遵循一定的模式,但是这种模式往往是隐晦的,难以获取。再次,通常是根据需要提取内容设计对应的正则表达式,然后依据正则表达式来提取日志中特定的内容,但是编写正则表达式有一定的技术门槛,并且还需要不断的更新正则表达式,增加了运维人员的维护难度。对于无监督的机器自动化学习进行正则生成,适应性较差,更适用于格式化和结构化的日志,而且解析精度较低、资源消耗较高。另外,现有技术还存在这样一种情况:由于多数的日志都是英文字符和数字组成的,有的字符串是英文缩写,即便进行了结构化,还是无法进行直接阅读。
技术实现思路
鉴于上述背景,提出一种方案,通过把原始日志文本中的静态部分从日志内容中分离出来,从而可以只对动态部分进行处理、生成正则表达式,并为动态部分添加描述,进而得到结构化的日志解析规则。采用的具体技术方案是一种日志解析规则的生成方法,包括:预取原始日志数据,通过分隔符将日志内容拆分为以字符串为单元的集合;识别字符串为静态或动态,若为静态字符串则进行清除;若为动态字符串,确定实际含义后,对每个动态字符串标识相应的中文描述;对每个动态字符串适配正则表达式;创建所述中文描述与正则表达式的映射结构;将原始日志中的动态字符串替换为相应的正则表达式,得到结构化的日志正则表达式;将所述映射结构与日志正则表达式保存为解析规则。其中,上述的对日志内容进行拆分,包括:对预取的日志内容进行比对,确定分隔符并记录其位置;按照各分隔符的位置将日志内容拆分为独立字符串组成的集合。优选的是,选定样本日志,其他日志与样本日志进行逐个元素的比对,当至少两条日志的同一位置上出现相同的符号时,该符号为公共符号,记录其位置;每个元素包括一个字符,且连续的字母和/或数字视为一个元素,所述符号为除字母与数字以外的起连接或定界功能的字符;当只有一种公共符号时,该种公共符号即为分隔符;当具有至少两种公共符号时,根据公共符号分割的元素之间的关联性大小,确定出分隔符;所述关联性判断,包括判断该公共符号是否与其他字符作为整体使用。进一步的,若被分隔符拆分出的字符串在各日志中保持不变,则将该字符串识别为静态字符串;否则识别为动态字符串;并记录各静态与动态字符串在日志中的位置。通过对比不同日志的同一位置的动态字符串内容的含义,确定该位置的动态字符串的中文描述。优选的,预设正则库,根据各位置的动态字符串类型,从预设的正则库中选定相应的正则表达式;所述字符串类型包括全为符号,全为字母,全为数字,以及符号、和/或字母、和/或数字的组合。上述的映射结构为,以动态字符串的中文描述为字段名、以相应的正则表达式为内容的数据表。取原始日志数据,根据记录的动态字符串位置,将动态字符串替换为对应的正则表达式,静态字符串保持不变,得到该种日志正则表达式。进一步优选的,将每个选定的正则表达式与相应的动态字符串进行匹配,若匹配成功则保存该正则表达式;若匹配失败则重新从正则库中选择正则表达式,直至与字符串匹配成功,以验证正则表达式对字符串内容匹配的准确性。通过静态字符串所属的字符串类型,匹配相应的正则表达式,清除对应的内容。利用上述生成方法得到的解析规则,对日志进行解析的过程,包括:根据预设的解析策略,将日志数据与所述解析规则的日志正则表达式进行匹配,当日志数据的动态字符串与正则表达式匹配成功后,获取该正则表达式对应的中文描述作为对解析结果的注释。以上的技术方案,相较于现有技术,利用若干预取的原始日志,通过确定分隔符并利用分隔符将将日志内容拆分为独立的字符串,并区分静态字符串和动态字符串,针对其中的动态字符串,一方面生成对应的正则表达式,另一方面标识中文描述;将正则表达式替换原始日志中的动态字符串即得到该种日志正则表达式,而利用日志正则表达式对日志进行解析时,其解析结果中的动态字符串含义具有实际意义的中文描述,有利于管理人员的阅读和分析。前述的解析规则生成方法,具有较大的适应性,资源消耗少,而且其生成的解析规则的解析精度较高。附图说明图1为日志解析规则的生成方法实施例的流程示意图;图2为图1中生成的解析规则进行日志解析的流程示意图。具体实施方式下面结合附图和实施例对技术方案进行详细说明。如图1所示,一种日志解析规则的生成方法,包括:首先,预取原始日志数据,通过分隔符将日志内容拆分为以字符串为单元的集合。当使用既有的解析规则对日志解析,无法得到完整、准确的解析结果,则认为该日志为新的日志,需要进行解析规则的更新。因此,需要预取至少2条/行原始日志数据作为解析规则的生成基础,此处所述“条”可以是针对流传输的日志而言,而“行”可以是针对文件传输的日志而言,在此处两者没有本质的区别。原始日志数据预取后,首先要进行工作就是确定该类日志的分隔符,即日志中用于划分不同字段内容的符号;分隔符本身通常不具有具体的实际含义,只起分隔或定界的功能,两个相邻分隔符之间为具有实际含义的字段内容(比如字符串)。常见的分隔符有“,”、“.”、“-”、“/”以及空格等,例如日志“AAABBBCCC”的分隔符就是空格符,而日志“DDD_EE_F”的分隔符为“_”。分隔符的确定,包括:选定样本日志,其他日志与样本日志进行逐个元素的比对,当至少两条日志的同一位置上出现相同的符号时,该符号为公共符号,记录其位置;每个元素包括一个字符,且连续的字母和/或数字视为一个元素,所述符号为除字母与数字以外的起连接或定界功能的字符;当只有一种公共符号时,该种公共符号即为分隔符;当具有至少两种公共符号时,根据公共符号分割的元素之间的关联性大小,确定出分隔符;所述关联性包括元素组合后才能表达完整的含义。其次,识别出所述集合中的字符串为静态或动态,若被分隔符拆分出的字符串在各日志中保持不变,则将该字符串识别为静态字符串;否则识别为动态字符串;并记录各静态与动态字符串在日志中的位置。对于集合中的静态字符串,根据其静态字符串所属的字符串类型,匹配相应的正则表达式,进行筛选并清除;所述字符串类型包括全为符号,全为字母,全为数字,以及符号、和/或字母、和/或数字的组合,例如字符串“Name”全为字母,字符串“8080”全为数字,字符串本文档来自技高网...

【技术保护点】
1.一种日志解析规则的生成方法,其特征在于,包括:/n预取原始日志数据,通过分隔符将日志内容拆分为以字符串为单元的集合;/n识别字符串为静态或动态,若为静态字符串则进行清除;/n若为动态字符串,确定实际含义,并对每个动态字符串标识相应的中文描述;对每个动态字符串适配正则表达式;创建所述中文描述与正则表达式的映射结构;/n将原始日志中的动态字符串替换为相应的正则表达式,得到日志的正则表达式;/n将所述映射结构与日志正则表达式保存为解析规则。/n

【技术特征摘要】
1.一种日志解析规则的生成方法,其特征在于,包括:
预取原始日志数据,通过分隔符将日志内容拆分为以字符串为单元的集合;
识别字符串为静态或动态,若为静态字符串则进行清除;
若为动态字符串,确定实际含义,并对每个动态字符串标识相应的中文描述;对每个动态字符串适配正则表达式;创建所述中文描述与正则表达式的映射结构;
将原始日志中的动态字符串替换为相应的正则表达式,得到日志的正则表达式;
将所述映射结构与日志正则表达式保存为解析规则。


2.根据权利要求1所述的方法,其特征在于,日志的拆分,包括:
对预取的日志内容进行比对,确定分隔符并记录其位置;按照各分隔符的位置将日志内容拆分为独立字符串组成的集合。


3.根据权利要求2所述的方法,其特征在于,所述分隔符的确定,包括:
选定样本日志,其他日志与样本日志进行逐个元素的比对,当至少两条日志的同一位置上出现相同的符号时,该符号为公共符号,记录其位置;每个元素包括一个字符,且连续的字母和/或数字视为一个元素,所述符号为除字母与数字以外的起连接或定界功能的字符;
当只有一种公共符号时,该种公共符号即为分隔符;
当具有至少两种公共符号时,根据公共符号分割的元素之间的关联性大小,确定出分隔符;所述关联性判断,包括判断该公共符号是否与其他字符作为整体使用。


4.根据权利要求3所...

【专利技术属性】
技术研发人员:王平陈宏伟
申请(专利权)人:西安交大捷普网络科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1