一种基于时空特征融合的日志异常检测方法

文档序号:37936785发布日期:2024-05-11 00:15阅读:14来源:国知局
一种基于时空特征融合的日志异常检测方法

本发明涉及计算机软件系统智能运维,尤其涉及一种基于时空特征融合的日志异常检测方法。


背景技术:

1、随着计算机系统的复杂性和规模的急剧增加,保障软件系统的可靠性和稳定性变得更具挑战性。异常检测能够及时发现并反馈程序运行故障或异常的信息,是维护软件系统安全和降低潜在风险损失的重要方式。计算机软件系统运行时产生大量的状态数据描述与事件数据描述,应用程序或软件系统的状态数据描述主要表现为一些具体的指标参数量,如网络连接状态、cpu利用率、内存使用率以及接口调用次数等,其能定量的对系统的当前状态进行描述;事件数据描述主要表现为系统运行逻辑的机制,如某个模块的调用、数据库的访问内容、接口完成的记录以及人机事件的交互等,其能定性的对系统业务的执行阶段进行描述。系统运行时会产生海量的日志文件,清晰的记录和描述程序运行时的状态和事件,日志流支持细粒度的故障诊断和定位,能够直观且透彻的发现系统异常的原因,几乎所有的软件系统都会伴随着日志记录功能,强大的通用性保证了原始数据来源的稳定性。这些庞大的数据成为日志检测的重要因素,基于日志的系统异常检测是业界智能化运维工作中广泛采用的解决方案。

2、近年来,随着语义向量嵌入方法的发展,日志异常检测方法出现了很多应用语言模型或者语义向量来对日志语句进行向量编码。例如loganomaly方法采用word2vec的向量编码模型,采用词向量平均计算的方法对日志语句进行向量嵌入,进而计算日志流的时间特征;logrobust和plelog则采用glove向量编码模型,通过tf-idf计算词频出现的权重,明确日志语句中部分词语的重要程度,然后采用加权平均的方法来计算其日志语句的向量值;logbert等一些方法则采用bert预训练模型等方式常规的编码日志语句的向量信息,通过遮蔽关键语句来学习上下文关系,进而推导出日志模板的向量信息,或者通过句向量bert预训练模型来直接计算出常用的日志模板的特征信息,直接应用于下游异常检测的模型学习任务。

3、目前通过学习正常的日志流模式特征的无监督深度学习方案在领域中占据了重要位置,其框架流程一般为解析日志事件,然后通过词向量嵌入或句向量嵌入方法对日志事件进行特征提取,将日志事件序列输入到相应的神经网络模型中进一步提取信息,最后根据svdd或top k的相应损失函数对整体的网络模型进行参数更新。相应的主流模型有gnn、rnn或transformer等,其代表性的解决方案有deeplog、loganomaly、deeptralog等。该主流方案的不足之处在于对日志序列事件的特征提取方式仍比较单一,大多仅考虑时序模式或者空间模式,未能完全将两者真正的整合到一起。

4、日志异常检测算法的发展经历了三个主要阶段。最初阶段集中在基于人工分析或关键字匹配的传统日志异常检测方法,逐渐发展到基于机器学习的日志异常检测方法,近年来又引入了基于深度学习的多特征融合日志异常检测方法。然而随着计算机软件系统的规模和复杂度逐渐增加,运维工作的内容也不断的产生更新,实际应用的各个阶段方法所面临的问题也变得复杂。

5、传统的日志异常检测方法一般是系统运维人员对日志进行人工分析,根据时间戳或者关键字等相关信息查找异常日志事件的具体位置,反馈给相关的开发或运维人员进行诊断和修复。这种方案需要工作人员具备较强的领域知识,结合对整个软件系统的深入理解,才能进行快速的定位和原因分析。人工分析或者关键反馈,导致客户的体验效果较差且造出巨大的损失。

6、基于监督的传统机器学习方法一般采用日志事件的计数模板矩阵作为基础数据,采用svm、pca等方法学习内含的数量关系,在封闭系统的运行实现中能够对异常的日志事件流(行为)进行探测。该方案的主要缺陷在于日志事件的数量关系仍不能完全的表示系统运行的内在模式,无法捕捉日志流的时序关系、空间关系以及语义关系,采用的数据特征较为单一,无法适应软件系统更新的需求,而且监督的方法难以适应智能运维的主流思想。

7、采用基于监督的深度学习方法能够较好的学习日志流的时间特征和语义特征,根据真实标签或者概率标签设计对应的损失函数不断更新神经网络参数,取得了良好的异常检测效果,代表性的解决方案有logrobust和plelog。该类型方法大都改进了日志事件的语义特征提取方法,同时采用lstm或gru等循环神经网络模型深度提取日志流的时间特征。该类型方案的主要缺陷在于未能充分挖掘日志流的空间模式,监督的方式会耗费大量的人工标注活动,基于概率标签的监督方式在日志序列模式学习粒度较粗。

