一种基于知识库和集成学习的日志异常检测方法与系统技术方案

技术编号:34946979 阅读:18 留言:0更新日期:2022-09-17 12:22
本发明专利技术公开一种基于知识库和集成学习的日志异常检测方法和系统,其中所述方法包括:获取日志;识别所述日志的类型;基于所述知识库,针对不同日志类型对所述日志进行不同预处理;若所述日志为第一类型日志,则采用预置模板和/或预置规则进行解析;若所述日志为第二类型日志,则基于集成学习进行处理;基于日志类型,对预处理后的日志匹配相应的日志异常检测模型;输出检测结果。本发明专利技术使得本发明专利技术聚焦于日志异常检测算法在实际生产环境中面临的一些显著挑战,提出基于知识库和集成学习的日志异常检测系统,确保了准确性与可解释性;同时,本发明专利技术针对每种日志异常类型,设计并实现合适的异常检测算法,在实际日志数据集中取得了不错的效果。了不错的效果。了不错的效果。

【技术实现步骤摘要】
一种基于知识库和集成学习的日志异常检测方法与系统


[0001]本专利技术属于大数据分析与数据挖掘领域,尤其涉及一种基于知识库和集成学习的日志异常检测方法与系统。

技术介绍

[0002]日志是软件系统中的一类重要数据源,详细记录了系统的运行状态和用户行为,日志异常检测,旨在发现系统中的异常行为,可以帮助工程师及时发现系统中的问题并辅助相关的故障诊断。因此,日志异常检测对服务可靠性和故障管理有重要意义。
[0003]传统监控中,工程师一般基于领域知识,通过手工设置关键字和正则表达式来检测日志异常。但是对着软件服务的规模和复杂性日益增加,通过手工规则的方法有巨大的挑战,包括以下原因。1)大规模软件服务包含多个模块(如硬件,虚拟机,数据库,网络等),会产生海量、多种多样的日志,大约每天有多达TB级别的日志量。因此手工设置规则耗时耗力;2)设置规则需要丰富的领域知识,但是有足够专家知识的工程师人数优先,而且不同的工程师在设置规则是有不同的偏好,很难有统一的标准;3)软件系统会面临频繁的软件变更,导致这些规则需要不断维护和更新。综上,通过手工规则的方法检测日志异常是耗时且易错的。
[0004]为了解决手工规则的痛点,学术界提出了很多关于日志异常检测的工作。这些工作可以分为五个部分:(1)日志收集。日志收集通常是后续日志分析的第一步。
[0005](2)模板解析。日志通常是非结构化的文本,一般需要先通过模板解析把非结构化的原始日志,变成结构化的信息,包含模板与变量。
[0006](3)日志分组。由于日志数据是有上下文依赖关系的,我们很难单独根据一条日志判断是否异常,所以需要根据时间窗口对日志进行分组,常见的有滑动窗口等策略。
[0007](4)特征提取。现有工作设计了多种方法从窗口中提取特征,基于这些特征进行异常检测,包括模板数量,模板顺序,日志语义特征,变量取值等。
[0008](5)异常检测。异常检测的目的是从上一步得到的特征向量中检测出异常,主要包括两大类:1)传统统计方法,如PCA, 聚类算法等;2)基于深度学习算法,如近几年流行的基于LSTM的方法。
[0009]尽管已有工作在公开的日志数据集上的效果得到了一些验证,但是当把这些算法部署到实际生产环境时,我们发现效果并不理想,主要存在以下几点挑战。
[0010]日志类型多样和日志异常模式多样。软件服务中的每个组件在运行过程中都会产生日志,从硬件层到中间件到应用层。不同种类的日志会表现出不同的异常模式。但是已有工作仅在几个种类单一、异常模式简单的公开数据集上做了效果验证,无法应对实际生产环境中复杂多样的日志类型和异常模式,常见的异常模式包括关键字、模板数量、模板顺序、变量取值、变量分布、时间间隔、日志总量等。
[0011]可解释性差。已有的工作都是提出一个黑盒算法,直接给出异常检测的判定结果,
但是工程师很难理解算法给出的结果,不明白当前日志为什么是异常、正常的模式应该表现什么样。
[0012]缺乏领域知识。已有的工作都是端到端的给出异常检测结果,但是面临实际生产中复杂的情况,为了确保检测的准确性和可解释性,融合领域知识是必要的,比如哪些日志变量比较重要需要被检测,这份日志会表现出什么异常模式,适合用什么类型的异常检测算法,这些都需要领域知识。

技术实现思路

