首页> 中国专利> 日志异常检测系统

日志异常检测系统

摘要

日志异常检测系统,属于网络数据处理领域,为了解决日志异常检测的问题,包括检测模型训练模块,用于训练Prophet异常检测模型,bLSTM异常检测模型,并获得DTW时间序列相似性阈值,更新异常检测模型和阈值。异常检测模块,用于根据检测模型训练模块判断时间窗口是否存在异常,若判断当前时间窗口为正常,则继续对下一时间窗口是否异常进行判断。若判断当前时间窗口为异常,则调用异常告警模块发出异常告警,且异常检测模块继续对下一时间窗口是否异常进行判断,效果是能够进行日志异常检测。

著录项

  • 公开/公告号CN112363896A

    专利类型发明专利

  • 公开/公告日2021-02-12

    原文格式PDF

  • 申请/专利权人 大连大学;

    申请/专利号CN202010910304.7

  • 发明设计人 汪祖民;田纪宇;季长清;秦静;

    申请日2020-09-02

  • 分类号G06F11/34(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构21235 大连智高专利事务所(特殊普通合伙);

  • 代理人刘斌

  • 地址 116622 辽宁省大连市经济技术开发区学府大街10号

  • 入库时间 2023-06-19 09:52:39

说明书

技术领域

本发明属于网络数据处理领域,涉及一种基于Prophet-bLSTM-DTW的日志异常检测系统 及方法。

背景技术

随着互联网技术的高速发展,信息系统的流量日渐增多。信息系统的运行产生了庞大的 日志数据。系统内的日志数据呈现以下特点:(1)数据量庞大。一个信息系统每分钟可以产 生数百万条日志数据。(2)周期性。日志数据量在某些设备或整个信息系统内具有周期性。 (3)趋势性。日志数据量在在时间中存在上升下降趋势。运维工作需要耗费大量的时间、人 力成本对日志数据进行分析才能保证信息系统高效、稳定、安全的运行。因此,实现自动化、 智能化的日志数据异常检测可以有效的减少企业对信息系统的运维成本。

当前的日志异常检测的技术方法中,使用了基线构建、专家知识、环比和同比等方法。 在基于基线构建的方法中,首先提取时间窗口内的用户行为序列转化为特征,然后对特征进 行筛选,再采用聚类方法将正常用户行为构建成基线,将基线外的行为确定为异常行为。但 是,实际生产中,每个时间窗口内活跃的用户数量庞大,对每个用户行为进行行为序列转化 所耗费的计算和存储资源过多,甚至超过业务需要。在环比和同比方法中,使用短期环比与 长期同比的方法来处理历史数据,设置一个阈值来比较现有数据的偏离程度,若超出阈值, 则认定为异常。然而阈值的设定不能拟合日志数据在时间上的趋势性,因此不能进行准确预 测。

现有的日志异常检测中主要有:基于专家系统的异常检测,通过专家对信息系统日志时 间的理解来设定规则,当现有日志事件违反规则时则被认定为发生异常。基于基线构建的日 志异常检测,该方法根据时间窗口内的用户的行为序列提取出特征并进行特征选择,再利用 聚类技术聚类出典型的用户行为构建成基线,不符合基线的行为即为异常。环比和同比。该 方案使用长期同比、短期环比的方法处理历史数据,根据历史数据设置一个阈值来比较当前 的偏离程度,若超出阈值,则认定为异常。

基于专家系统的异常检测方法能够比较准确的检测出已知的异常,由于专家知识的获取 通常晚于未知异常事件的发生,根据知识设定规则更加滞后,因此该方法不能够及时的发现 未知的异常,且该方法中规则的形成依赖于专家的设定,因此需要耗费较大的人力成本。在 基于基线构建日志异常检测中,需要对时间窗口内的用户行为特征进行提取,但是时间窗口 确定后,某些用户行为跨越多个时间窗口中,因此通过一个简单的时间窗口对异常进行检测 不够准确。而且在实际的生产环境中,尤其对于高访问量的信息系统,每个时间窗口内活跃 的用户数量庞大,对每个用户行为进行序列转化所耗费的计算和存储资源过多甚至可以超过 业务所需,因此该方法不适用高访问量的信息系统。信息系统的日志流量具有周期性和趋势 性的特征,环比和同比的方法通过长期同比和短期环比可以拟合日志数据的周期性,但是不 能够拟合日志数据的趋势性,不能够区分是信息系统业务量正常增长还是有异常事件的发生。

发明内容

为了解决日志异常检测的问题,本发明提出如下技术方案:一种基于日志异常检测系统, 包括:

日志数据收集模块,对日志数据进行收集。

时间窗口划分模块,确定时间窗口的大小。

数据预处理模块,将日志数据收集模块搜集的日志数据,根据时间窗口大小形成日志时 间序列数据,并将日志时间序列数据预处理为Prophet算法、bLSTM算法可使用的数据。

检测模型训练模块,用于训练Prophet异常检测模型,bLSTM异常检测模型,并获得DTW时间序列相似性阈值,更新异常检测模型和阈值。

异常检测模块,用于根据检测模型训练模块判断时间窗口是否存在异常,若判断当前时 间窗口为正常,则继续对下一时间窗口是否异常进行判断。若判断当前时间窗口为异常,则 调用异常告警模块发出异常告警,且异常检测模块继续对下一时间窗口是否异常进行判断。

进一步的,日志异常检测系统,还包括

异常告警模块,用于在异常检测模块判断当前时间窗口为异常时发出告警。

进一步的,所述的数据预处理模块,包括

日志时间序列数据生成子模块,根据时间窗口划分模块确定的时间窗口大小,将时间窗 口内的日志数量进行计量,得出时间窗口与该时间窗口内日志数据量一一对应日志时间。

日志时间序列预处理子模块,用于将日志时间序列数据进行预处理,分别处理成Prophet 算法、bLSTM算法、DTW算法要求格式的时间序列数据供相应算法调用。

进一步的,所述的检测模型训练模块,包括

Prophet异常检测模型训练子模块,用于根据Prophet算法调用日志时间序列预处理子模 块处理后的历史时间序列数据,对未来每一个时间窗口的日志数据量的置信区间预测,训练 Prophet异常检测模型。

DPBAS参数优化子模块,使用分裂择优算法对BAS算法进行改进,用于动态优化LSTM 的训练参数,使系统自适应更新LSTM的训练模型。

LSTM异常检测模型训练子模块,用于根据DPBAS参数优化子模块取得的训练参数,训练bLSTM日志异常检测模型。

DTW相似性阈值获取子模块,用于获取日志时间序列相似性阈值,使用DTW算法根据上两个周期同一时间段的时间序列计算出相似性值γ。

进一步的,Prophet算法的模型表达式:

y(t)=g(t)+s(t)+h(t)+w

g(t)表示时间序列中的趋势性变化,s(t)表示时间序列中的周期性变化,h(t)表示节假日 带来的潜在影响,w

进一步的,所述分裂择优算法:

在BAS算法中,通过分裂策略函数d(x)根据属性重合度来控制两个子细胞相似性的大 小,控制两个子细胞的每一步分裂的相异性。

分裂策略函数d(x)的函数表达式为:

d(x)=c(x)-i+(i*r+b),i∈P

其中c(x)为母细胞,i为根据母细胞确定要变化的一种属性,P为属性集合,r为属性分 裂随机值,b为变化偏执,P为细胞的属性的集合,P={0,1,…,i}。

在BAS算法中,通过择优策略函数p(x)比较两个子细胞的适应度值,选择适应度值高 的子细胞作为下一个母细胞进行分裂。

择优策略函数p(x)的函数表达式为:

p(x)=max(f(c(m)),f(c(n)))

其中c(m)、c(n)为依照分裂策略函数d(x)在母细胞c(x)分裂成的两个子细胞,f(x)为需要 被寻优的适应度函数。

进一步的,DPBAS参数优化子模块基于如下方式动态优化LSTM的训练参数:

步骤1:使用分裂择优算法对BAS算法进行改进。

步骤2:将三个参数作为改进后BAS算法的寻优对象,三个参数包括LSTM的激活函数、每层的单元数量、输入样本的序列长度,并给出寻优区间,激活函数参数的寻优区间是ReLU、Tanh、Sigmoid三种函数,LSTM的每层的单元数量的寻优区间是[50,100]内的整数,输入样本的序列长度的寻优区间是[6,60]之间的整数,将LSTM模型的准确率做为适应度值。

步骤3:通过分裂择优算法将BAS算法的一只基本的天牛作为母细胞,分裂出两只寻 优的天牛A、天牛B作为子细胞,天牛的两须之间的距离作为分裂择优算法的变化属性i,两须之间的距离不同,下一步头部朝向、质心坐标保持相同,天牛A、天牛B是两只步长 不同的天牛。

天牛A的天牛须之间的距离

d1=r1*d+b1

天牛B的天牛须之间的距离

d2=r2*d+b2

其中:d是母细胞天牛的天牛须之间的距离,r1为天牛A的属性分裂随机值,b1为天牛A的变化偏执,r2为天牛B的属性分裂随机值,b2为天牛B的变化偏执。

步骤4:寻优的激活函数的初始值为Relu,每层的单元数量初始值为50,输入样本的 序列长度的初始值为6,将各初始值带入至改进后的BAS算法中,天牛A、天牛B在寻优 区间内将三个参数作为寻优对象,按照不同的步长d1、d2将不同的参数组合带入到LSTM 模型中进行训练,将LSTM模型测试的准确率作为适应度值返回。

步骤5:比较天牛A、天牛B的适应度值,通过分裂择优算法保留适应度值高的天牛作 为下一次参数迭代寻优的母细胞。

步骤6:迭代结束后,取出LSTM模型准确率最高的参数作为LSTM模型的最优参数,得到最优LSTM检测模型。

进一步的,所述的LSTM异常检测模型训练子模块,包括:

忘记门

f

其中σ为激活函数,W

输入门

i

C

其中i

输出门

o

h

其中的o

进一步的,DTW相似性阈值获取子模块的相似性值的表达式为:

γ(i,j)=d(q

其中γ(i,j)为相似性值,也称为累积距离,i和j分别表示q、c两个不同时间序列内的元 素,d(q

进一步的,所述的异常检测模块,包括

prophet异常检测子模块,根据当前时间窗口的日志数据量是否在Prophet异常检测模型 训练子模块预测的置信区间内,判断时间窗口是否异常,若当前时间窗口的日志数据量在预 测的置信区间内,则时间窗口为正常,若当前时间窗口的日志数据量超出预测的置信区间, 则时间窗口为异常,对于异常的时间窗口由bLSTM异常检测子模块检测。

bLSTM异常检测子模块,用于根据LSTM异常检测模型判断当前时间窗口的日志数据 两是否异常,根据对时间窗口进行预测得到预测值,预测值与均方误差的绝对值进行相加得 到置信区间的上边界,预测值与均方误差绝对值相减得到置信区间的下边界,若当前时间窗 口下的日志数据量超出置信区间,则时间窗口为异常,若当前时间窗口下的日志数据量超出 置信区间,则时间窗口为正常,由DTW异常检测子模块进检测。

DTW异常检测子模块,用于跨时间窗口检测当前时间窗口是否存在异常,根据bLSTM 异常检测子模块判断为正常的时间窗口,自该时间窗口向前共n个时间窗口组成时间序列, 与前第m周期同一时间段的n个时间窗口组成的时间序列,通过DTW算法得到相似性值γ

有益效果:本发明使用Prophet算法、LSTM算法、DTW算法结合并改进来智能化、自动 化的实现日志异常检测,节约了人力成本和时间成本。本发明根据原核细胞分裂提出分裂择 优算法,并使用分裂择优算法对天牛须搜索算法进行改进,使用改进的BAS算法对LSTM的 输入的时间序列长度、每层的单元数量、激活函数进行参数进行寻优,能够提高择优效率, 并自动化地训练出高精确的LSTM日志异常检测模型。

附图说明

图1.基于Prophet-bLSTM-DTW日志异常检测方法流程图。

图2:天牛须算法模型。

图3:分化择优策略模型。

图4:DPBAS、BAS适用度函数检验图:(1)Sphere函数,(2)Quartic函数,(3)Step函数, (4)Griewank函数。

具体实施方式

如图1所示,一种基于Prophet-bLSTM-DTW日志异常检测方法,通过将Prophet算法与LSTM(Long Short-Term Memory,长短期记忆网络)算法相结合来检测日志异常,并通过DTW(Dynamic Time Warping,动态时间规整)算法进行跨时间窗口检测从而提升日志异常检 测精度。本方法还通过分裂择优策略(Division Preferential,DP)改进的智能优化算法 BAS(Beetle Antennae Search Algorithm,天牛须搜索算法)为LSTM算法模型的训练进行参数 寻优。能够解决现有技术中依赖人力、对未知异常检测率低、检测精度不高、计算和存储资 源消耗过大、不能拟合日志数据趋势性的问题。

所述日志异常检测方法包括如下步骤:

步骤1:根据信息系统对日志异常响应时间的要求和信息系统内日志数据量周期性、趋 势性的规律确定时间窗口的大小,划分时间窗口后相邻时间窗口内的日志数据量应当尽可能 的平滑。

步骤2:根据确定的时间窗口的大小,聚合出每个时间窗口内的日志数据量,将每个时 间窗口内的日志数据量聚合形成日志时间序列数据。

步骤3:将日志时间序列数据进行预处理,使用Prophet算法根据日志时间序列数据对 未来一段时间内每一个时间窗口的日志数据量进行预测,并预测未来每一个时间窗口置信区 间。

步骤4:对日志的时间序列数据进行处理,处理成可使用bLSTM算法的数据,使用DPBAS智能优化算法对LSTM算法进行自动化参数寻优,训练出bLSTM日志异常检测模 型,DPBAS智能优化算法是使用分裂择优算法对BAS算法进行改进后的算法。

步骤5:判断要进行异常检测的时间窗口的日志数据量值是否在步骤3中使用Prophet 算法对该时间窗口预测出的置信区间内。若在置信区间内,则异常检测结果为无异常。若不 在置信区间内,则异常检测结果为异常,再使用bLSTM算法进行进一步检测。

步骤6:将该时间窗口的时间序列数据带入bLSTM检测模型进行预测,判断该窗口下 的日志数据量是否异常。若判断结果为异常,则输出该窗口的异常检测结果为异常。若判断 结果为无异常,则使用动态时间规整算法DTW进行进一步检测。

步骤7:使用动态时间规整算法DTW跨时间窗口进行检测,提升检测精度。自该时间窗口向前共n个时间窗口组成时间序列,与以前周期同时间点的时间序列进行相似性比较。若判断相似性值为正常,则输出该窗口的检测结果然为正常。若判断相似性值为异常,则该窗口的检测结果为异常。

本发明还提供一种智能化日志异常检测系统,包括:

日志数据收集模块,用于对日志数据进行收集,获取日志的的历史数据;

时间窗口划分模块,用于根据信息系统对响应时间的要求及日志数据的规律性确定时间 窗口的大小。

数据预处理模块,用于将搜集的日志数据,根据时间窗口大小形成日志时间序列数据, 并根据Prophet、bLSTM对数据的要求对数据进行预处理。

检测模型训练模块,用于训练Prophet异常检测模型,bLSTM异常检测模型,并获得DTW时间序列相似性阈值,自动化、智能化地更新异常检测模型和阈值。

异常检测模块,用于根据所述的检测模型检测出日志时间序列数据的异常点,并根据异 常点形成异常检测结果。

异常告警模块,用于对信息系统的用户和运维人员进行异常告警,若该时间窗口为正常, 则不进行异常告警,继续对下一时间窗口的检测。若检测到该时间窗口为异常,则向用户进 行异常告警,并继续对下一时间窗口进行检测。

在一种方案中,所述的日志数据收集模块,分为日志数据搜索子模块、日志数据存储子 模块。

所述的日志数据搜索子模块,用于搜索在信息系统内产生的日志数据。

所述的日志数据存储子模块,用于的存储搜索到的日志数据,并为其他模块提供对日志 数据的调用。

在一种方案中,所述的数据预处理模块,分为日志时间序列数据生成子模块和数据预处 理子模块。

所述的日志时间序列数据生成子模块,用于将所述日志数据存储子模块中存储子模块中 的数据,根据时间窗口模块确定的时间窗口大小,将时间窗口内的日志数量进行计量,得出 时间窗口与该窗口内日志数据量一一对应日志时间序列数据。

所述的日志时间序列预处理子模块,用于将已得到的日志时间序列数据进行预处理,分 别处理成Prophet算法、bLSTM算法、DTW算法所需的时间序列数据,以供算法进行调用。

在一种方案中,所述的检测模型训练模块,分为Prophet异常检测模型训练子模块、 DPBAS参数优化子模块、LSTM异常检测模型训练子模块、DTW相似性阈值获取子模块。

所述的Prophet异常检测模型训练子模块,用于根据Prophet算法,调用日志时间序列 预处理子模块处理好的历史时间序列数据,对未来各时间窗口的的日志数据量进行预测,其 预测结果为未来每一个窗口日志数据量的置信区间,并将预测结果记录。在一种方案中, Prophet算法的模型表达式为:

y(t)=g(t)+s(t)+h(t)+w

其中g(t)表示时间序列中的趋势性变化,s(t)表示时间序列中的周期性变化,h(t)代表着 节假日或特定日期带来的潜在影响,通常在节假日流通整体呈现显著变化,因而本发明对该 因素进行考虑。w

所述的DPBAS参数优化子模块,用于优化LSTM的训练参数,动态的调整LSTM的 训练参数,使系统可以自适应的更新LSTM的训练模型,并使LSTM模型预测精度更高。 DPBAS智能优化算法是使用分裂择优策略对基本的BAS算法进行改进而得到的算法。

在基本的BAS算法中,天牛左右两须位于质心两边。天牛步长step与两须之间距离d 的比值是个固定常数即step=c*d0其中c是常数。大天牛(两须距离长)走大步,小天牛走小 步。天牛飞到下一步后,头的朝向是随机的。算法模型如下图2所示。

本发明提出分裂择优策略DP,即模拟原核细胞分裂过程,并对细胞分裂后的结果进行 择优的策略。原核细胞分裂过程中,母细胞最终被分成两个子细胞。原核细胞的分裂过程中 无基因重组,只有基因突变,且一次分裂之后的两个子细胞基因具有高度的相似性,极少的 相异性。在搜索中,对于单个粒子,以这个粒子的本身作为母细胞并分裂出两个子细胞成为 两个子粒子,两个子粒子具有高度的相同性并进行下一轮的搜索,按照弱相异性造成的下一 代的差异选择最优的粒子进行下一轮的分裂,分裂择优策略模型如图3所示。

c(x)为母细胞,d(x)为分裂策略函数,c(m)、c(n)是由c(x)依照d(x)分裂策略分裂成的两 个子细胞。P为细胞的属性的集合,P={0,1,…,i},分裂策略函数d(x)根据属性重合度 来控制两个子细胞相似性的大小,以此来控制两个子细胞的每一步分裂的相异性。择优策略 函数p(x)比较两个子细胞的适应度值,选择表现更好的子细胞作为下一个母细胞进行分裂。

其中的分裂策略函数d(x)的函数表达式为:

d(x)=c(x)-i+(i*r+b),i∈P

其中c(x)为母细胞,i为根据母细胞确定要变化的一种属性,即变化属性,P为属性集 合,r为属性分裂随机值,b为变化偏执。

其中的择优策略函数p(x)的函数表达式为:

p(x)=max(f(c(m)),f(c(n)))

其中c(m)、c(n)为由分裂函数d(x)在母细胞c(x)上得到的两个子细胞,f(x)为需要被寻优 的适应度函数。

其中通过Sphere、Quartic、Step、Griewank四种适应度函数将DPBAS算法与基本的BAS算法进行优化效果检验,其中Sphere函数、Quartic函数针对算法的收敛速度进行检验,Step函数、Griewank函数针对算法跳出局部最优能力进行检验。其中,迭代次数设定为500次,函数的寻优界限以及函数与寻优算法参数的对应关系如下表:

表1:函数界限及与优化算法参数对照表

算法对各函数寻优的实验结果如图4所示:

由图4的(1)和(2)可知,DPBAS算法分别在第100、50次迭代时收敛,收敛速度远高于 BAS。

由图4的(3)和(4)可知,DPBAS算法可以跳出局部最优,寻找到全局最优,BAS算法无 法跳出局部最优。

在一种方案中,分裂择优算法优化LSTM参数的流程为:

步骤1:使用分裂择优策略对BAS算法进行改进,在天牛须迭代的过程中,选择天牛两须之间距离为变化属性i。母天牛分裂出两只天牛,母天牛的两须之间距离为d,两只分裂出的天牛,各天牛的两须之间的距离不同,下一步头部朝向、质心坐标等属性寻优过程中保持相同。

步骤2:使用DPBAS算法对LSTM算法参数进行寻优,将LSTM的激活函数、每层的 单元数量、输入样本的序列长度这三个参数做为天牛须算法的寻优对象。其中,激活函数参数的寻优范围界定为:Relu、Tanh、Sigmoid三种函数,分别由1、2、3代替表示。将LSTM 的每层的单元数量界定为[50,100]区间内的整数;将输入样本的序列长度界定为[6,60]之间的整数。将LSTM模型的准确率做为优化算法的适应度值。

步骤2:由分裂择优算法,将一只基本的天牛分裂出两个子细胞即两只寻优的天牛A、 天牛B,变化属性i为天牛的两须之间距离,则天牛A、B为在两须之间的距离d上有不同值, 其中天牛A的天牛须之间的距离d

步骤3:寻优的激活函数的初始值为relu,每层的单元数量初始值为50,输入样本的序 列长度为6,将参数带入至DPBAS算法中。天牛A、B在上述各个参数的优化区间内以三个参数作为寻优对象,按照不同的步长d

步骤5:比较天牛A、B的适应度值,使用分裂择优算法保留适应度值高的天牛作为下 一次参数迭代寻优的母细胞。

步骤6:迭代结束后,取出LSTM模型准确率最高的参数作为最优参数建立最终的LSTM 检测模型。

所述的LSTM异常检测模型训练子模块,用于训练LSTM日志异常检测模型,在一种方案中,LSTM算法通过忘记门、输入门、输出门控制输出结果:

(1)忘记门表达式为:

f

其中σ为激活函数,W

(2)输入门

i

C

其中i

(3)输出门

o

h

其中的o

在LSTM算法中,输入的时间序列长度、每层的单元数量、激活函数是不固定的,由改进的BAS算法进行寻优最终确定。在训练的过程中,划分时间序列数据70%为训练集,30%为测试集。通过训练集训练LSTM日志异常检测模型,30%的测试集验证模型的检测准确率,并将检测的准确率做为DPBAS算法的适应度值进行迭代寻优,最终自动化的建立最优的日志异常检测模型并更新。使用最优参数建立的预测模型对测试集进行预测,保留预测 结果与真实结果的均方误差。

所述的DTW相似性阈值获取子模块,用于获取日志时间序列相似性阈值。使用DTW算法根据上两个周期同一时间段的时间序列计算出相似性值。在一种方案中,相似性值的表 达式为:

γ(i,j)=d(q

其中γ(i,j)为相似性值,也称为累积距离。i和j分别表示q、c两个不同时间序列内的元 素,d(q

所述的系统,所述的异常检测模块,分为Prophet异常检测子模块、bLSTM异常检测子 模块以及DTW异常检测子模块。

prophet异常检测子模块,根据当前时间窗口的日志数据量是否在Prophet异常检测模型 训练子模块预测的置信区间内,判断时间窗口是否异常,若当前时间窗口的日志数据量在预 测的置信区间内,则时间窗口为正常,若当前时间窗口的日志数据量超出预测的置信区间, 则时间窗口为异常,对于异常的时间窗口由bLSTM异常检测子模块检测;

bLSTM异常检测子模块,用于根据LSTM异常检测模型判断当前时间窗口的日志数据 两是否异常,根据对时间窗口进行预测得到预测值,预测值与均方误差的绝对值进行相加得 到置信区间的上边界,预测值与均方误差绝对值相减得到置信区间的下边界,若当前时间窗 口下的日志数据量超出置信区间,则时间窗口为异常,若当前时间窗口下的日志数据量超出 置信区间,则时间窗口为正常,由DTW异常检测子模块进检测;

DTW异常检测子模块,用于跨时间窗口检测当前时间窗口是否存在异常,根据bLSTM 异常检测子模块判断为正常的时间窗口,自该时间窗口向前共n个时间窗口组成时间序列, 与前第m周期同一时间段的n个时间窗口组成的时间序列,通过DTW算法得到相似性值γ

基于专家系统的异常检测方法不能够及时的发现未知的异常。在本发明中使用了改进的 长短期记忆网络bLSTM,不通过专家知识对规则进行设定,而是利用深度学习技术智能化 的对历史数据进行挖掘,通过对时间序列进行预测来检测异常的时间窗口,避免了因专家获 取知识滞后、设定规则滞后所造成的不能发现未知异常的问题。

基于专家系统的异常检测方法规则的形成依赖于专家的设定,需要耗费较大的人力成本。 在本发明中,使用DPBAS算法自动化的训练、优化并更新Prophet、LSTM等模型。LSTM 算法需要优化的参数数量为三个,符合优化算法的低维寻优特点,BAS算法在低维中的寻 优速度与精度高于遗传算法、粒子群算法、灰狼算法等算法。上文提出的DP策略对BAS算法进行改进后得到的DPBAS算法的收敛速度及精度得到了明显的提升,可以更快更好的训练出模型。不需要依赖专家对规则进行设定,系统建成后可对数据进行实时不间断的学习 和挖掘,大大节约了人力资源。

在基于基线构建日志异常检测中一个简单的时间窗口对异常进行检测是不够准确。本发 明中使用DTW算法进行跨时间窗口异常检测,综合考虑多个时间窗口,使模型对异常检测 的结果更加精确。

在基于基线构建日志异常检测对每个用户行为进行序列转化所耗费的计算和存储资源 过多不符合高访问量的信息系统实际的生产环境。在本发明中并不对单个用户行为进行分析 来判断时间窗口的异常,而是考虑时间窗口内的日志数据量。划分时间窗口、统计时间窗口 内日志数据量所占用的计算和存储资源远远低于对每个用户行为进行序列转化所占用的计 算和存储资源。

信息系统的日志流量具有周期性和趋势性的特征,环比和同比通过长期同比和短期环比 可以拟合日志数据的周期性,但是不能够拟合日志数据的趋势性,不能够区分是信息系统业 务量正常增长还是有异常事件的发生。本发明中的Prophet算法能够拟合时间序列的周期性、 趋势性,还可将节假日等业务变化的时间拟合在内。

总体上,本发明使用Prophet-bLSTM-DTW算法模型对日志异常进行检测,智能化、自 动化的将异常结果实时提供给信息系统管理人员或运维人员,运维人员仅在异常情况发生时 对信息系统做出反应,并仅需对异常的时间窗口进行分析,大大节约运维工作的人力和时间 成本。

本发明根据原核细胞分裂提出了分裂择优策略对BAS算法进行改进,使改进后的BAS 算法寻优能力更加优秀。通过改进的BAS算法对LSTM的参数进行寻优,可以自动化的训练、优化和更新LSTM算法模型,使模型对时间序列数据的检测精度更高,且不必消耗人 力在模型训练时调参。

本发明使用Prophet算法检测异常,Prophet算法可以预测出很长一段时间的值,精确至 秒级,在信息系统运行的整个过程中耗费计算资源很低。在使用Prophet做时间异常预测, 且将置信区间收紧,在检测到时间窗口异常时才使用LSTM、DTW算法进行进一步的检测, 避免了深度学习算法对计算资源的长时间高占用。因此本发明中所述的系统耗费计算资源较 低。使用深度学习技术LSTM算法对数据进行挖掘,能够针对性学习本信息系统内日志的 特点,及时发现未知的异常。使用DTW算法跨时间窗口对异常进行检测,综合考虑多个时 间窗口提升了对异常检测的精度。

在一种方案中,一种基于Prophet-bLSTM-DTW日志异常检测方法,步骤如下:

步骤1:根据信息系统对日志异常响应时间的要求和信息系统内日志数据量周期性、趋 势性的规律确定时间窗口的大小,对于划分后的时间窗口,相邻时间窗口内的日志数据量保 持平滑。

步骤2:根据确定的时间窗口的大小,聚合出每个时间窗口内的日志数据量,将每个时 间窗口内的日志数据量聚合形成日志时间序列数据。

步骤3:将日志时间序列数据预处理成可使用Prophet算法的数据,使用Prophet算法 根据日志时间序列数据对未来一段时间内每一个时间窗口的日志数据量进行预测,并预测每 一个时间窗口置信区间。

步骤4:对日志的时间序列数据预处理成可使用bLSTM算法的数据,使用DPBAS智能优化算法对LSTM算法进行自动化参数寻优,训练出bLSTM日志异常检测模型。

步骤5:判断要进行异常检测的时间窗口的日志数据量值是否在对该时间窗口预测出的 置信区间内,若在置信区间内,则判断结果为无异常,若不在置信区间内,则判断结果为异 常,执行步骤S6。

步骤6:将该时间窗口前的时间序列数据带入bLSTM检测模型进行预测,判断该时间 窗口下的日志数据量是否异常,若判断结果为异常,则输出该窗口的异常检测结果为异常, 若判断结果为无异常,则执行步骤S7;

步骤7:使用动态时间规整算法DTW跨时间窗口进行检测:将自该时间窗口向前共n个时间窗口组成时间序列,与前一个周期同时间点的时间序列进行相似性比较,若判断相似 性值为正常,则判断结果为正常,输出该窗口的异常检测结果为正常,若判断相似性值为异 常,则判断结果为异常,输出该窗口的异常检测结果为异常。

进一步的,步骤4的使用DPBAS智能优化算法对LSTM算法进行自动化参数寻优,训练出bLSTM日志异常检测模型的具体方法是:

所述DPBAS智能优化算法:

在BAS算法中,通过分裂策略函数d(x)根据属性重合度来控制两个子细胞相似性的大 小,控制两个子细胞的每一步分裂的相异性;

分裂策略函数d(x)的函数表达式为:

d(x)=c(x)-i+(i*r+b),i∈P

其中c(x)为母细胞,i为根据母细胞确定要变化的一种属性,P为属性集合,r为属性分 裂随机值,b为变化偏执,P为细胞的属性的集合,P={0,1,…,i};

在BAS算法中,通过择优策略函数p(x)比较两个子细胞的适应度值,选择适应度值高 的子细胞作为下一个母细胞进行分裂;

择优策略函数p(x)的函数表达式为:

p(x)=max(f(c(m)),f(c(n)))

其中c(m)、c(n)为依照分裂策略函数d(x)在母细胞c(x)分裂成的两个子细胞,f(x)为需要 被寻优的适应度函数。

自动化参数寻优包括如下步骤:

步骤1:使用分裂择优算法对BAS算法进行改进;

步骤2:将三个参数作为改进后BAS算法的寻优对象,三个参数包括LSTM的激活函数、每层的单元数量、输入样本的序列长度,并给出寻优区间,激活函数参数的寻优区间是ReLU、Tanh、Sigmoid三种函数,LSTM的每层的单元数量的寻优区间是[50,100]内的整数,输入样本的序列长度的寻优区间是[6,60]之间的整数,将LSTM模型的准确率做为适应度值;

步骤3:通过分裂择优算法将BAS算法的一只基本的天牛作为母细胞,分裂出两只寻 优的天牛A、天牛B作为子细胞,天牛的两须之间的距离作为分裂择优算法的变化属性i,两须之间的距离不同,下一步头部朝向、质心坐标保持相同,天牛A、天牛B是两只步长 不同的天牛;

天牛A的天牛须之间的距离

d1=r1*d+b1

天牛B的天牛须之间的距离

d2=r2*d+b2

其中:d是母细胞天牛的天牛须之间的距离,r1为天牛A的属性分裂随机值,b1为天牛A的变化偏执,r2为天牛B的属性分裂随机值,b2为天牛B的变化偏执;

步骤4:寻优的激活函数的初始值为relu,每层的单元数量初始值为50,输入样本的序 列长度的初始值为6,将各初始值带入至改进后的BAS算法中,天牛A、天牛B在寻优区间内将三个参数作为寻优对象,按照不同的步长d1、d2将不同的参数组合带入到LSTM模 型中进行训练,将LSTM模型测试的准确率作为适应度值返回;

步骤5:比较天牛A、天牛B的适应度值,通过分裂择优算法保留适应度值高的天牛作 为下一次参数迭代寻优的母细胞;

步骤6:迭代结束后,取出LSTM模型准确率最高的参数作为LSTM模型的最优参数,得到最优LSTM检测模型。

进一步的,步骤S6的将该时间窗口前的时间序列数据带入bLSTM检测模型进行预测, 判断该时间窗口下的日志数据量是否异常的具体方法:根据对时间窗口进行预测得到预测值, 预测值与均方误差的绝对值进行相加得到置信区间的上边界,预测值与均方误差绝对值相减 得到置信区间的下边界,若当前时间窗口下的日志数据量超出置信区间,则时间窗口为异常, 若当前时间窗口下的日志数据量超出置信区间,则时间窗口为正常。

进一步的,步骤5判断异常的具体方法:

根据Prophet算法调用预处理后的历史时间序列数据,对未来每一个时间窗口的日志数 据量的置信区间预测,Prophet算法的模型表达式:

y(t)=g(t)+s(t)+h(t)+w

g(t)表示时间序列中的趋势性变化,s(t)表示时间序列中的周期性变化,h(t)表示节假日 带来的潜在影响,w

根据当前时间窗口的日志数据量是否在预测的置信区间内,判断时间窗口是否异常,若 当前时间窗口的日志数据量在预测的置信区间内,则时间窗口为正常,若当前时间窗口的日 志数据量超出预测的置信区间,则时间窗口为异常。

进一步的,步骤7判断异常的方法:获取日志时间序列相似性阈值,使用DTW算法根据上两个周期同一时间段的时间序列计算出相似性值γ,自当前时间窗口向前共n个时间窗 口组成时间序列,与前第m周期同一时间段的n个时间窗口组成的时间序列,通过DTW算法得到相似性值γ

以上所述,仅为本发明创造较佳的具体实施方式,但本发明创造的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明创造披露的技术范围内,根据本发明创造的技 术方案及其发明构思加以等同替换或改变,都应涵盖在本发明创造的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号