8、时空模式的特征学习并不是简单的拼接神经网络模型,而是对日志事件序列进行图结构改造,使其成为真正的图,才能够更好的学习日志流的正常模式,加强异常检测的效果。


技术实现思路

1、本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于时空特征融合的日志异常检测方法,实现日志的异常检测。

2、为解决上述技术问题,本发明所采取的技术方案是:一种基于时空特征融合的日志异常检测方法,包括以下步骤:

3、步骤1、构建计算机软件系统正常运转模式下的日志原始样本数据序列集合;

4、从计算机软件系统的历史运行日志记录数据库中提取若干原始的日志流数据为样本,结合滑动窗口或会话窗口对流数据进行序列片段划分,构建系统正常运转模式下的日志原始样本数据序列集合;

5、步骤2、针对日志原始样本数据序列通过解析操作形成对应的日志模板数据序列;

6、对日志原始样本数据序列中的每一条日志信息进行解析操作,提取日志信息中的相关参数和关键词,得到每条原始日志对应的日志模板,从而日志原始样本数据序列通过解析操作形成对应的日志模板数据序列logt_seq=(logt_1,logt_2,…,logt_n),其中logt_1代表日志模板数据序列中对应的第一条日志模板;

7、步骤3、采用语义预训练模型作为句向量转换器对原始日志模板数据序列进行语义向量嵌入,得到涵盖语义数字信息的日志模板向量序列;

8、步骤3-1、将日志模板数据序列中的每个日志模板视为单词拼接成的语句,记为(tokenk,1,tokenk,2,…,tokenk,m),tokenk,i表示日志模板数据序列中的第k个日志模板中的第i个单词,i=1、2、…、m,m为日志模板中单词总数;

9、步骤3-2、对日志模板的单词序列添加特殊标记,方便模型进行特征的读取,记为tokens=[[cls],tokenk,1,…,tokenk,m,[sep]],将日志模板的语句输入到语义预训练模型的孪生网络编码器层,输出每个标记token的向量表示n,将日志模板中所有单词或标记的向量表示输入到池化层网络(pooling)分别得到孪生网络的输出表示u,v;

10、步骤3-3、结合语义预训练模型孪生网络的输出表示u,v,根据公式wt*(u,v,|u-v|)计算出日志模板序列中第k个日志模板的向量表示vk,进而得出日志模板序列的向量表示ve=(v1,v2,…,vn),公式中wt代表语义预训练模型中孪生网络的权重参数矩阵,用于调整模型网络中不同神经元之间的连接强度,以实现对日志模板序列数据的适应和学习,进而计算出整个日志模板序列的向量表示;

11、步骤4、采用lstm网络模型构建时间异常检测模型对日志模板序列数据进行时间维度特征提取;将步骤3得到的涵盖语义数字信息的日志模板向量序列表示作为时间异常检测模型的输入,通过时间异常检测模型计算得到涵盖语义数字信息的日志模板向量序列的时间维度特征向量表示t,以帮助迭代lstm网络模型的参数;

12、步骤5、基于共享注意力机制获得日志模板数据序列中每种日志模板的空间节点向量表示;

13、对日志模板数据序列中的不同类型的日志模板按照在序列中的位置进行单独提取,添加位置向量,分别将不同类型的日志模板输入到共享注意力机制中得到日志模板数据序列中每种日志模板的空间节点向量表示;

14、步骤6、计算每种日志模板的空间节点的注意力相似度矩阵,确定日志模板数据序列的空间节点的边集关系;

15、采用多头注意力网络对日志序列中所有日志模板的空间节点向量进行注意力相似度计算,得到空间节点的注意力相似度矩阵,根据该矩阵设定动态阈值,计算出日志模板之间的空间关联关系,即得出日志模板数据序列的空间节点边集关系;

16、步骤7、根据步骤5产生的日志模板数据序列的空间节点向量表示和步骤6产生的日志模板数据序列的空间节点边集关系构建日志模板序列数据对应的图结构;

17、步骤8、采用gat图神经网络模型构建空间异常检测模型对日志模板数据序列进行空间维度特征提取;

18、将步骤7获得的日志模板数据序列对应的图结构输入到gat图神经网络中,通过节点与边的远距离信息融合不断的迭代更新空间节点的特征表示,进而对空间异常检测模型的参数信息进行更新;使用一层池化网络对gat图神经网络的输出进行后处理,进一步融合整张图的节点信息和结构信息,从而得到日志模板数据序列对应图的空间特征向量s;

