System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件、微服务的智能运维领域、文本分析领域和异常检测领域,尤其是一种用于微服务系统的日志异常检测方法。
技术介绍
1、微服务架构是一种开发软件系统的方法,它将应用程序构建为松散耦合服务的集合。与单机架构相比,这种方法变得越来越流行,因为它可以实现更轻松的可扩展性、更快的开发周期以及改进的故障隔离。
2、当前的微服务架构由于其高度的分布式特性,造成系统结构复杂,异常情况频发,难以快速准确地排查,因此,如何尽早地发现系统中的异常,在其升级为更严重的问题之前进行干预,是一个很重要的问题。
3、在微服务环境中,每个服务通常都会生成自己的一组日志,记录各种事件、事务或错误。这些日志对于监控服务的运行状况、调试问题和维护安全至关重要。 尽管日志作为理解系统行为的一种重要手段,但是由于微服务的复杂性,日志数据具有庞大和无序性的特征,使得从中检测异常变得极具挑战。
4、因此,如何从微服务系统中对庞大和繁杂的日志进行分析,对异常进行及时的检测,是一个很有价值的问题。
技术实现思路
1、本专利技术的目的在于提供一种用于微服务系统的日志异常检测方法,旨在解决现有技术中微服务系统趋于复杂,导致的日志异常情况繁多且难以排查的问题,提高对微服务进行异常发现和定位的效率和准确性,提供一种自动化的方式,尽可能地减少对领域知识的要求,从而降低系统运维的门槛,使得运维人员能够更方便地保障系统正常运行。
2、实现本专利技术目的的具体技术方案是;
3
4、步骤s1:微服务日志模板解析;具体包括:
5、步骤s11:日志预处理;
6、步骤s12:创建初始日志组;
7、步骤s13:创建与更新双向树;
8、步骤s14:生成日志模板;
9、步骤s2:微服务日志向量表示;具体包括:
10、步骤s21:输入日志框架预设的配置;
11、步骤s22:通过步骤s1得到的日志模板和步骤s21中的格式,从日志中提取出日志框架预设格式、模板编号和动态参数;
12、步骤s23:对步骤s22中提取得到的日志框架预设格式进行词嵌入,生成日志框架预设格式向量;
13、步骤s24:将步骤s22中提取得到的模板编号转化为one-hot编码;
14、步骤s25:对步骤s22中提取得到的动态参数进行词嵌入,生成日志动态参数向量;
15、步骤s26:将步骤s23、步骤s24和步骤s25中获得的所有参数连接起来,作为日志向量的表示;
16、步骤s3:微服务日志向量异常检测;具体包括:
17、步骤s31:对单条日志进行特征学习;
18、步骤s32:对多条日志的上下文关系进行学习;
19、步骤s33:利用步骤s31和步骤s32的学习结果进行异常检测。
20、进一步,步骤s11所述日志预处理,具体包括:
21、步骤s111:用分隔符对英文词语进行分词;
22、步骤s112:用jieba模型对中文词语进行分词。
23、进一步,s12所述创建初始日志组,具体包括:
24、步骤s121:统计日志中词语的出现频率,将出现频率相同的词语合并为同一组,从而构建一张词频表;
25、步骤s122:根据所述的词频表,提取每条日志的最长共同子序列;
26、步骤s123:根据所述的每条日志的最长共同子序列,提取所有的词语组合,作为日志模板的集合;
27、步骤s124:设置一个频率阈值;
28、步骤s125:设置一个超参数权重;
29、步骤s126:将日志中词语组合的最高频率乘以s125中的权重来计算最终的权重,并与s124中的阈值进行比较,若最终的权重大于阈值,则将该词语组合保留,否则,则将该词语组合舍弃;
30、步骤s127:对于每条日志,从所有保留的词语组合中只保留最长的词语组合,并将所有最长词语组合相同的日志分为一组,最终形成一个初始日志组。
31、进一步,步骤s13所述创建与更新双向树,具体包括:
32、步骤s131:对于每个初始日志组,以最长共同子序列为根节点,创建一棵双向树,将处于日志同一列位置的词语放到树中相同深度的位置;
33、步骤s132:对于每个初始日志组,将某个词在某列中出现的最大频率作为该列的代表频率;
34、步骤s133:对于每个初始日志组对应的双向树,检查初始日志组中每一列,如果该列的代表频率比根节点对应的列的代表频率更高,则将该代表频率对应的词语加入到双向树的父方向中;
35、步骤s134:对于每个初始日志组对应的双向树,检查初始日志组中每一列,如果该列的代表频率比根节点对应的列的代表频率更低,则将该代表频率对应的词语加入到双向树的子方向中。
36、进一步,步骤s14所述生成日志模板,具体包括:
37、步骤 s141:对于每个初始日志组,在两个方向的节点添加完成后,将初始日志组中的每个词语映射为树中的一个节点;
38、步骤 s142:对于每棵双向树,从上到下生成日志模板,如果一个节点有多个子节点,则分别产生多个日志模板。
39、进一步,步骤s31所述对单条日志进行特征学习,具体包括:
40、步骤s311:收集微服务在正常运行期间产生的日志;
41、步骤s312:通过循环神经网络构建一个encoder模型,将步骤s311中得到的日志经过步骤s2处理为日志向量,将日志向量作为encoder模型的输入,从而生成一个固定大小的向量,作为正常日志的表示向量;
42、步骤s313:通过循环神经网络构建一个decoder模型,将步骤s312中得到的表示向量作为模型的输入,从而生成一个更长的向量,作为重构向量;
43、步骤s314:将步骤312构建的模型和步骤313构建的模型进行联合,得到一个encoder-decoder模型,将原始的日志向量和重构向量的相似度的相反值作为损失函数,对encoder-decoder模型进行训练,从而尽可能地提高原始的日志向量和重构向量的相似度,从而使得encoder模型能更好地产生日志的表示向量。
44、进一步,步骤s32所述对多条日志的上下文关系进行学习,具体包括:
45、步骤s321:初始化一个lstm(long short term memory)网络;
46、步骤s322:将微服务在正常运行期间产生的日志经过步骤s2后得到日志向量,按照时间顺序导入到lstm网络之中进行训练,从而捕捉序列数据中的长期依赖关系。
47、进一步,步骤s33所述利用步骤s31和步骤s32的学习结果进行异常检测,具体包括:
48、步骤s331:本文档来自技高网...
【技术保护点】
1.一种用于微服务系统的日志异常检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,步骤S11所述日志预处理,具体包括:
3.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,S12所述创建初始日志组,具体包括:
4.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,步骤S13所述创建与更新双向树,具体包括:
5.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,步骤S14所述生成日志模板,具体包括:
6.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,步骤S31所述对单条日志进行特征学习,具体包括:
7.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,步骤S32所述对多条日志的上下文关系进行学习,具体包括:
8.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,步骤S33所述利用步骤S31和步骤S32的学习结果进行异常检测,具体包括:
【技术特征摘要】
1.一种用于微服务系统的日志异常检测方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,步骤s11所述日志预处理,具体包括:
3.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,s12所述创建初始日志组,具体包括:
4.根据权利要求1所述的用于微服务系统的日志异常检测方法,其特征在于,步骤s13所述创建与更新双向树,具体包括:
5.根据权利要求1所述的用于微服务系统的日志异...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。