[0013]针对上述现有技术中存在的缺陷,本专利技术提出了针对不同日志类型采用合适的异常检测算法。具体来说,针对模板数量异常,本专利技术提出基于多时间序列的异常检测的模板数量异常检测算法;针对模板序列异常,本专利技术采用基于LSTM的模板序列异常检测算法;针对日志变量异常,本专利技术分别提出基于时间序列异常检测的变量取值异常检测和基于分布距离的变量分布异常检测算法。
[0014]本专利技术提供一种基于知识库和集成学习的日志异常检测方法,包括以下步骤:获取日志;识别所述日志的类型;基于所述知识库,针对不同日志类型对所述日志进行不同预处理;若所述日志为第一类型日志,则采用预置模板和/或预置规则进行解析;若所述日志为第二类型日志,则基于集成学习进行处理;基于日志类型,对预处理后的日志匹配相应的日志异常检测模型;输出检测结果。
[0015]其中,所述第一类型日志包括通用日志、不适合使用模板进行解析的日志和具有关键变量的日志;第二类型日志包括未知类型的日志。
[0016]其中,所述日志进行预处理包括将日志的非结构化信息进行处理,以提取结构化信息。
[0017]其中,若所述日志为第二类型日志,则基于集成学习进行处理,包括:提取未知类型的日志的关键特征;基于所述关键特征,采用随机森林做分类器,为所述第二类型的日志生成匹配的日志异常检测模型。
[0018]其中,所述关键特征包括模板数量、模板中实词的数量、模板出现的次数分布和模板之间的相似性。
[0019]其中,所述日志异常检测模型包括:模板数量异常检测模型、模板序列异常检测模型、日志变量异常检测模型和关键字异常检测模型。
[0020]其中,所述模板数量异常检测模型采用基于多时间序列的异常检测算法;所述模板序列异常检测模型采用基于LSTM的模板序列异常检测算法;所述日志变量异常检测模型采用基于时间序列异常检测的变量取值异常检测算法和基于分布距离的变量分布异常检测算法;所述关键字异常检测模型采用正则表达式匹配的算法。
[0021]其中,采用多种不同的异常检测模型检测同一日志。
[0022]其中,所述方法输出检测结果包括:日志上下文信息、模板数量的历史规律、模板顺序的工作流图和变量的时序规律。
[0023]本专利技术还提出了一种基于知识库和集成学习的日志异常检测系统,其包括:获取单元,其用于获取日志;类型识别单元,其用于识别所述日志的类型;知识库,其包括日志预处理单元和模型匹配单元;其中,所述日志预处理单元,其用于对所述日志进行预处理,把非结构化的日志文本转换成结构化的信息,用于后续的异常检测;模型匹配单元,其用于基于集成学习对预处理后的日志匹配相应的日志异常检测模型;输出单元,其用于输出检测结果。
[0024]与现有技术相比,本专利技术使得本专利技术聚焦于日志异常检测算法在实际生产环境中面临的一些显著挑战,提出基于知识库和集成学习的日志异常检测系统,确保了准确性与可解释性;同时,本专利技术针对每种日志异常类型,设计并实现了合适的异常检测算法,在实际日志数据集中取得了不错的效果。
附图说明
[0025]通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:图1是示出根据本专利技术实施例的一种基于知识库和集成学习的日志异常检测方法流程图;以及图2是示出根据本专利技术实施例的一种基于知识库和集成学习的日志异常检测系统的示意图。
具体实施方式
[0026]为了使本专利技术的目的、技术方案和优点更加清楚,下面本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于知识库和集成学习的日志异常检测方法,包括以下步骤:获取日志;识别所述日志的类型;基于所述知识库,针对不同日志类型对所述日志进行不同预处理;若所述日志为第一类型日志,则采用预置模板和/或预置规则进行解析;若所述日志为第二类型日志,则基于集成学习进行处理;基于日志类型,对预处理后的日志匹配相应的日志异常检测模型;输出检测结果。2.如权利要求1所述方法,其中所述第一类型日志包括通用日志、不适合使用模板进行解析的日志和具有关键变量的日志;第二类型日志包括未知类型的日志。3.如权利要求1所述方法,其中所述日志进行预处理包括将日志的非结构化信息进行处理,以提取结构化信息。4.如权利要求1所述方法,其中若所述日志为第二类型日志,则基于集成学习进行处理,包括:提取未知类型的日志的关键特征;基于所述关键特征,采用随机森林做分类器,为所述第二类型的日志生成匹配的日志异常检测模型。5.如权利要求4所述方法,其中所述关键特征包括模板数量、模板中实词的数量、模板出现的次数分布和模板之间的相似性。6.如权利要求4所述方法,其中所述日志异常检测模型包括:模板数量异常检测模型、模板序...

【专利技术属性】
技术研发人员:曹立王泓琳刘大鹏
申请(专利权)人:北京必示科技有限公司
类型:发明
国别省市:

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

1