19、步骤9、将日志模板数据序列时间维度的特征和空间维度的特征融合,得到日志模板数据序列的最终特征表示;

20、采用特征横向拼接的方式对步骤4得到的时间维度的特征向量t和步骤8得到的空间维度的特征向量s进行融合得到时空特征向量st,将融合时空特征向量经过一层全连接神经网络,得到该日志模板数据序列的最终特征表示stf;

21、步骤10、使用深度支持向量数据描述算法训练基于日志时空特征融合的异常检测模型,学习并优化一个关联日志模板序列表示向量的超球面;所述基于日志时空特征融合的异常检测模型包括时间异常检测模型和空间异常检测模型;

22、步骤11、对基于日志时空特征融合的异常检测模型进行训练并部署到计算机软件系统进行日志异常检测;

23、通过时间异常检测模型和空间异常检测模型对正常日志流数据进行训练,更新相关网络模型的参数,将训练完成的模型部署到计算机软件系统中,每当有新的日志流产生时,依据步骤2-步骤9对日志流数据进行特征提取,获得该日志模板序列的向量表示,并将该向量映射到多维计算空间中作为一个坐标点,进而计算该坐标点到超球面的距离作为日志异常评分,具体计算方式如下:

24、ans(stf)=||stf-c||2-r2

25、其中,c表示超球面的中心,r表示球的半径,表示模型试图学习球形空间的大小,ans(stf)代表损失函数的目标值,用于训练异常检测模型,这个值表示样本是否在球形空间的内部,通过最小化这个损失函数,基于时空特征的日志异常检测模型可以学习到最佳的c和r值,以便于更好的包含正常的样本;若该坐标点位于超球面以内,则判断对应的日志模板序列数据为正常模式的日志流,若该坐标点位于超球面以外,则判断对应的日志模板序列数据为异常模式的日志流。

26、采用上述技术方案所产生的有益效果在于:本发明提供的一种基于时空特征融合的日志异常检测方法,(1)本发明提出一种基于日志流的图结构构造方法。首先根据共享注意力机制技术提取每种类型日志模板的特征作为图的点集,然后根据注意力网络计算模板之间的关系,形成注意力相似度矩阵,然后根据阈值计算出图的边集,根据点集和边集形成日志流的图结构。

27、(2)本发明提出一种新的日志流时空特征融合方法。为了学习日志流的工作模式,本发明使用图注意力网络对形成的基于日志流的图结构进行特征提取,挖掘日志流的空间信息,使用循环神经网络对日志流的时序关系进行特征提取,挖掘日志流的时间信息,融合时空信息,得到日志流的时空特征。

28、(3)本发明提出一种基于深度支持向量数据描述的微调方法。通过使用deep svdd计算最小化球形损失,从而将日志流工作的正常日志与异常日志划分边界,同时通过网络学习不断的调整边界,尽可能的最大化分离正常与异常日志工作模式的关系,同时保证正常日志数据聚合在同一个球体内,保证日志异常检测的有效性和稳定性。

29、(4)本发明方法不仅仅利用日志流的时间特征信息,还利用了日志语句的语义向量信息和日志流的空间模式信息。使用共享注意力机制构建对日志流构建图的点集,同时采用计算注意力相似度矩阵和阈值设置的方法对日志流构建图的边集,可以更好的获取和更新日志流的图结构信息。在此基础上提出日志流的空间和时间特征融合策略,来增强日志流的工作模式特征学习,可以提高日志异常检测算法的识别效果。融合日志流的时空特征能够增加对日志之间复杂关系的理解和工作模式的学习,通过使用deep svdd最小化球形损失的方法可以微调日志异常检测的检测结果,比top k模式能够更细粒度的更新算法的内部参数,对日志异常检测方法的实用性具有积极的影响。

30、首次将日志模板序列转换为图结构,利用共享注意力机制和注意力相似度矩阵提取图结构的点集和边集,增强了空间特征表示的完整性和稳定性。

31、本发明通过图神经网络和注意力编码器分别提取日志序列的空间和时间特征,将两种属性的特征表达进行融合,这一属性融合机制可以增强日志序列的向量表达,挖掘出日志原始数据序列中的时间和空间关联关系,进而赋予系统良好的异常检测准确性,有助于精准地捕获软件系统运行模式中的异常,提高系统的稳定性。

32、本发明引入了deep svdd的损失计算方法,采用最小化球形损失将正常模式的日志序列时空特征进行超球面融合,保证日志异常检测系统识别异常的确定性和鲁棒性,实现系统内部细粒度的检测效果调整。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1