一种日志模式提取及匹配方法与流程

文档序号:20082097发布日期:2020-03-13 05:46阅读:783来源:国知局
一种日志模式提取及匹配方法与流程

本发明涉及数据挖掘领域,尤其是涉及一种日志模式提取及匹配方法。



背景技术:

现如今,信息系统的规模及其复杂度的增长趋势极其明显,系统运维所面临的挑战日益严峻,所需的人力成本与物力成本不断增加,严重时甚至会超过系统本身的构建成本。而对于系统的运行维护主要通过持续监控和分析系统日志,性能计数器和应用程序资源使用模式,评估系统运行状况并确定性能变化。主要依靠的是系统产生的各类运行状态记录数据,常见的有性能计数器定期产生的性能指标记录数据,如kpi数据,实时产生的系统日志,如事件日志数据等。如何更好的利用系统产生的运行状态记录数据来实时地把握系统的运行情况,可以有效地节约运维成本,提高系统本身的可靠性和效率,并且实现智能化的运维过程。对于日志数据的有效分析可以非常有效地帮助系统运维人员来了解系统的运行状态,针对日志数据的分析可以实现对于系统的异常检测、预测以及原因分析,而这些工作都离不开对于日志数据本身的有效处理,常规的处理就包括有:日志解析、日志模式提取及匹配、日志特征提取、日志向量化等。其中对于日志数据的模式提取及匹配是非常必要的,考虑以下几个因素:1)日志数据量庞大,若不进行模式的提取和匹配,会严重影响运维的实时性和高效性;2)日志类型不一,若不进行模式的提取和匹配,会严重影响运维的准确性和可扩展性。

现有的日志模式提取和匹配主要包括两大类,分别是基于正则表达式的模式提取和匹配,基于距离的聚类算法实现模式提取和匹配。传统的基于正则匹配获取模式的方法有着很大的局限性,因为正则表达式的书写需要非常完善的领域知识和实际工程经验,同时正则表达式的书写十分依赖当前分析的系统的日志形式,由于不同的系统,日志的表现形式有着较大的差别,因此正则表达式的方式可扩展性较差,并且正则表达式书写很容易出错导致模式提取结果不可靠,从而影响后续的分析过程。传统的基于简单距离计算获取模式的方法,由于日志数据本身的形式多样化,简单的依靠距离计算会导致聚类结果不可靠,模式归类效果较差。

现目前实际运维当中借助传统方法进行日志模式提取和匹配的较多,涉及深度学习方法的则显得较为稀缺。但是由于深度学习方法的高性能,一直受到运维人员和领域研究人员的持续关注,如何有效把深度学习方法应用到日志数据的模式提取和匹配当中有着重要的意义,所以一直是研究和应用的热点和难点。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在日志模式提取及匹配效率低、结果不可靠的缺陷而提供一种基于深度孪生神经网络的日志模式提取及匹配方法。

本发明的目的可以通过以下技术方案来实现:

一种日志模式提取方法,该方法包括以下步骤:

步骤s1:清洗历史日志数据,得到清洗后历史日志数据;

步骤s2:对清洗后历史日志数据进行预处理,得到预处理后历史日志数据;

步骤s3:基于预处理后历史日志数据,得到历史词向量;

步骤s4:将历史词向量输入孪生lstm网络,提取日志模式。

所述的预处理包括变量替换和分词处理。

所述的步骤s3将预处理后历史日志数据输入word2vec模型,得到历史词向量。

所述的步骤s4包括:

步骤s41:将历史词向量按出现在日志语句中的顺序排序,得到日志语句向量;

步骤s42:将两条日志语句的日志语句向量分别输入孪生lstm网络的左子网络和右子网络,得到两条日志语句的表征结果m1和m2;

步骤s43:判断两条日志语句是否合并簇,若是,提取该合并簇的日志模式,若否,分别提取两条日志语句所在簇的日志模式;

步骤s44:重复步骤s42至步骤s43,直到穷尽所有的日志语句。

所述的步骤s43中通过相似度函数判断两条日志语句是否合并簇,所述相似度函数为曼哈顿距离函数。

所述的步骤s3中采用mapreduce框架得到历史词向量,步骤s4中采用mapreduce框架提取日志模式。

所述的mapreduce框架基于hadoop架构。

一种日志模式匹配方法,基于所述的日志模式和孪生lstm网络,进行待匹配日志数据的日志模式匹配。

所述的日志模式匹配方法包括:

基于待匹配日志数据,得到待匹配日志语句的日志语句向量;

将待匹配日志语句的日志语句向量和日志模式对应的日志语句向量分别输入孪生lstm网络的左子网络和右子网络,进行待匹配日志数据的日志模式匹配。

与现有技术相比,本发明具有以下优点:

(1)运用孪生lstm网络,实现了日志信息的聚类,减少了日志分析的数据量,提高日志模式提取效率,进而提高日志模式匹配效率;基于深度学习,有效提高日志模式提取结果的可靠性和日志模式匹配结果的可靠性。

(2)可以借助孪生lstm网络对出现的待匹配日志数据进行统一的向量化处理,中间的聚类结果及日志模式提取结果可以直接用于帮助运维人员进行后续的日志分析,如异常检测等。

(3)基于hadoop架构和mapreduce的框架,将孪生lstm网络进行分布式部署,从而加快日志模式提取的过程。

附图说明

图1为本发明的总流程图;

图2为本发明的孪生lstm网络结构示意图;

图3为本发明的日志模式提取流程图;

图4为本发明的日志模式匹配流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例

本实施例提供一种日志模式提取及匹配方法,如图1所示,包括以下步骤:

步骤s1:清洗历史日志数据,得到清洗后历史日志数据;

步骤s2:对清洗后历史日志数据进行预处理,得到预处理后历史日志数据;

步骤s3:基于预处理后历史日志数据,得到历史词向量;

步骤s4:将历史词向量输入孪生lstm网络,提取日志模式;

日志模式的匹配是基于日志模式提取方法得到的日志模式和孪生lstm网络,进行待匹配日志数据的日志模式匹配。

具体而言:

1)提取日志模式

如图3所示,对于系统内出现的所有组件的历史日志数据,先将其逐条扫描,进行简单的数据清洗工作,然后进行变量替换和分词处理,将处理之后的预处理后历史日志数据通过预训练的word2vec模型转化成维度相等的历史词向量,此处表示为vi,下标i用于区分不同的日志词向量,对应的一条包含词数为n的日志语句就变成多个向量的组合,表示为(v1,v3,v4,...,vn),称为该日志语句的日志语句向量。将一条日志语句的日志语句向量输入到孪生lstm网络的左子网络中,表示为input1,孪生lstm网络的右子网络输入另一条日志语句的日志语句向量,表示为input2,然后取孪生lstm网络最后的输出向量m1和m2作为每条日志语句的表征结果,进一步引入相似度函数来计算m1和m2的差异,即similarity(m1,m2),从而判断是否需要将输入的两条日志语句合并到同一簇当中,若需要合并,提取该合并簇的日志模式,若无法合并,分别提取两条日志语句所在簇的日志模式;重复日志语句向量输入孪生lstm网络和提取日志模式的过程,直到穷尽所有的日志语句。此处的相似度函数选择可以有多种,常见的有余弦相似度函数、曼哈顿距离函数、几何距离函数等。

孪生lstm网络示意图如图2所示,孪生lstm网络的左子网络和右子网络是共享参数的,可以根据日志语句向量的长度进行网络的动态调整,lstm_1跟lstm_2分别表示左子网络和右子网络的结构,左子网络的输入是一条日志语句的日志语句向量,右路的输入是另一条日志语句的日志语句向量,将两条日志语句向量分别输入到参数共享的孪生lstm网络中,得到最后一层的左子网络输出表示为m1,右路输出表示为m2,通过计算两个网络输出之间的相似度来判断两条输入日志语句是否可合并为同一簇。

word2vec模型通过部分预处理后历史日志数据进行预训练得到;孪生lstm网络通过部分日志语句向量进行预训练得到。

2)借助孪生lstm网络,针对新出现的待匹配日志数据进行模式匹配

如图4所示,当出现待匹配日志数据时,首先根据word2vec模型获取到日志语句对应的日志语句向量,将一条日志语句向量输入到孪生lstm网络的其中一路,孪生lstm网络的另一路则依次输入已有的日志模式对应的日志语句向量,以实现该新日志语句与每一个现有日志模式都进行比较的目的,然后通过排序新日志语句匹配已有日志模式的相似度函数值来唯一确定新日志语句所对应的日志模式,对日志数据中的所有日志语句进行日志模式匹配,从而完成待匹配日志数据的日志模式匹配工作。

3)基于hadoop架构和mapreduce的编程框架,将日志模式提取的过程进行分布式部署,以提高计算效率

预训练word2vec模型过程中,首先利用部分预处理后历史日志数据形成所需要的训练集和测试集数据,统一作为训练语料来训练得到日志word2vec模型,将该模型放置于多个计算节点上,同时将数据集进行拆分放置于不同的计算节点,以提高模型训练速度。

由于孪生lstm网络在提取日志模式过程中每次只需要考虑一对日志语句之间的相似程度,但是不同的孪生lstm网络输出结果之间则需要进行相似度排序,非常适合mapreduce的中涉及到的两大过程,map过程和reduce过程。因此该计算过程可以修改为mapreduce的形式进行计算,从而实现并行化的处理,这可以从根本上提高日志分析过程当中的日志模式提取和匹配效率。

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