CN110288004B - 一种基于日志语义挖掘的系统故障诊断方法及装置 - Google Patents
一种基于日志语义挖掘的系统故障诊断方法及装置 Download PDFInfo
- Publication number
- CN110288004B CN110288004B CN201910463679.0A CN201910463679A CN110288004B CN 110288004 B CN110288004 B CN 110288004B CN 201910463679 A CN201910463679 A CN 201910463679A CN 110288004 B CN110288004 B CN 110288004B
- Authority
- CN
- China
- Prior art keywords
- log
- events
- clustering
- message
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于日志语义挖掘的系统故障诊断方法及装置。首先,基于神经网络语言模型对输入日志进行训练得到日志事件的语义特征向量。然后,使用改进的K均值聚类算法对日志事件的语义特征向量进行聚类,并使用一种对聚类后的日志向量对应的日志事件进行过滤的方法。最后,应用过滤方法并提取过滤后的日志数据簇中具有代表性的日志事件形成特征日志序列进行检查。本发明的方法可以进行基于日志的系统故障诊断时有效的挖掘日志的相关信息,不仅能够提高故障识别和诊断的效率,还可以提高诊断的有效性,并且降低系统总体成本。
Description
技术领域
本发明涉及无软件工程技术领域,具体涉及一种基于日志语义挖掘的系统故障诊断方法及装置。
背景技术
大规模的在线服务系统正变得愈加庞大和复杂,例如谷歌和亚马逊的系统,它们通常包含上百万个分布式并发组件并为数以亿计的用户提供高并发服务。然而,在这些大型系统中,服务组件每天都会产生大量的日志消息并保存在磁盘中,对于一些提供全球服务的超大型系统,每天产生的日志数据量可能达到10TB以上,例如Microsoft服务系统每天产生的日志数据超过1PB。因此,这些服务系统一旦产生故障,通过手动检查日志以进行系统故障诊断将是不现实的。
当系统在运行过程中产生故障时,工程师需要检查系统运行日志以深入了解故障的产生原因并进行故障排除。通常,工程师通过简单的关键字搜索以查找故障相关的日志信息。这类关键字一般包括“FAIL”,“KILL”等。然而,这种方法对于大规模的在线服务系统来说,面临以下挑战:
(1)现在的大型服务系统为了保证服务的可用性和性能,通常使用故障切换机制。通过在计算节点之间动态分配任务的方式,系统可以主动结束服务并在其他地方重新启动这个服务,这会在日志消息中产生许多大量“FAIL”和“KILL”关键字。因此,简单的关键词搜索会查询到大量无关消息。
(2)由于在线服务的复杂性,产生相同类型故障的服务程序的执行路径可能不同,而且开发人员对服务功能和环境的频繁更改也会增加日志消息的多样性。此外,由于某些日志消息在正常情况和故障情况下都会出现,而某些日志消息仅出现在故障情形中,并且更可能与故障相关,即并非所有的日志消息在故障诊断中都具有相同的重要性。
现有技术中,各种系统故障识别和诊断的方法被提出,例如,通过挖掘日志消息中的变量构造线性日志特征序列以进行故障诊断;通过挖掘频繁日志序列建立日志模型,使用决策树分类器学习和分类系统故障等。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
现有的系统故障诊断方法在对日志进行向量化时大多基于挖掘日志之间的文本特征,但相似的日志消息之间可能会在语义上有较大的差别,从而导致诊断的有效性较差。
发明内容
有鉴于此,本发明提供了一种基于日志语义挖掘的系统故障诊断方法及装置,用以解决或者至少部分解决现有技术的方法存在的诊断的有效性较差的技术问题。
本发明第一方面提供了一种基于日志语义挖掘的系统故障诊断方法,包括:
对原始日志消息中的消息变量进行替换并对日志事件进行标识;
基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量;
以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果,聚类结果包括聚类中心和聚类;
根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障。
在一种实施方式中,在以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果之后,所述方法还包括:
结合TF-IDF方法,生成各类型日志事件的主题,并根据对聚类结果的日志事件中包含的关键词是否出现在生成的主题内,对各个聚类中的日志事件进行过滤。
在一种实施方式中,对原始日志消息中的消息变量进行替换并对日志事件进行标识,具体包括:
对原始日志消息中的消息变量进行替换,原始日志消息还包括日志常量和日志消息行号,其中,消息变量为日志消息中随系统执行过程产生变化的信息,消息常量为日志消息中保持不变的信息;
提取日志消息中的消息常量和日志消息行号,形成日志事件的标识。
在一种实施方式中,基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量,具体包括:
将每个日志事件和窗口内的词初始化为随机K维向量作为输入,根据公式(1)计算隐藏层的输入h,C为上下文单词个数,x为输入向量,W为输入层到隐藏层的权重矩阵:
根据公式(3)计算输出层的输出,其中,yc,j表示输出层第c个上下文单词的神经元组合上第j个神经元节点的输出值:
在模型训练过程中,对模型的参数进行更新,参数包括隐藏层到输出层的权重矩阵W'和对应的矩阵向量,权重矩阵W'的更新方式为公式(4),矩阵向量的更新方式为公式(5),
w'ij:=w'ij-η·ej·h 公式(4)
其中,ej为输出层的预测误差,η为梯度下降算法的学习率,V'w是单词w的一种表示方式,V'w表示矩阵W’的一列,是由隐藏层到输出层的权值矩阵的向量;
当模型训练完毕后,将输入层的输入向量作为日志事件的语义特征表达向量。
在一种实施方式中,对各个聚类中的日志事件进行过滤,包括:
找到日志事件向量平均距离超过预设值的簇,并根据每一个日志事件向量标识查找原始日志消息,根据原始日志消息中包含的所有词构成这个簇的语料库;
采用TF-IDF方法对日志事件进行关键词提取,具体为:根据公式(6),计算日志消息中每个词的IDF值,即IDF(x),其中,N代表语料库中词总数,N(x)代表语料库中包含词x的文本总数,得到IDF(x)后,根据公式(7),计算TF-IDF(x):
TF-IDF(x)=TF(x)·IDF(x) 公式(7)
然后对日志消息中的每个词的TF-IDF值进行排序,选出每条日志消息中具有最大TF-IDF值的词作为当前日志消息的关键词;
截取前K个关键词作为当前簇的主题词集合,通过检查每条日志事件的关键词是否在当前簇的主题词集合内对日志事件进行过滤,其中,K的值大小与聚类个数相同。
在一种实施方式中,根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障,包括:
通过查找与聚类中心距离最近的向量,从而查找出这个簇中具有代表性的日志事件,即为特征日志事件;
将特征日志事件按照簇的顺序进行组合,构成特征日志事件序列;
如果特征日志事件序列中某个位置的日志事件产生故障,则将其对应位置的簇标记为故障。
基于同样的发明构思,本发明第二方面提供了一种基于日志语义挖掘的系统故障诊断装置,包括:
日志预处理模块,用于对原始日志消息中的消息变量进行替换并对日志事件进行标识;
日志事件向量化模块,用于基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量;
日志事件聚类模块,用于以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果,聚类结果包括聚类中心和聚类;
特征日志序列检查模块,用于根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障。
在一种实施方式中,所述装置还包括日志事件过滤模块,用于在以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果之后:
结合TF-IDF方法,生成各类型日志事件的主题,并根据对聚类结果的日志事件中包含的关键词是否出现在生成的主题内,对各个聚类中的日志事件进行过滤。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的一种基于日志语义挖掘的系统故障诊断方法,首先,对原始日志消息中的消息变量进行替换并对日志事件进行标识,然后,基于神经网络语言模型对输入日志进行训练得到日志事件的语义特征向量。接着,采用改进的K均值聚类算法对日志事件的语义特征向量进行聚类,最后,应用过滤方法并提取过滤后的日志数据簇中具有代表性的日志事件形成特征日志序列进行检查。
相对于现有技术中通过基于挖掘日志之间的文本特征,但相似的日志消息之间可能会在语义上有较大的差别,而导致无法有效地进行故障诊断而言,本发明提供一种基于日志语义挖掘的系统故障诊断方法,基于神经网络语言模型对输入日志进行训练得到日志事件的语义特征向量,即考虑了日志事件的语义特征,是一种有效的日志信息挖掘和特征构造方法,通过该方法不仅能够提高故障识别和诊断的效率,提高诊断的有效性,并且能够降低系统总体成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于日志语义挖掘的系统故障诊断方法的流程图;
图2为本发明实施例中的PV-DM语言模型示意图;
图3为一种实施方式中基于日志语义挖掘的系统故障诊断方法的概述图;
图4为本发明实施例中基于日志语义挖掘的系统故障诊断装置的结构框图;
图5为本发明实施例中一种计算机可读存储介质的结构框图;
图6为本发明实施例中计算机设备的结构图。
具体实施方式
本发明的目的在于提供一种基于日志语义挖掘的系统故障诊断方法及装置,从而达到提高诊断的有效性、诊断的效率的技术效果。
为了达到上述技术效果,本发明的主要构思是:
基于语言模型生成日志向量以挖掘日志语义信息,通过聚类算法获得日志向量在语义空间上的聚类集合后进行过滤,提取并检查特征日志序列以完成系统故障诊断。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了一种基于日志语义挖掘的系统故障诊断方法,请参见图1,该方法包括:
步骤S101:对原始日志消息中的消息变量进行替换并对日志事件进行标识;
步骤S102:基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量;
步骤S103:以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果,聚类结果包括聚类中心和聚类;
步骤S104:根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障。
下面对本发明提供的方法进行详细介绍,请参见图3,该方法包括:
步骤S1:对原始日志消息中的消息变量进行替换并对日志事件进行标识。
具体来说,原始日志消息可以通过现有的方法进行提取。每一条日志消息当作一个日志事件。
步骤S2:基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量。
具体来说,PV-DM(Distributed Memory Model of Paragraph Vectors)模型即为分布记忆句向量模型。其示意图如图2所示。三层神经网络包括输入层、隐藏层和输出层,PV-DM使用一个简单的三层神经网络,目标是求得在当前上下文窗口内的应出现词的概率。模型的训练输入是某一个特征词的上下文相关的词对应的词向量,输出为这特定的一个词的词向量。“应出现词”就是指要求的某个特定词,在本发明中表示日志消息中每个具体的词。通过训练,输入层的输入向量即为日志事件的语义特征表达向量。
步骤S3:以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果,聚类结果包括聚类中心和聚类。
下面分别对语义相似性和聚类算法进行介绍。
(1)语义相似性
基于前述步骤S2得到日志在语义空间上的向量化表达,使用余弦相似性计算日志向量之间的语义相似性。余弦相似性是用向量空间中两个向量夹角的余弦值来度量两个向量之间的相似程度,余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。
(2)K均值聚类算法
K均值聚类算法的一般步骤是:先随机选取K个数据点作为初始的聚类中心。然后计算每个数据点与聚类中心之间的距离,把每个数据点分配给距离它最近的聚类中心。聚类中心以及分配给它们的数据点就代表一个聚类。一旦全部数据点都被分配,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到聚类中心不再发生变化或者满足某个设定的终止条件。本发明在此基础做了两点改进:
1)在初始化K值,即指定聚类个数时,本发明不是直接人工选定一个K值,而是根据聚类代价函数,即公式8,计算不同K值下的数据点距离平方和,当S(K)的下降速度小于某一阈值的时,选定K值。其中,D(xi)表示第i个数据点到最近的聚类中心的距离,N为数据点的总数。
2)在聚类过程中,如果两个类别的聚类中心小于某一阈值时,本发明将会对这两个类进行合并,即最终生成的类数量不一定为K。
基于以上两点改进,本发明的聚类方法不仅能够优化聚类效果,而且大幅减少了整个聚类过程所消耗的时间。以下给出了本发明所使用的K均值聚类算法的伪代码。
为了进一步优化技术效果,本发明还包括步骤S4:结合TF-IDF方法,生成各类型日志事件的主题,并根据对聚类结果的日志事件中包含的关键词是否出现在生成的主题内,对各个聚类中的日志事件进行过滤。
具体来说,通过步骤S3的聚类之后会生成K个聚类簇,单独对于一个类簇来说,本步骤中找出这个类簇的主题词集合,然后针对类簇中的每条日志,根据这条日志的关键词是否属于当前类簇的主题词集合,来对聚类后的类簇做一次筛选,也就是过滤。进行过滤后,将某一个簇,分为两个类,其中,一个类中包含的日志事件的关键词出现在主题中,另一个类中包含的日志事件的关键词没有出现在主题中。
步骤S5:根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障。
具体来说,并对形成的特征日志序列进行检查,判断特征日志序列是否有故障发生,如果有,则进行标记,当将簇中所有的日志事件从原始数据集中提出时,则完成故障诊断。
在一种实施方式中,步骤S1具体包括:
步骤S1.1:对原始日志消息中的消息变量进行替换,原始日志消息还包括日志常量和日志消息行号,其中,消息变量为日志消息中随系统执行过程产生变化的信息,消息常量为日志消息中保持不变的信息;
步骤S1.2:提取日志消息中的消息常量和日志消息行号,形成日志事件的标识。
具体来说,随着系统的执行,日志消息中的时间戳、事件ID等内容会产生变化,将日志消息中这种随着系统执行过程产生变化的信息为消息变量,日志消息中保持不变的部分称为消息常量。在具体的实施过程中,本发明采用“[]”对日志消息中的变量进行替换。
由于日志的消息变量被替换掉,所以替换后的同一类型的日志消息之间会具有较强的文本相似性。本发明提取日志消息中的消息常量和日志消息行号,形成日志事件的标识。
在一种实施方式中,步骤S2具体包括:
步骤S2.1:将每个日志事件和窗口内的词初始化为随机K维向量作为输入,根据公式(1)计算隐藏层的输入h,C为上下文单词个数,x为输入向量,W为输入层到隐藏层的权重矩阵:
步骤S2.3:根据公式(3)计算输出层的输出,其中,yc,j表示输出层第c个上下文单词的神经元组合上第j个神经元节点的输出值:
步骤S2.4:在模型训练过程中,对模型的参数进行更新,参数包括隐藏层到输出层的权重矩阵W'和对应的矩阵向量,权重矩阵W'的更新方式为公式(4),矩阵向量的更新方式为公式(5),
w'ij:=w'ij-η·ej·h 公式(4)
其中,ej为输出层的预测误差,η为梯度下降算法的学习率。V'w是单词w的一种表示方式,V'w表示矩阵W’的一列,是由隐藏层到输出层的权值矩阵的向量;
步骤S2.5:当模型训练完毕后,将输入层的输入向量作为日志事件的语义特征表达向量。
具体来说,本发明的模型使用softmax分类器,训练目标是期望训练样本特定词对应的softmax概率最大。举例来说,设置词汇量的大小为V,隐藏层的大小为N。步骤S2.1是计算输入层到隐藏层,即隐藏层的输入h。W是输入层到隐藏层的V×N权重矩阵;W’为隐藏层到输出层的N×V权重矩阵。步骤S2.2是计算隐藏层到输出层,即输出层的输入,uj是计算词汇表中每个单词的分数,即输出层每个神经元节点的输入值。步骤S2.3是计算输出层的输出。
步骤S2.1-S2.3描述的是模型训练过程中第一次更新参数之前的具体步骤。步骤S2.4进行模型参数的更新,模型参数的更新方法如公式4和公式5所示。
在学习权重矩阵W与W'过程中,可以给权重赋一个随机值来初始化,然后按序训练样本,逐个计算输出值与真实值之间误差的梯度并在梯度方向纠正权重矩阵。也就是说,训练过程中,权重矩阵和输出向量都会更新,当模型训练完毕后,输入层的输入向量就是本发明需要的日志事件向量,即日志事件的语义特征表达向量。
在一种实施方式中,步骤S4具体包括:
步骤S4.1:找到日志事件向量平均距离超过预设值的簇,并根据每一个日志事件向量标识查找原始日志消息,根据原始日志消息中包含的所有词构成这个簇的语料库;
步骤S4.2:采用TF-IDF方法对日志事件进行关键词提取,具体为:根据公式(6),计算日志消息中每个词的IDF值,即IDF(x),其中,N代表语料库中词总数,N(x)代表语料库中包含词x的文本总数,得到IDF(x)后,根据公式(7),计算TF-IDF(x):
TF-IDF(x)=TF(x)·IDF(x) 公式(7)
然后对日志消息中的每个词的TF-IDF值进行排序,选出每条日志消息中具有最大TF-IDF值的词作为当前日志消息的关键词;
步骤S4.3:截取前K个关键词作为当前簇的主题词集合,通过检查每条日志事件的关键词是否在当前簇的主题词集合内对日志事件进行过滤,其中,K的值大小与聚类个数相同。
具体来说,步骤S4.1是构建语料库。预设值可以根据实际情况进行设置。当通过步骤S3的聚类,得到日志事件的聚类结果后,本实施方式可以找出日志事件向量平均距离较远的簇,然后根据每一个日志事件向量标识(即步骤S1中的标识)查找原始日志消息,得到所有簇中的原始日志消息之后,再找出这些日志消息中所有词构成这个簇的语料库。
步骤S4.2是进行关键词提取。由于一个健壮的系统出现故障的概率会很小,因此,产生故障的日志消息数量通常在整个日志文件中的占比较低。也就是说,出现次数较多的词可能并不重要,所以,本发明使用TF-IDF方法对日志事件进行关键词提取。当前日志消息的关键词可以记为w[i],其中,i表示当前日志事件在所属簇中的序号。
步骤S4.3是对日志事件进行过滤。例如,得到所有的关键词列表w,可以截取前K(K值大小与聚类个数相同)个关键词作为当前簇的主题词集合。通过检查每条日志事件的关键词是否在当前簇的主题词集合内对日志事件进行筛选,从而完成对故障日志事件的过滤。
在一种实施方式中,步骤S5具体包括:
步骤S5.1:通过查找与聚类中心距离最近的向量,从而查找出这个簇中具有代表性的日志事件,即为特征日志事件。
步骤S5.2:将特征日志事件按照簇的顺序进行组合,构成特征日志事件序列;
步骤S5.3:如果特征日志事件序列中某个位置的日志事件产生故障,则将其对应位置的簇标记为故障。
具体来说,步骤S5.1是提取特征日志事件。在对日志事件进行聚类后,可以得到所有的聚类中心,通过查找与聚类中心距离最近的向量(可能最终的聚类中心并不是原始数据点),就找到了这个簇中具有代表性的日志事件,本发明称为特征日志事件。
步骤S5.3是检查特征日志序列,如果序列中某个位置的日志事件产生故障,则将其对应位置的簇标记为故障。最后,将簇中所有的日志事件从原始数据集中提出,则完成故障诊断。
本发明基于语言模型生成日志向量以挖掘日志语义信息,通过改进的K均值聚类算法获得日志向量在语义空间上的聚类集合,然后结合TF-IDF方法对聚类集合进行过滤,最后提出特征日志序列进行检查。由于本发明可以基于神经网络语言模型对输入日志进行训练得到日志事件的语义特征向量,即考虑了日志事件的语义特征,是一种有效的日志信息挖掘和特征构造方法,通过该方法不仅能够提高故障识别和诊断的效率,提高诊断的有效性,并且能够降低系统总体成本。
基于同一发明构思,本申请还提供了与实施例一中一种基于日志语义挖掘的系统故障诊断方法对应的装置,详见实施例二。
实施例二
本实施例提供了一种基于日志语义挖掘的系统故障诊断装置,请参见图4,该装置包括:
日志预处理模块201,用于对原始日志消息中的消息变量进行替换并对日志事件进行标识;
日志事件向量化模块202,用于基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量;
日志事件聚类模块203,用于以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果,聚类结果包括聚类中心和聚类;
特征日志序列检查模块204,用于根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障。
在一种实施方式中,所述装置还包括日志事件过滤模块,用于在以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果之后:
结合TF-IDF方法,生成各类型日志事件的主题,并根据对聚类结果的日志事件中包含的关键词是否出现在生成的主题内,对各个聚类中的日志事件进行过滤。
在一种实施方式中,日志预处理模块201具体用于:
对原始日志消息中的消息变量进行替换,原始日志消息还包括日志常量和日志消息行号,其中,消息变量为日志消息中随系统执行过程产生变化的信息,消息常量为日志消息中保持不变的信息;
提取日志消息中的消息常量和日志消息行号,形成日志事件的标识。
在一种实施方式中,日志事件向量化模块202具体用于:
将每个日志事件和窗口内的词初始化为随机K维向量作为输入,根据公式(1)计算隐藏层的输入h,C为上下文单词个数,x为输入向量,W为输入层到隐藏层的权重矩阵:
根据公式(3)计算输出层的输出,其中,yc,j表示输出层第c个上下文单词的神经元组合上第j个神经元节点的输出值:
在模型训练过程中,对模型的参数进行更新,参数包括隐藏层到输出层的权重矩阵W'和对应的矩阵向量,权重矩阵W'的更新方式为公式(4),矩阵向量的更新方式为公式(5),
w'ij:=w'ij-η·ej·h 公式(4)
其中,ej为输出层的预测误差,η为梯度下降算法的学习率。V'w是单词w的一种表示方式,V'w表示矩阵W’的一列,是由隐藏层到输出层的权值矩阵的向量;
当模型训练完毕后,将输入层的输入向量作为日志事件的语义特征表达向量。
在一种实施方式中,日志事件过滤模块具体用于:
找到日志事件向量平均距离超过预设值的簇,并根据每一个日志事件向量标识查找原始日志消息,根据原始日志消息中包含的所有词构成这个簇的语料库;
采用TF-IDF方法对日志事件进行关键词提取,具体为:根据公式(6),计算日志消息中每个词的IDF值,即IDF(x),其中,N代表语料库中词总数,N(x)代表语料库中包含词x的文本总数,得到IDF(x)后,根据公式(7),计算TF-IDF(x):
TF-IDF(x)=TF(x)·IDF(x) 公式(7)
然后对日志消息中的每个词的TF-IDF值进行排序,选出每条日志消息中具有最大TF-IDF值的词作为当前日志消息的关键词;
截取前K个关键词作为当前簇的主题词集合,通过检查每条日志事件的关键词是否在当前簇的主题词集合内对日志事件进行过滤,其中,K的值大小与聚类个数相同。
在一种实施方式中,特征日志序列检查模块204具体用于:
通过查找与聚类中心距离最近的向量,从而查找出这个簇中具有代表性的日志事件,即为特征日志事件。
将特征日志事件按照簇的顺序进行组合,构成特征日志事件序列;
如果特征日志事件序列中某个位置的日志事件产生故障,则将其对应位置的簇标记为故障。
由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于日志语义挖掘的系统故障诊断方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
实施例三
请参见图5,基于同一发明构思,本申请还提供了一种计算机可读存储介质300,其上存储有计算机程序311,该程序被执行时实现如实施例一中所述的方法。
由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中基于日志语义挖掘的系统故障诊断方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
实施例四
基于同一发明构思,本申请还提供了一种计算机设备,请参见图6,包括存储401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,处理器402执行上述程序时实现实施例一中的方法。
由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中基于日志语义挖掘的系统故障诊断方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种基于日志语义挖掘的系统故障诊断方法,其特征在于,包括:
对原始日志消息中的消息变量进行替换并对日志事件进行标识;
基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量;
以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果,聚类结果包括聚类中心和聚类,其中改进的K均值聚类算法根据聚类代价函数,计算不同K值下的数据点距离平方和,当不同K值下的数据点距离平方和S(K)的下降速度小于某一阈值的时,选定K值,其中,D(xi)表示第i个数据点到最近的聚类中心的距离,N为数据点的总数;
且在聚类过程中,如果两个类别的聚类中心小于某一阈值时,对这两个类别进行合并;根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障;
其中,在以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果之后,所述方法还包括:
结合TF-IDF方法,生成各类型日志事件的主题,并根据对聚类结果的日志事件中包含的关键词是否出现在生成的主题内,对各个聚类中的日志事件进行过滤。
2.如权利要求1所述的方法,其特征在于,对原始日志消息中的消息变量进行替换并对日志事件进行标识,具体包括:
对原始日志消息中的消息变量进行替换,原始日志消息还包括日志常量和日志消息行号,其中,消息变量为日志消息中随系统执行过程产生变化的信息,消息常量为日志消息中保持不变的信息;
提取日志消息中的消息常量和日志消息行号,形成日志事件的标识。
3.如权利要求1所述的方法,其特征在于,基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量,具体包括:
将每个日志事件和窗口内的词初始化为随机K维向量作为输入,根据公式(1)计算隐藏层的输入h,C为上下文单词个数,x为输入向量,W为输入层到隐藏层的权重矩阵:
根据公式(3)计算输出层的输出,其中,yc,j表示输出层第c个上下文单词的神经元组合上第j个神经元节点的输出值:
在模型训练过程中,对模型的参数进行更新,参数包括隐藏层到输出层的权重矩阵W′和对应的矩阵向量,权重矩阵W′的更新方式为公式(4),矩阵向量的更新方式为公式(5),
w′ij:=w′ij-η·ej·h 公式(4)
其中,ej为输出层的预测误差,η为梯度下降算法的学习率,V′w是单词w的一种表示方式,V′w表示矩阵W’的一列,是由隐藏层到输出层的权值矩阵的向量;
当模型训练完毕后,将输入层的输入向量作为日志事件的语义特征表达向量。
4.如权利要求1所述的方法,其特征在于,对各个聚类中的日志事件进行过滤,包括:
找到日志事件向量平均距离超过预设值的簇,并根据每一个日志事件向量标识查找原始日志消息,根据原始日志消息中包含的所有词构成这个簇的语料库;
采用TF-IDF方法对日志事件进行关键词提取,具体为:根据公式(6)计算日志消息中每个词的IDF值,即IDF(x),其中,N代表语料库中词总数,N(x)代表语料库中包含词x的文本总数,得到IDF(x)后,根据公式(7),计算TF-IDF(x):
TF-IDF(x)=TF(x)·IDF(x) 公式(7)
然后对日志消息中的每个词的TF-IDF值进行排序,选出每条日志消息中具有最大TF-IDF值的词作为当前日志消息的关键词;
截取前K个关键词作为当前簇的主题词集合,通过检查每条日志事件的关键词是否在当前簇的主题词集合内对日志事件进行过滤,其中,K的值大小与聚类个数相同。
5.如权利要求1所述的方法,其特征在于,根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障,包括:
通过查找与聚类中心距离最近的向量,从而查找出这个簇中具有代表性的日志事件,即为特征日志事件;
将特征日志事件按照簇的顺序进行组合,构成特征日志事件序列;
如果特征日志事件序列中某个位置的日志事件产生故障,则将其对应位置的簇标记为故障。
6.一种基于日志语义挖掘的系统故障诊断装置,其特征在于,包括:
日志预处理模块,用于对原始日志消息中的消息变量进行替换并对日志事件进行标识;
日志事件向量化模块,用于基于PV-DM语言模型,通过三层神经网络训练,得到日志事件的语义特征表达向量;
日志事件聚类模块,用于以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果,聚类结果包括聚类中心和聚类,其中改进的K均值聚类算法根据聚类代价函数,计算不同K值下的数据点距离平方和,当不同K值下的数据点距离平方和S(K)的下降速度小于某一阈值的时,选定K值,其中,D(xi)表示第i个数据点到最近的聚类中心的距离,N为数据点的总数;
且在聚类过程中,如果两个类别的聚类中心小于某一阈值时,对这两个类别进行合并;
特征日志序列检查模块,用于根据日志事件与聚类中心的聚类,提取出各聚类中具有代表性的日志事件,形成特征日志序列,并对形成的特征日志序列进行检查,判断是否出现故障;
所述装置还包括日志事件过滤模块,用于在以日志事件的语义相似性作为度量标准,采用改进的K均值聚类算法对日志事件进行聚类,得到聚类结果之后:
结合TF-IDF方法,生成各类型日志事件的主题,并根据对聚类结果的日志事件中包含的关键词是否出现在生成的主题内,对各个聚类中的日志事件进行过滤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至5中任一项权利要求所述的方法。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910463679.0A CN110288004B (zh) | 2019-05-30 | 2019-05-30 | 一种基于日志语义挖掘的系统故障诊断方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910463679.0A CN110288004B (zh) | 2019-05-30 | 2019-05-30 | 一种基于日志语义挖掘的系统故障诊断方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110288004A CN110288004A (zh) | 2019-09-27 |
CN110288004B true CN110288004B (zh) | 2021-04-20 |
Family
ID=68002946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910463679.0A Active CN110288004B (zh) | 2019-05-30 | 2019-05-30 | 一种基于日志语义挖掘的系统故障诊断方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110288004B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958136A (zh) * | 2019-11-11 | 2020-04-03 | 国网山东省电力公司信息通信公司 | 一种基于深度学习的日志分析预警方法 |
CN110855502A (zh) * | 2019-11-22 | 2020-02-28 | 叶晓斌 | 一种基于时空分析日志的故障定因方法和系统 |
CN111177098B (zh) * | 2019-12-27 | 2023-09-22 | 中信百信银行股份有限公司 | 查看系统日志上下文的方法及系统 |
CN111079448A (zh) * | 2019-12-31 | 2020-04-28 | 出门问问信息科技有限公司 | 一种意图识别方法及装置 |
CN113448935B (zh) * | 2020-03-24 | 2024-04-26 | 伊姆西Ip控股有限责任公司 | 用于提供日志信息的方法、电子设备和计算机程序产品 |
CN113449098A (zh) * | 2020-03-25 | 2021-09-28 | 中移(上海)信息通信科技有限公司 | 日志的聚类方法、装置、设备及存储介质 |
CN111830931B (zh) * | 2020-07-15 | 2021-08-20 | 中国科学院微电子研究所 | 一种dcs系统的故障诊断方法 |
KR102496030B1 (ko) * | 2020-08-13 | 2023-02-07 | 주식회사 아이오코드 | 데이터 분류를 위한 강화 학습 장치 및 방법 |
CN112115032B (zh) * | 2020-09-29 | 2023-12-08 | 中国银行股份有限公司 | 一种日志生成方法和装置 |
CN112612887A (zh) * | 2020-12-25 | 2021-04-06 | 北京天融信网络安全技术有限公司 | 日志处理方法、装置、设备和存储介质 |
CN113282446A (zh) * | 2021-04-07 | 2021-08-20 | 广州汇通国信科技有限公司 | 基于多粒度过滤的日志数据收集方法及系统 |
CN113326244B (zh) * | 2021-05-28 | 2024-04-02 | 中国科学技术大学 | 一种基于日志事件图和关联关系挖掘的异常检测方法 |
CN113254255B (zh) * | 2021-07-15 | 2021-10-29 | 苏州浪潮智能科技有限公司 | 一种云平台日志的分析方法、系统、设备及介质 |
CN113626241B (zh) * | 2021-08-10 | 2023-07-14 | 中国平安财产保险股份有限公司 | 应用程序的异常处理方法、装置、设备及存储介质 |
CN113806178A (zh) * | 2021-09-22 | 2021-12-17 | 中国建设银行股份有限公司 | 一种集群节点故障检测方法及装置 |
CN113836300A (zh) * | 2021-09-24 | 2021-12-24 | 中国电信股份有限公司 | 日志分析方法、系统、设备及存储介质 |
CN114610515B (zh) * | 2022-03-10 | 2022-09-13 | 电子科技大学 | 基于日志全语义的多特征日志异常检测方法及系统 |
CN115129494B (zh) * | 2022-08-31 | 2022-11-25 | 浙江工业大学 | 一种基于Windows内核的事件日志采集方法及系统 |
CN116595425B (zh) * | 2023-07-13 | 2023-11-10 | 浙江大有实业有限公司杭州科技发展分公司 | 一种基于电网调度多源数据融合的缺陷识别方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488189B (zh) * | 2009-02-04 | 2012-01-18 | 天津大学 | 基于独立分量自动聚类处理的脑电信号处理方法 |
CN102722553B (zh) * | 2012-05-24 | 2014-04-02 | 浙江大学 | 基于用户日志分析的分布式倒排索引组织方法 |
CN104598565B (zh) * | 2015-01-09 | 2018-08-14 | 国家电网公司 | 一种基于随机梯度下降算法的k均值大规模数据聚类方法 |
CN105512277B (zh) * | 2015-12-04 | 2019-09-20 | 北京航空航天大学 | 一种面向图书市场书名的短文本聚类方法 |
CN105653444B (zh) * | 2015-12-23 | 2018-07-13 | 北京大学 | 基于互联网日志数据的软件缺陷故障识别方法和系统 |
CN107066445B (zh) * | 2017-04-11 | 2018-04-24 | 华东师范大学 | 一种属性情感词向量的深度学习方法 |
CN108304928A (zh) * | 2018-01-26 | 2018-07-20 | 西安理工大学 | 基于改进聚类的深度神经网络的压缩方法 |
CN109263271B (zh) * | 2018-08-15 | 2020-06-12 | 同济大学 | 一种基于大数据的印刷设备检测分析方法 |
CN109343990A (zh) * | 2018-09-25 | 2019-02-15 | 江苏润和软件股份有限公司 | 一种基于深度学习的云计算系统异常检测方法 |
CN109376242B (zh) * | 2018-10-18 | 2020-11-17 | 西安工程大学 | 基于循环神经网络变体和卷积神经网络的文本分类方法 |
CN109635140B (zh) * | 2018-12-14 | 2020-07-10 | 常熟理工学院 | 一种基于深度学习和密度峰值聚类的图像检索方法 |
-
2019
- 2019-05-30 CN CN201910463679.0A patent/CN110288004B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110288004A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110288004B (zh) | 一种基于日志语义挖掘的系统故障诊断方法及装置 | |
US20230229978A1 (en) | Debugging correctness issues in training machine learning models | |
CN108804641B (zh) | 一种文本相似度的计算方法、装置、设备和存储介质 | |
CN108737406B (zh) | 一种异常流量数据的检测方法及系统 | |
CN112560496A (zh) | 语义分析模型的训练方法、装置、电子设备及存储介质 | |
CN111444320A (zh) | 文本检索方法、装置、计算机设备和存储介质 | |
CN105518656A (zh) | 用于多传感器数据融合的认知神经语言学行为辨识系统 | |
CN108733644B (zh) | 一种文本情感分析方法、计算机可读存储介质及终端设备 | |
CN111160021A (zh) | 日志模板提取方法及装置 | |
CN110188196B (zh) | 一种基于随机森林的文本增量降维方法 | |
EP2862101B1 (en) | Method and a consistency checker for finding data inconsistencies in a data repository | |
CN115017268B (zh) | 一种基于树结构的启发式日志抽取方法及系统 | |
CN115688024A (zh) | 基于用户内容特征和行为特征的网络异常用户预测方法 | |
CN116956896A (zh) | 基于人工智能的文本分析方法、系统、电子设备及介质 | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
CN113723542A (zh) | 一种日志聚类处理方法及系统 | |
CN112579781A (zh) | 文本归类方法、装置、电子设备及介质 | |
CN110795562A (zh) | 图谱优化方法、装置、终端及存储介质 | |
CN116089616A (zh) | 主题文本获取方法、装置、设备及存储介质 | |
CN115422000A (zh) | 异常日志处理方法及装置 | |
KR102405799B1 (ko) | 사이버 공간에서 실시간 공격 탐지를 위한 시간에 따른 지속적인 적응형 학습을 제공하는 방법 및 시스템 | |
CN111259117B (zh) | 短文本批量匹配方法及装置 | |
CN109308565B (zh) | 人群绩效等级识别方法、装置、存储介质及计算机设备 | |
CN113821418A (zh) | 故障跟因分析方法及装置、存储介质和电子设备 | |
Escovedo et al. | Learning under concept drift using a neuro-evolutionary ensemble |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |