一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于日志全语义的多特征日志异常检测方法及系统

2022-06-11 12:57:38 来源:中国专利 TAG:


1.一种基于日志全语义的多特征日志异常检测方法及系统,用于日志异常检测,属于计算机技术领域,特别涉及计算机操作系统或软件系统中日志异常检测技术。


背景技术:

2.一般来说,大部分的程序在编写的时候都会在一些位置使用“print”功能打印具备一定格式的非结构化提示或告警信息,用于开发者或者用户了解运行状态和定位错误,我们称其为日志信息,尤其是一些大规模的系统,程序规模越大,日志消息数量以及种类则越多甚至越复杂。
3.由于日志消息的爆炸增长同时日志的审计又对审查人员的要求很高,因而使得人工手动审查日志消息几乎不可行。最早的通过关键词正则匹配的自动化异常检测方法很多时候只能找到那些明显的单一异常,这种方法非常局限,只有在日志中有明确的标识才有作用,也无法发现那些靠关键词无法定位的异常情况。之后的一些基于聚类分析方案在无监督的日志检测方向上是一个进步,但无法应对诸如日志模板更新、异常种类多样等很多情况。随着人工智能的兴起,逐渐出现了很多基于各类神经网络的自动和半自动的日志异常检测的优化方法,有的在日志解析上进行优化,通过使用自然语言处理的方法提取日志的语意信息进行检测;有些在模型上进行优化,这些都在传统检测模型进行改进以求更好的检测效果;还有些在特征上进行更多的处理,比如通过挖掘其他的特征来检测常规特征未能覆盖的异常。
4.到目前为止,数据挖掘和机器学习方法,如决策树(dt),支持向量机(svm)和主成分分析(pca)已被用于提取更多相关特征。这些方法在提高精度的同时,也降低了算法的复杂度。然而,利用这些方法分析提取的特征中隐藏的关系仍然很棘手。更复杂的方法,如深度学习方法克服了这一限制。
5.在过去的几年里,使用深度学习方法和自然语言处理技术的日志异常检测通过利用日志中的语义关系获得了更好的准确性。lstm和双向lstm被广泛地运用于日志异常检测,在对数异常检测中取得了更高的准确率。基于卷积神经网络(cnn)的深度学习模型,实现了99%的精度。研究人员已经使用自编码器进行特征提取,并进一步使用dl模型进行异常识别,使用注意机制和深度学习模型,对特定的数据序列给予更多考虑。
6.目前比较流行的对于日志异常检测的流程主要包括日志解析、特征提取和异常检测。
7.由于日志大部分是一种非结构化的数据文本,文本中包含了大量的与日志的语义信息无关的干扰词,因此研究人员一般采用提取日志模板的方式,去除日志中的干扰词,将软件系统打印日志的日志模板和参数区分开来,通过分析日志模板提取出日志的语义信息,如利用启发式搜索树:drain和spell利用树结构解析日志到多个模板。
8.为了增加日志异常检测的准确性,研究人员结合了word2vec的方法,如loganomaly使用了temp late2vec进一步提取日志模板中的语义信息。使用了概率模型,如
plelog中,对每一个日志项先赋予一个异常和正常的概率值,将无监督学习改进为半监督或者时监督学习,提高了日志检测的准确率。
9.现有大部分方法是基于日志模板进行日志异常检测,采用现有技术存在如下技术问题:
10.1.由于软件系统不断更新,日志系统中会不断出现新的词汇(00v词),日志的模板也会随着时间不断地改变;当日志模板提取错误时,日志异常检测的准确率也会受到影响;
11.2.现有的方法受限于日志模板提取方法效率的影响,对于不同的日志模板,现有方法的训练表现有很大的差异,而现有的提取日志模板无法应用于所有类型的系统日志,一般只能针对于一两种特定的日志类型;
12.3.日志模板中的单一日志语义特征或者少量地特征无法涵盖日志项地所有信息,从而造成日志异常检测准率低的问题。


技术实现要素:

13.针对上述研究的问题,本发明的目的在于提供一种基于日志全语义的多特征日志异常检测方法及系统,解决现有技术的日志异常检测准确率低的问题。
14.为了达到上述目的,本发明采用如下技术方案:
15.一种基于日志全语义的多特征日志异常检测方法,包括如下步骤:
16.步骤1:对日志数据集进行初步处理,得到日志数据集中各日志序列全部语义的日志项单词组,并将其作为日志序列的语义特征,其中,日志数据集包括多个日志序列,日志序列是一段时间间隔或是不同进程产生的日志,各日志序列包括多个日志项;
17.步骤2:分别提取各日志序列的类型特征、时间特征和数量特征,并同语义特征编码成各日志序列的日志特征向量集,其中,日志特征向量集包括类型特征向量、时间特征向量、数量特征向量和语义特征向量;
18.步骤3:基于所有日志特征向量集训练基于注意力机制的bigru神经网络模型,得到训练好的bigru神经网络模型。
19.步骤4:将待检测的日志数据集输入训练好的bigru神经网络模型进行预测,并根据预测结果区分出各日志序列是正常或异常的日志序列。
20.进一步,所述步骤1的具体步骤为:
21.步骤1.1:使用自然语言的分词对各日志序列中的各日志项进行标记,每一日志项得到一组标记后的单词集,其中,单词被标记为名词或动词;
22.步骤1.2:使用分隔符分割标记后得到的单词集,其中,分隔符包括空格、冒号和逗号;
23.步骤1.3:将分割后得到的单词集中的大写字母转换为小写字母,并从单词集中删除所有非字符标记,得到各日志序列全部语义的日志项单词组,即得到各日志序列的语义特征,其中,非字符包括操作符、标点符号和数字。
24.进一步,所述步骤2的具体步骤为:
25.步骤2.1:若各日志项中包含所属类型关键词,即获取各日志项的类型关键词作为类型特征,若不包含所属类型关键词,则根据日志项所属的进程组类型为日志项分配所属的类型关键词,并将类型关键词作为类型特征,其中,类型关键词包括info、warn和error;
26.步骤2.2:提取各日志序列中日志项的时间戳,并计算各日志项距离上一条日志项的输出时间间隔,将其作为当前日志序列的时间特征,其中,第一个日志项是直接获取时间;
27.步骤2.3:统计每一个不同日志项在日志序列中的数量作为各日志序列的数量特征;
28.步骤2.4:使用one-hot编码的方式对类型特征、时间特征、数量特征进行向量编码,得到类型特征向量、时间特征向量和数量特征向量,同时,使用bert和tf-idf对语义特征进行向量化处理,其中,bert将语义特征中的单词转化为词向量,通过tf-idf给不同的词向量赋予不同的权重,得到语义信息的向量化表示,即得到语义特征向量。
29.进一步,所述步骤3中注意力机制的bigru神经网络模型包括依次设置的文本向量化输入层、隐含层和输出层;
30.隐含层包括依次设置的bigru层、attention层和全连接层。
31.进一步,所述步骤4的具体步骤为:
32.将待检测的日志数据集输入训练好的bigru神经网络模型进行预测,得出当前日志序列中下一条日志项出现的概率,根据概率和所训练日志数据集的实际情况,正常的日志序列的下一个日志项通常会是确定的有限几个选择,通过确定这个选择的范围确定概率排名阈值k,若日志项出现的概率在前k项内时,判断其为正常的日志项,且日志序列内所有的日志项都为正常的日志项时,该日志序列为正常的日志序列;若日志项在k项之后的,判断为异常的日志项,则该日志序列为异常的日志序列。
33.一种基于日志全语义的多特征日志异常检测系统,包括:
34.语义处理模块:对日志数据集进行初步处理,得到日志数据集中各日志序列全部语义的日志项单词组,并将其作为日志序列的语义特征,其中,日志数据集包括多个日志序列,日志序列是一段时间间隔或是不同进程产生的日志,各日志序列包括多个日志项;
35.特征及向量处理模块:分别提取各日志序列的类型特征、时间特征和数量特征,并同语义特征编码成各日志序列的日志特征向量集,其中,日志特征向量集包括类型特征向量、时间特征向量、数量特征向量和语义特征向量;
36.训练模块:基于所有日志特征向量集训练基于注意力机制的bigru神经网络模型,得到训练好的bigru神经网络模型。
37.预测模块:将待检测的日志数据集输入训练好的bigru神经网络模型进行预测,并根据预测结果区分出各日志序列是正常或异常的日志序列。
38.进一步,所述语义处理模块的具体实现为:
39.步骤1.1:使用自然语言的分词对各日志序列中的各日志项进行标记,每一日志项得到一组标记后的单词集,其中,单词被标记为名词或动词;
40.步骤1.2:使用分隔符分割标记后得到的单词集,其中,分隔符包括空格、冒号和逗号;
41.步骤1.3:将分割后得到的单词集中的大写字母转换为小写字母,并从单词集中删除所有非字符标记,得到各日志序列全部语义的日志项单词组,即得到各日志序列的语义特征,其中,非字符包括操作符、标点符号和数字。
42.进一步,所述特征及向量处理模块的具体实现为:
43.步骤2.1:若各日志项中包含所属类型关键词,即获取各日志项的类型关键词作为类型特征,若不包含所属类型关键词,则根据日志项所属的进程组类型为日志项分配所属的类型关键词,并将类型关键词作为类型特征,其中,类型关键词包括info、warn和error;
44.步骤2.2:提取各日志序列中日志项的时间戳,并计算各日志项距离上一条日志项的输出时间间隔,将其作为当前日志序列的时间特征,其中,第一个日志项是直接获取时间;
45.步骤2.3:统计每一个不同日志项在日志序列中的数量作为各日志序列的数量特征;
46.步骤2.4:使用one-hot编码的方式对类型特征、时间特征、数量特征进行向量编码,得到类型特征向量、时间特征向量和数量特征向量,同时,使用bert和tf-idf对语义特征进行向量化处理,其中,bert将语义特征中的单词转化为词向量,通过tf-idf给不同的词向量赋予不同的权重,得到语义信息的向量化表示,即得到语义特征向量。
47.进一步,所述训练模块中注意力机制的bigru神经网络模型包括依次设置的文本向量化输入层、隐含层和输出层;
48.隐含层包括依次设置的bigru层、attention层和全连接层。
49.进一步,所述预测模块的具体实现为:
50.将待检测的日志数据集输入训练好的bigru神经网络模型进行预测,得出当前日志序列中下一条日志项出现的概率,根据概率和所训练日志数据集的实际情况,正常的日志序列的下一个日志项通常会是确定的有限几个选择,通过确定这个选择的范围确定概率排名阈值k,若日志项出现的概率在前k项内时,判断其为正常的日志项,且日志序列内所有的日志项都为正常的日志项时,该日志序列为正常的日志序列;若日志项在k项之后的,判断为异常的日志项,则该日志序列为异常的日志序列。
51.本发明同现有技术相比,其有益效果表现在:
52.一、在日志解析中提取日志的全部原始语义,而不是使用日志解析器:
53.针对当前的日志检测办法检测结果受到日志模板提取准确性影响,无法有效地处理新型的日志模板和日志中出现的00v词的困难问题,本发明中得到的完整的语义文本不会丢失语义信息,而是使用自然语言处理自动编码完整的日志序列并提取日志序列的语义特征,在提取语义特征对日志语意向量化过程中我们结合bert和tf-idf对日志序列进行向量化处理,bert讲日志序列中的单词转化为词向量,通过tf-idf使给不同的词向量赋予不同的权重,使得到的日志向量更能描述日志的语义信息。
54.二、多特征结合的模型学习:
55.不同类型的日志异常一般体现在不同的特征里面,比如单一的日志序列特征只能检测到影响到日志输出顺序的异常,不能发现类似组件启动和关闭、文件打开和关闭之类的逻辑异常,也不能发现日志的延时输出之类的时间异常,当前的日志异常检测方法通常只使用一个或者两个特征,本发明结合语义特征、时间特征、数量特征以及类型间隔特征对数据集进行模型学习,通过预测式的多分类方案来检测日志的异常情况,以解决单一类型的特征无法覆盖其他诸如组件启动和停止之类日志的逻辑异常和系统日志输出的延时异常等。
附图说明
56.图1是本发明的总体框架图,其中,t1表示类型特征向量,t2表示时间特征向量,s表示语义特征向量,n表示数量特征向量;v1

vn分别表示输入bigru模型的日志特征向量集,h1

hn分别表示bigru的正向gru层和反向gru层;
57.图2是基于注意力机制的bigru模型图,其中,dense表示全连接层,word_attention_layer或attentlon-based mask表示attention层,即注意力机制,bigru表示bigru层,non-linear layer或softmax表示输出层;
具体实施方式
58.下面将结合附图及具体实施方式对本发明作进一步的描述。
59.单一日志语义特征或者少量地特征无法涵盖日志项地所有信息,需要一种新的多特征方法,完整的提取日志的特征信息。
60.具体如下:
61.1.日志解析
62.预处理日志数据是构建模型的第一步。在这一步中,我们首先将日志项标记为一组单词标记。我们在日志系统中使用常见的分隔符(即空格、冒号、逗号等)来分割日志消息。然后,将每个大写字母转换为小写字母,得到所有单词组成的单词集,并从单词集中删除所有非字符标记。这些非字符包含操作符、标点符号和数字。这种类型的非字符被删除,因为它通常表示日志消息中的变量,且不提供信息。如原始日志序列中的一个日志项的单词集为:08110920593113info dfs.datablockscanner:v er ificationsucceeded for blk-4980916519894289629,首先根据常见的分隔符分割单词集。然后将非字符标记从分割后的单词集中排除。最后,得到单词集为{info,dfs,datablockscanner,verification,succeeded}。这组单词集包含了比日志模板更为丰富的日志语义信息,因此可以用作日志的语义文本去提取日志的语义向量。
63.2.特征提取
64.对于不同的系统日志,其结构大都大同小异。为了尽可能多地提取日志序列所包含地信息,我们将日志序列的日志项的特征分为四类:类型特征、时间特征、语义特征和数量特征,对应于图1的多特征向量集:[t1,t2,s,n]。
[0065]
我们将日志序列解析中得到的日志项单词组向量化得到我们的日志序列的语义特征向量,具体来说,通过使用bert对语义特征中的单词文本进行训练,得到日志项中的单词的向量表示。再通过tf-idf对单词的向量赋予权重,将单词向量进行加权求和得到日志语义信息的固定维表示。(tf-idf)是一种被广泛使用的特征提取方法。它是反映单词对语料库中的文档有多重要的度量标准。术语频率-逆文档频率(tf-idf)是一种统计方法,用于评估一个词对一个文件集或语料库中的一个文件的重要性。一个单词的重要性随着它在一个文件中出现的次数成比例地增加,但它也随着它在语料库中出现的频率成比例地减少。
[0066]
在日志序列中,一般输出了当前日志项所属的类型,包括info、warn、error等,即获取各日志项的类型关键词作为类型特征,若不包含所属类型关键词,则根据日志项所属的进程组类型为日志项分配所属的类型关键词,并将类型关键词作为类型特征,如所属的日志项,例如在分布式系统中属于哪个block或者是由哪一个进程输出此日志项来为这个
日志项分配所属的类型。
[0067]
对于日志序列的时间特征,我们通常都能够在日志项中提取出输出当前日志项的时间戳,计算当前日志距离上一条日志的输出时间间隔,将其作为当前日志项的时间特征,其中,第一个日志项是直接获取时间。
[0068]
对于数量特征,其代表的是相同的日志项在一个日志序列中的数量大小,统计每一个不同日志项在日志序列中的数量作为日志序列的数量特征。
[0069]
因此,对于的训练日志数据集,通常可以提出这四类特征:类别特征
[0070]
type_vec=[msgld,componentld],时间特征time_vec=[timelnterval],数量特征num_vec和语义特征semant ic_vec=[msgwords],其中,msgld指的日志项的类型i nfo,componentld是指该日志项的相关组件,timelnterval指的是距上一条日志的输出时间间隔,msgwords则指的是具备日志项的语义的单词列表。对于语义文本,我们把单词和子单词集传递给bert模型,并通过tf-idf对每个单词的词向量赋予权重,讲其编码成具有固定维数的向量表示。对于类型特征、时间特征和数量特征,由于其没有特别上下文语义关系,所以我们使用one-hot编码的方式进行处理。
[0071]
3.模型训练
[0072]
bigru-attention模型bigru-attention模型共分为三部分:文本向量化输入层、隐含层和输出层。其中,隐含层由bigru层、attention层和dense层(全连接层)三层构成。bigru-attention模型结构如图1所示。输入层即对向量化的日志序列进行预处理;隐含层的计算主要分为两个步骤:
[0073]
a)计算bigru层输出的向量。文本向量(即指文本向量化输入层输入的)为bigru层的输入向量。bigru层的目的主要是对输入的文本向量进行文本深层次特征的提取。根据bigru神经网络模型图,可以把bigru层看做由向前gru和反向gru两部分组成。
[0074]
b)计算每个词向量应分配的概率权重。这个步骤主要是为不同的词向量分配相应的概率权重,进一步提取文本特征,突出文本的关键信息。具体为:
[0075]
bigru-attention模型中引入了attention层,attention层的输入为上一层中经过bigru层激活处理的各层的隐层状态,attention层由attention机制分配的不同概率权重与bigru层各个隐层状态的乘积的累加和。
[0076]
输出层的输入为上一层attention层的输出。输出层使用softmax函数对输入做归一化操作得到的结果。
[0077]
基于所有日志特征向量集训练基于注意力机制的bigru神经网络模型,得到训练好的bigru神经网络模型;
[0078]
对于每一条日志序列提取其上面的四类特征向量作为其特征集featurei=[type_veci、time_veci、semantic_veci、num_veci],分别对应日志项的类别特征向量t1、时间特征向量t2、语义特征向量s和数量特征向量n,接着以滑动窗口的形式进行训练。为了说明这个过程,以滑动窗口大小window=5为例,得到某个滑动窗口的输入序列为[feature1,feature2,feature3,feature4,feature5],其中,featurei指的是第i条日志序列的特征向量集。最后,在正常日志数据集中进行模型训练,并在有正常和异常的日志数据集中测试效果。
[0079]
4.异常检测
[0080]
将待检测的日志数据集输入训练好的bigru神经网络模型进行预测,得出当前日志序列中下一条日志项出现的概率,根据概率和所训练日志数据集的实际情况,正常的日志序列的下一个日志项通常会是确定的有限几个选择,通过确定这个选择的范围确定概率排名阈值k,若日志项出现的概率在前k项内时,判断其为正常的日志项,且日志序列内所有的日志项都为正常的日志项时,该日志序列为正常的日志序列;若日志项在k项之后的,判断为异常的日志项,则该日志序列为异常的日志序列。
[0081]
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献