System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术公开了一种日志异常检测方法、系统、设备及介质,涉及安全技术预警领域。
技术介绍
1、在电力系统中,日志数据的异常检测是确保系统安全稳定运行的重要手段。电力系统的运行包括发电、输电、配电和用电等多个环节,每个环节都会生成大量日志记录运行状态和事件信息。这些日志记录对于故障检测、故障定位和性能监控至关重要。然而,现有的基于循环神经网络(rnn)的日志异常检测方法在电力系统中应用时面临以下几个关键问题:系统日志被广泛用于软件系统的异常检测,其中每条日志消息通常是一个由开发人员自定义的半结构化的文本字符串。传统方法显式地使用关键词(例如“error”)或正则表达式来检测异常日志条目。尽管这类基于规则的方法识别异常事件的准确度可以很高,但它们只能识别预定义的异常场景,并且需要大量的领域知识和人工处理。此外,这类方法无法检测基于一系列操作的恶意攻击,其中每条日志看起来都是正常的,但整个序列是异常的。一旦出现未定义的异常情况,基于规则的方法就无法取得良好的效果。
2、目前日志序列的异常检测问题,检测的粒度是日志序列的异常而并非单条日志的异常。日志序列是将日志信息按照生成时间排序形成的序列。将那些偏离系统正常运行状态的日志序列判定为异常,原因在于,即使异常日志序列中可能没有包含任何明显输出异常信息的单条日志,但是组合起来表现出偏离正常行为模式的执行顺序,这种情况也是日志序列异常。这说明了日志是上下文相关的,因此日志异常检测的粒度应是日志序列。
3、目前深度学习中的循环神经网络广泛用于日志异常检测,因为它们能够学
4、首先,已有方法在处理日志模板数据时,或为模板分配一个索引号,忽略了日志模板中的语义信息;或使用语言模型从token的层次理解日志的语义信息,并未上升到从语句的层次完整理解日志。
5、传统的循环神经网络只能单向从前往后对上下文信息进行编码。但是在对日志信息进行检测时,利用完整的上下文信息而不仅仅是来自之前的时间步信息是很重要的。虽然可以用双向rnn来学习上下文信息,从前向和后向两个方向传递信息,但它在处理长序列时仍然面临着难以获取长期依赖的问题。而日志序列通常包括多条日志信息,学习到长期依赖关系就尤为重要。
6、目前基于rnn的异常检测模型的训练过程是基于之前的时间步来预测下一条日志信息,以此来学习正常的序列模式。这样的训练过程主要目的在于学习正常序列中日志信息的关联性。当发生违背关联性的情况,也就是模型预测下一条信息出错时,该序列就被标记为异常序列。然而,仅仅把模型训练的目标函数设定为预测序列下一个元素还不够,还希望模型能够学习到所有正常序列共有的模式。
7、微服务系统中随着服务数量的增加,系统的复杂性也随之增加。每个服务都会生成大量的日志,记录其运行时状态和事件信息。然而,由于服务之间的相互独立性和分布式特性,服务之间缺少强相关性,相对而言服务内的日志更相关。如将所有的日志进行统一分析,就忽视了这一现状。
技术实现思路
1、本专利技术所要解决的技术问题在于针对上述现有技术中的不足,提供了一种日志异常检测方法、系统、设备及介质,目的在于解决了电力移动微服务系统日志语义信息处理不足、单向信息编码的局限性、训练目标函数的局限性以及微服务系统日志分析复杂性中至少一个问题。
2、本专利技术的目的是由以下技术方案实现的:
3、第一方面,本专利技术提供了一种日志异常检测方法,包括:
4、获取待检测的电力移动微服务系统日志序列数据,将待检测的日志序列数据输入至预先训练的异常检测模型中,得到异常检测结果;
5、所述异常检测模型基于日志数据集训练得到,包括数据处理模块和注意力处理模块;所述数据处理模块用于将输入的日志序列数据转化为语义特征向量;所述注意力处理模块用于根据语义特征向量进行语义特征表示,基于所述语义特征进行异常检测,得到异常检测结果;所述日志数据集采用电力移动微服务系统日志模板和异常日志序列。
6、作为本专利技术的进一步改进,所述数据处理模块基于bert算法模型或sentencebert算法模型得到,具体包括:
7、根据输入的日志序列数据生成日志模板滑动窗口序列;
8、利用bert算法模型或sentencebert算法模型对各个滑动窗口序列进行语义特征的提取,将滑动窗口序列中的每条日志模板输入到算法模型中,得到语义特征向量序列。
9、作为本专利技术的进一步改进,注意力处理模块包括局部注意力子模块和全局注意力子模块,具体包括:
10、将语义特征向量序列划分为多个序列,将多个子序列分别输入至局部注意力子模块中,对语义特征向量序列中语义进行位置编码,经过多头注意力子层和前馈网络子层后,对语义特征向量序列进行局部处理,得到多个子序列特征向量;各子序列特征向量输入至全局注意力子模块中,经过第二层多头注意力子层和前馈网络子层后进行整合,基于位置解码后得到总语义特征序列,将总语义特征序列进行解析,得到异常检测结果;所述transformer算法为:
11、
12、式中,klocal,vlocal分别是只包含局部邻居的键和值矩阵,k为键向量,v为值向量,q为查询向量。
13、作为本专利技术的进一步改进,所述日志数据集采用电力移动微服务系统正常日志序列和异常日志序列是经过预处理后的数据,预处理步骤包括:
14、使用日志模板解析算法对数据集中的日志序列数据进行日志模板解析,分解得到固定文本数据部分和可变参数数据部分;
15、将解析后的数据部分转换为微服务日志元组,所述微服务日志元组指的是经过解析后的数据所对应的数据结构。
16、作为本专利技术的进一步改进,所述异常检测模型基于日志数据集训练得到,具体训练步骤包括:
17、使用mask掩码标记替换序列中一定比例的日志模板作为异常日志序列,将所述异常日志序列与正常日志序列输入至异常检测模型中,
18、将异常日志序列中的mask掩码的特征向量输入至softmax函数中,得到日志模板集合的概率分布;
19、使用交叉熵损失函数作为掩码日志模板学习的损失函数;
20、使用聚类中心距离最小化损失函数来约束学习到的正常日志序列的分布,找到包含所有正常数据的最小超球体;
21、基于包含所有正常数据的最小超球体,求取平均操作计算出正常日志序列聚类的中心,利用聚类中心距离最小化损失函数进行数据优化。
22、作为本专利技术的进一步改进,交叉熵损失函数为:
23、
24、式中,是第i个mask标记处实际的日志模板,m是第j个序列中所有mask掩码的个数,n是序列的总数。
25、作为本专利技术的进一步改进,聚类中心距离最小化损失函数为:
26、
27、式中,lossccdm为聚类中心距离最小化损失函数,n是序本文档来自技高网...
【技术保护点】
1.一种日志异常检测方法,其特征在于,包括:
2.根据权利要求1所述的日志异常检测方法,其特征在于,所述数据处理模块基于BERT算法模型或SentenceBERT算法模型得到,具体包括:
3.根据权利要求1所述的日志异常检测方法,其特征在于,注意力处理模块包括局部注意力子模块和全局注意力子模块,具体包括:
4.根据权利要求1所述的日志异常检测方法,其特征在于,所述日志数据集采用电力移动微服务系统正常日志序列和异常日志序列是经过预处理后的数据,预处理步骤包括:
5.根据权利要求4所述的日志异常检测方法,其特征在于,所述异常检测模型基于日志数据集训练得到,具体训练步骤包括:
6.根据权利要求5所述的日志异常检测方法,其特征在于,交叉熵损失函数为:
7.根据权利要求5所述的日志异常检测方法,其特征在于,聚类中心距离最小化损失函数为:
8.一种日志异常检测系统,其特征在于,包括:
9.一种计算设备,其特征在于,包括:
10.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所
...【技术特征摘要】
1.一种日志异常检测方法,其特征在于,包括:
2.根据权利要求1所述的日志异常检测方法,其特征在于,所述数据处理模块基于bert算法模型或sentencebert算法模型得到,具体包括:
3.根据权利要求1所述的日志异常检测方法,其特征在于,注意力处理模块包括局部注意力子模块和全局注意力子模块,具体包括:
4.根据权利要求1所述的日志异常检测方法,其特征在于,所述日志数据集采用电力移动微服务系统正常日志序列和异常日志序列是经过预处理后的数据,预处理步骤包括:
5.根据权利要求4所述的日志异常检测方法,其...
【专利技术属性】
技术研发人员:党倩,杜春慧,伏建蓉,罗发政,李荣达,滕振宁,桂小林,
申请(专利权)人:国网甘肃省电力公司信息通信公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。