一种高召回率的日志异常检测方法技术

技术编号:29133027 阅读:38 留言:0更新日期:2021-07-02 22:28
本发明专利技术涉及一种高召回率的日志异常检测方法,遍历每一个已知日志模式,对每一个已知日志模式做相同的判断,提取日志模式数量序列,在提取的统一的日志模式数量序列下,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,同时检测单条日志异常、日志序列异常和不变量异常。与现有技术相比,本发明专利技术具有大幅度提升日志召回率和准确率,提高检测结果可解释性等优点。

【技术实现步骤摘要】
一种高召回率的日志异常检测方法
本专利技术涉及日志异常检测
,尤其是涉及一种高召回率的日志异常检测方法。
技术介绍
随着软件系统向大规模,复杂的分布式系统发展,这些系统经常遭受错误和漏洞的困扰。当发生系统故障(例如服务故障和服务中断)时,多个服务可能会受到故障的影响,这可能会导致系统的重大损失。系统异常检测技术旨在定位这些系统故障。这种技术在系统维护中起着至关重要的作用。对于工程师来说,及时准确地发现异常是必要的,以便及时查明原因。系统中有许多类型的数据可用于异常检测和故障排除。在大多数大型系统中普遍可用的日志数据具有大量信息,并且包含关键系统状态,事件和运行时消息的记录。目前业界把日志异常分为以下三种类型:i.单条日志就能反映的异常,如“shutdown”日志;ii.不变量异常,又称为数量关系异常,如一段时间内的connect相关的日志数量与endconnect相关的日志数量不相等;iii.序列异常,又称为任务流异常,即多条日志序列反映出来的异常,例如程序中某个任务的某个部分发生了异常,导致这个部分不能正常执行,其它部分正常执行,表现在日志中就是在这个任务流日志数据中少了某些日志。现有的日志异常检测方法一般分为三个部分:a.日志解析:算法较多,各有优劣,目的都是将非结构化的日志数据转换为结构化的数据。单条日志可以粗略的分为三个部分,打印时间、其它信息(层级(INFO,WARNING等)等)、日志内容。日志解析算法的难点在于如何确定日志内容中的固定部分和变量部分,业界用的较多的是通过大量的历史日志数据,通过聚类算法来自动提取日志模式。几千万行日志对应的日志模式数量可能在几十到几百不等。b.特征提取:日志解析之后就可以将原始日志数据(日志序列,单个元素是一条日志字符串)转换为日志模式下标序列。一般是将从历史数据中解析出来的全部日志模式保存为一个有序的列表,称为总日志模式序列,然后依次将日志序列中的日志映射为其日志模式在日志模式序列中的下标,这样就得到了日志模式下标序列。部分算法可能还需要做进一步的特征提取。c.日志分析:日志分析就是设计一种算法利用特征提取后的数据来分析日志的异常情况。现在业界出名的日志分析算法有Deeplog等。Deeplog等算法重点关注的都是日志异常中的序列异常,采用的方法也比较类似,即训练一个神经网络模型,以一定窗长的日志序列数据为输入,预测输入日志序列的下一个日志是什么(模型实际输入为对应的日志模式下标序列,输出为各个日志模式的出现概率组成的一维列表)。检测逻辑是,如果真实的下一个日志对应的日志模式不在模型预测的Topk个中即视为发生了异常。然而现有的日志异常检测方法存在以下不足:1、准确性和召回率低:大多数公司或者机构的系统都是并发的,且各个模块的处理速度和是否会一起执行是不稳定的,导致打印的日志序列的顺序并不能很好的反映系统的任务流。因此尽管采用了topk的方式来提高模型的泛化性能,通过一定长度的日志序列预测下一个日志的方式来分析日志异常的模型的准确性和召回率在实际运用中的准确性、召回率都不尽人意。2、可解释性低:现有的很多日志分析算法,如DeepLog等类似一个黑盒,虽然可以判定异常,但是无法很好的给出异常的解释,而异常解释是在实际运维场景中十分关注的重点。3、无法增量学习:当系统更新之后,若要保证模型的准确性,需要重新训练模型,无法自动实时迭代,这将会消耗大量时间。
技术实现思路
本专利技术的目的就是提供一种高召回率的日志异常检测方法,以至少部分地解决上述现有技术存在的缺陷。本专利技术的目的可以通过以下技术方案来实现:一种高召回率的日志异常检测方法,该方法遍历每一个已知日志模式,对每一个已知日志模式做相同的判断,提取日志模式数量序列,在提取的统一的日志模式数量序列下,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,同时检测单条日志异常、日志序列异常和不变量异常。进一步地,该方法采用并行方式遍历每一个已知日志模式。本专利技术方法对每一个已知日志模式做相同的判断,提取日志模式数量序列的具体内容为:获取指定时间窗口的日志序列,引入一个未知日志模式和异常日志模式,利用时间滑动窗口提取日志模式数量序列。引入一个未知日志模式和异常日志模式,利用时间滑动窗口提取日志模式数量序列的具体内容为:获取指定时间窗口的日志序列,并对该指定时间窗口的日志序列进行训练,通过训练过程中保存的总日志模式序列和日志解析算法,将其转换为日志模式数量序列,假设训练过程中保存的总日志模式序列的大小为N,则日志模式数量序列的长度为N+2,将日志模式数量序列中前N个元素与总日志模式序列中的模式通过下标一一对应,将最后一个元素对应为未知模式,即未在训练数据中出现的模式,将倒数第二个元素对应为异常日志模式。本专利技术方法基于单条日志异常、日志序列异常和不变量异常三者之间的关系,对单条日志异常进行检测的具体内容为:创建并维持一个异常日志模式库,将初始时的异常日志模式库设定为空,在检测时,若日志模式数量的倒数第二个元素不为0,反馈单条日志模式错误信号,并将对应的异常日志模式和对应的数量反映在检测结果中;若日志模式数量的最后一个元素不为空,反馈模式新增的异常信号,并将对应的新增日志模式和数量反映在检测结果中,再结合用户核实反馈进行确定,若用户核实反馈为检测无误,即新增的日志模式为异常日志模式,则将新增的日志模式更新至异常日志模式库中,若用户核实反馈为检测错误,即新增的日志模式为引入的正常日志模式,则将新增的日志模式更新到总日志模式序列中。进一步地,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,采用同比环比的方式对日志序列异常进行检测。具体地:遍历每一个已知日志模式,对每一个已知日志模式执行相同的逻辑判断,即设定时间窗口长度,当时间窗口大小设定完成后,将每日的时间进行多个数据点划分;设置一个时间偏移量t,利用实际日志数量与历史同时刻加同时刻左、右各t个时间窗口的数据比判断日志序列异常。利用实际日志数量与历史同时刻加同时刻左、右各t个时间窗口的数据比判断日志序列异常的具体内容为:召回当前日志模式所在历史数据中同时间窗口及偏移t个窗口的内的数量组成一个历史日志数量序列,计算历史日志数量序列的中位数作为其期望日志数量,随后将历史日志数量序列的每一个值减去这期望日志数量得到残差序列后,利用核密度估计模型计算其日志数量的上、下阈值,当实际的日志数量超过上阈值或者低于下阈值时,执行异常告警。进一步地,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,采用新型不变量挖掘和分析算法对不变量异常进行检测。具体地:1)将训练日志序列通过时间滑动窗口切分为多个日志子序列,将每一个日志子序列转换为日志模式数量序列,进而获取日志模式数量矩阵,其中横轴表示各个时间窗口,纵轴表示各个日志模式;2)假设总日志模式序列的大小为N,则潜在的二元不变量为N!/2*(N-本文档来自技高网
...

【技术保护点】
1.一种高召回率的日志异常检测方法,其特征在于,遍历每一个已知日志模式,对每一个已知日志模式做相同的判断,提取日志模式数量序列,在提取的统一的日志模式数量序列下,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,同时检测单条日志异常、日志序列异常和不变量异常。/n

【技术特征摘要】
1.一种高召回率的日志异常检测方法,其特征在于,遍历每一个已知日志模式,对每一个已知日志模式做相同的判断,提取日志模式数量序列,在提取的统一的日志模式数量序列下,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,同时检测单条日志异常、日志序列异常和不变量异常。


2.根据权利要求1所述的高召回率的日志异常检测方法,其特征在于,采用并行方式遍历每一个已知日志模式。


3.根据权利要求1所述的高召回率的日志异常检测方法,其特征在于,对每一个已知日志模式做相同的判断,提取日志模式数量序列的具体内容为:
获取指定时间窗口的日志序列,引入一个未知日志模式和异常日志模式,利用时间滑动窗口提取日志模式数量序列。


4.根据权利要求3所述的高召回率的日志异常检测方法,其特征在于,引入一个未知日志模式和异常日志模式,利用时间滑动窗口提取日志模式数量序列的具体内容为:
获取指定时间窗口的日志序列,并对该指定时间窗口的日志序列进行训练,通过训练过程中保存的总日志模式序列和日志解析算法,将其转换为日志模式数量序列,假设训练过程中保存的总日志模式序列的大小为N,则日志模式数量序列的长度为N+2,将日志模式数量序列中前N个元素与总日志模式序列中的模式通过下标一一对应,将最后一个元素对应为未知模式,即未在训练数据中出现的模式,将倒数第二个元素对应为异常日志模式。


5.根据权利要求4所述的高召回率的日志异常检测方法,其特征在于,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,对单条日志异常进行检测的具体内容为:
创建并维持一个异常日志模式库,将初始时的异常日志模式库设定为空,在检测时,若日志模式数量的倒数第二个元素不为0,反馈单条日志模式错误信号,并将对应的异常日志模式和对应的数量反映在检测结果中;若日志模式数量的最后一个元素不为空,反馈模式新增的异常信号,并将对应的新增日志模式和数量反映在检测结果中,再结合用户核实反馈进行确定,若用户核实反馈为检测无误,即新增的日志模式为异常日志模式,则将新增的日志模式更新至异常日志模式库中,若用户核实反馈为检测错误,即新增的日志模式为引入的正常日志模式,则将新增的日志模式更新到总日志模式序列中。


6.根据权利要求4所述的高召回率的日志异常检测方法,其特征在于,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,采用同比环比的方式对日志序列异常进行检测。


7.根据权利要求6所述的高召回率的日志异常检测方法,其特征在于,采用同比环比的方式对日志序列异常进行检测的具体内容为...

【专利技术属性】
技术研发人员:李虎曾毅峰路进锋吴霄林
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:上海;31

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

1