CN113407721A - 检测日志序列异常的方法、装置及计算机存储介质 - Google Patents
检测日志序列异常的方法、装置及计算机存储介质 Download PDFInfo
- Publication number
- CN113407721A CN113407721A CN202110728816.6A CN202110728816A CN113407721A CN 113407721 A CN113407721 A CN 113407721A CN 202110728816 A CN202110728816 A CN 202110728816A CN 113407721 A CN113407721 A CN 113407721A
- Authority
- CN
- China
- Prior art keywords
- log
- word
- sequence
- log sequence
- layer
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 239000013598 vector Substances 0.000 claims abstract description 145
- 238000001514 detection method Methods 0.000 claims abstract description 20
- 239000010410 layer Substances 0.000 claims description 105
- 238000004364 calculation method Methods 0.000 claims description 33
- 230000007246 mechanism Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 12
- 230000011218 segmentation Effects 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 239000002356 single layer Substances 0.000 claims description 4
- 238000003058 natural language processing Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 230000005856 abnormality Effects 0.000 abstract description 26
- 230000000694 effects Effects 0.000 abstract description 3
- 230000002159 abnormal effect Effects 0.000 description 17
- 238000011156 evaluation Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- 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/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- 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
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种检测日志序列异常的方法、装置及计算机存储介质,包括从数据源中收集原始的日志序列数据;根据所述日志序列数据中日志序列的层次结构依次提取每一层的语义信息,生成每一层固定维度的语义向量;根据所述日志序列的语义向量利用SoftMax函数计算所述日志序列的概率分布,选择最大条件概率对应的结果作为输出类别。本发明能够从单词、日志和日志序列中提取更加丰富的语义特征,从而使装置能够学习更加准确的层次语义表达,达到更佳的检测效果,进一步提高了检测三种日志序列异常的能力。
Description
技术领域
本发明涉及数据挖掘技术领域,特别是涉及一种检测日志序列异常的方法、装置及计算机存储介质。
背景技术
现代系统在运行时通常会生成大量的系统日志,以文本的形式记录系统的运行信息,并映射了系统在不同关键点的重要活动状态。日志异常检测有助于异常定位和原因分析,从而减少错误时间,保证系统正常运行。日志按执行时间顺序排列,形成日志序列。异常日志序列可能不包含异常日志,因为可能存在所有单个日志都正常的情况,但日志序列的异常执行顺序或不完整的执行模式会导致异常。因此,日志具有上下文,我们需要从日志序列的角度来检测日志异常,而不是单个的日志。日志序列异常一般包括三种,执行顺序异常、操作异常以及不完整异常。目前,日志序列异常检测方法大致可分为三类:基于事件计数向量的方法(如逻辑回归、支持向量机、主成分分析、不变量挖掘、日志聚类、LSTM-AE等)、基于日志键序列的方法(如Deeplog,logkey2vec等)和基于日志语义的方法(例如LogAnomaly,LogRobust等),其中利用基于日志语义的方法对日志数据进行异常检测是目前的研究热点。但是这些现有方法存在以下三个问题。
(1)现有方法都需要使用日志解析器,将非结构化日志数据转换为结构化日志模板或日志键。但是,由于不同系统中日志格式的多样性,日志解析器并不适合所有日志类型。此外,日志解析器的健壮性和准确性会影响异常检测的性能。更糟糕的是,日志解析器的使用会导致文本语义信息的丢失。
(2)基于事件计数向量的方法不考虑日志之间的执行顺序,而基于日志键序列的方法只考虑下一个日志是否适合发生,忽略了日志序列的完整性。这两种方法既不了解日志序列在执行什么,也不同时检测到上述三种异常。
(3)现有的基于日志语义的方法简单地采用词嵌入技术将词映射到词向量中,然后将这些向量相加作为日志的语义表示。由于日志是由单词组成的,所以单词的语义和上下文决定了日志的语义。但是,同一个词在不同的日志下会表达不同的意思,词的重要程度会影响日志的语义表达。现有的基于日志语义的方法没有考虑词序和重要度对日志语义的影响。
发明内容
本发明针对上述问题,提供了一种检测日志序列异常的方法、装置及计算机存储介质。
本发明的第一方面,提供了一种检测日志序列异常的方法,包括:
从数据源中收集原始的日志序列数据;
根据所述日志序列数据中日志序列的层次结构依次提取每一层的语义信息,生成每一层固定维度的语义向量;
根据所述日志序列的语义向量利用SoftMax函数计算所述日志序列的概率分布,选择最大条件概率对应的结果作为输出类别。
进一步的,所述根据所述日志序列数据中日志序列的层次结构依次提取每一层的语义信息,生成每一层固定维度的语义向量,具体包括:
将所述日志序列的层次结构根据词、日志、日志序列分别对应为词层、日志层以及日志序列层;
所述词层根据词性和词频的重要度将所述日志中的每个单词表示为词语义向量WordVec,所述日志层根据所述日志每个单词的语义向量WordVec生成日志语义向量LogVec,所述日志序列层根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec。
进一步的,所述词层根据词性和词频的重要度将所述日志中的每个单词表示为语义向量WordVec,具体包括:
日志序列预处理,包括对所述日志序列进行分词和无义词去除,所述分词是将所述原始的日志序列中每个日志分割成一个个的单词或令牌,所述无义词去除是在经过所述分词后,去除没有意义的符号;
重要度计算,包括词性权重计算和词频权重计算,所述词性权重计算根据自然语言处理库标记每个单词的词性,并为每个词性赋予相应的权重;所述词频权重计算根据词频-逆文档频率法计算每个词的词频权重,具体为:将词经过词频-逆文档频率法计算后的权重记为文档频率为逆文档频率为计算公式分别为:
进一步的,所述日志层根据所述日志每个单词的语义向量WordVec生成日志语义向量LogVec,具体包括:
利用基于注意力机制的Bi-LSTM模型从WordVec序列中提取语义特征,生成日志语义向量LogVec,具体包括:
将在前向LSTM中t时刻的隐藏层的状态记为在后向LSTM中t时刻的隐藏层的状态记为和的计算公式和通过拼接的方式获取Bi-LSTM模型在t时刻的输出表达式为将通过全连接网络生成的隐藏表示通过计算与上下文向量uij的相似度衡量的重要性,利用SoftMax标准化计算重要度权重将与相乘累加获得日志语义向量计算公式分别为:
其中,Wij和bij为随机初始化的向量和偏置。
进一步的,所述日志序列层根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec,具体包括:
利用基于注意力机制的Bi-LSTM模型获取LogVec序列中的上下文信息,具体包括:
自动学习和调整日志对于日志序列语义表达的重要程度,生成日志序列语义向量LogSeqVec,具体计算公式为:
其中,Wi和bi为随机初始化的权值向量和偏置,是通过单层全连接网络生成的隐藏表示,是通过SoftMax函数归一化生成的重要度权重,ui是随机初始化参数,svi是与相乘累加得到的日志序列语义向量LogVec。
进一步的,所述一种检测日志序列异常的方法还包括将所述日志序列数据存储到数据库中。
进一步的,所述一种检测日志序列异常的方法还包括对输出类别进行展示,当输出类别为异常,根据异常发生时间和位置对异常进行定位。
本发明的第二方面,提供了一种检测日志序列异常的装置,包括:数据获取模块:用于从数据源中收集原始的日志序列;语义向量生成模块:用于根据所述日志序列的层次结构提取每一层的语义信息,生成每一层固定维度的语义向量;异常检测模块:用于根据所述日志序列的语义向量利用SoftMax函数计算所述日志序列的概率分布,选择最大条件概率对应的结果作为输出类别。
进一步的,所述语义向量生成模块包括:词层:所述词层用于根据词性和词频的重要度将所述日志中的每个单词表示为词语义向量WordVec;日志层:所述日志层用于根据日志每个单词的语义向量WordVec生成日志语义向量LogVec;日志序列层:所述日志序列层用于根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec。
本发明的第三方面,一种检测日志序列异常的装置,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行上述检测日志序列异常的方法。
本发明的第四方面,提供了一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行上述检测日志序列异常的方法。
本发明提供的提供了一种检测日志序列异常的方法、装置及计算机存储介质,首先从数据源中收集原始的日志序列数据,根据所述日志序列数据中日志序列的层次结构依次提取每一层的语义信息,生成每一层固定维度的语义向量,不使用日志解析器,不需要考虑日志类型,因此,所述数据源可以是系统服务器、应用服务器、数据库等,根据所述日志序列数据中日志序列的层次结构依次提取每一层的语义信息,生成每一层固定维度的语义向量;通过日志按照执行的先后顺序形成日志序列,考虑了日志之间的执行顺序以及日志序列的完整性,能够同时检测到三种日志序列异常情况:执行顺序异常、操作异常以及不完整异常,另外,词嵌入技术充分考虑到单词的语义和上下文决定了日志的语义,在词嵌入基础上进行了词性权重计算和词频权重计算,最终达到的有益效果是:与已有的日志序列异常检测方法及系统相比,本发明提供的一种检测日志序列异常的方法、装置及计算机存储介质能够从单词、日志和日志序列中提取更加丰富的语义特征,从而使装置能够学习更加准确的层次语义表达,达到更佳的检测效果,从而进一步提高了检测三种不同异常的能力。
附图说明
图1是本发明实施例的检测日志序列异常的装置结构示意图;
图2是本发明实施例的检测日志序列异常的方法流程示意图;
图3是本发明实施例中日志序列层次结构示意图;
图4是本发明实施例中计算机设备的架构。
具体实施方式
为进一步对本发明的技术方案作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的步骤。
本发明实施例针对一种检测日志序列异常的方法、装置及计算机存储介质,参考图1-4所示,图2是本发明实施例的检测日志序列异常的方法流程示意图,具体实施步骤为:
S01、数据采集:从数据源中收集原始的日志序列数据,其中,数据源包括但不限系统服务器、应用服务器、数据库。
S02、数据存储:将采集到的日志序列数据存储到指定存储介质中,存储介质包括线上和线下两个部分,也可不对数据进行存储,跳过此步骤进行下一步骤。
S03、原始日志序列队列:日志按照执行的先后顺序形成日志序列,多个日志序列排列形成日志序列队列,能够保证系统能并行处理多个日志序列数据。
S04、日志序列异常检测LayerLog:根据所述日志序列数据中日志序列的层次结构依次提取每一层的语义信息,生成每一层固定维度的语义向量;根据所述日志序列的语义向量利用SoftMax函数计算所述日志序列的概率分布,选择最大条件概率对应的结果作为输出类别。
S05、结果展示与异常定位:对输出类别进行展示(正常或异常),根据异常发生时间和位置对异常进行定位。
日志序列是按照日志执行时间的先后顺序进行排列的。在检测日志序列时,保留和记录日志的执行时间,一旦发生检测出异常,便可根据该执行时间和日志序列位置进行异常定位。
将所述日志序列的层次结构根据词、日志、日志序列分别对应为词层、日志层以及日志序列层;所述词层根据词性和词频的重要度将所述日志中的每个单词表示为词语义向量WordVec,所述日志层根据所述日志每个单词的语义向量WordVec生成日志语义向量LogVec,所述日志序列层根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec。
所述S04日志序列异常检测LayerLog的具体实施方式为:日志序列由日志组成,日志由单词组成,形成了三层的层次结构,且每一层的语义都会影响最终日志序列的语义向量表达,将单词、日志和日志序列所在的层次分别命名为词层(WordLayer)、日志层(LogLayer)和日志序列层(LogSeq Layer),将日志序列的层次结构命名为称为“词-日志-日志序列”层次结构,如图3所示。
假设第i个日志序列由n条日志组成,第j条日志由m个单词组成,用Si表示第i个日志序列,用表示第i个日志序列的第j条日志,用表示第i个日志序列的第j条日志的第k个单词,其中j∈[1,n],k∈[1,m],日志序列的组成可表示为且
S04日志序列异常检测LayerLog是在获取原始日志序列之后,提取日志数据每一层的语义信息,生成固定维度的语义向量,然后通过日志序列语义向量来判断日志序列是否异常。实施例中将词层、日志层和日志序列层对应的语义向量分别命名为WordVec、LogVec和LogSeqVec。更具体地,将单词的语义向量WordVec表示为将日志的语义向量LogVec表示为将日志序列Si的语义向量LogSeqVec表示为svi。
在词层,考虑到词性和词频的重要性,LayerLog将其和重要度计算结合起来,为每个词生成相应的语义向量WordVec。然后将日志中的所有WordVec传递到日志层,形成一个WordVec序列,通过基于注意力机制的Bi-LSTM模型生成相应的日志语义向量LogVec。接着,将日志序列中每一条日志的LogVec传输到LogSeq层,形成LogVec序列,利用基于注意力机制的Bi-LSTM模型生成相应的LogSeqVec。LayerLog通过生成的LogSeqVec判断日志序列是否异常。
S041、日志序列预处理,结合日志序列的文本特征来处理原始日志序列数据,包括对所述日志序列进行分词和无义词去除,所述分词是将所述原始的日志序列中每个日志分割成一个个的单词或令牌,由于英文文本格式的日志数据以空格作为单词之间的间隔,因此可以将空格符号作为分隔符来分割日志;所述无义词去除是在经过所述分词后,去除没有意义的符号,所述无意义的符号包括但不限于标点符号和分隔符,它们对日志的语义表达没有积极的影响。与普通文本数据(如新闻文本、评论文本等)不同,日志记录系统运行状态的异构文本数据,它具有其独特的领域特性,在对日志数据进行预处理时,设计了两种特殊处理手段:(1)尽管介词(如“from”,“to”等)和量词(如“a”,“the”等)在自然语言理解方面往往没有意义,但仍然保留它们,因为在日志分析中,所有的词都有语义信息,只是它们的重要程度不同。(2)复合词(例如“PackeResponder”、“addStoredBlock”等)不会被刻意分割,而是被视为一个特殊的词,因为分割复合词会导致语义损失,因此通过构造相应的WordVec来保留复合词的整个语义。
S042、词嵌入,包括将日志序列预处理后的每个单词映射到一个向量,将单词经过嵌入处理后生成向量其中表示第i个日志序列的第j条日志的第k个单词,实施例中具体使用Word2Vec来生成词嵌入表示,其中Word2Vec利用单层神经网络(CBOW或Skip-Gram)将独热编码形式的稀疏向量映射到某个维度的密集向量中。
S043、重要度计算,日志数据中词的重要性程度是不同的,主要表现在以下两个方面:一是词性不同,在一条日志中,内容词往往具有主导性,而功能词具有辅助性,即内容词的重要性通常大于功能词。二是同一个单词在某些日志序列中更为重要,但在其他日志序列中则不那么重要,这取决于单词上下文及其所属的日志序列。因此,利用两种相应的方法来计算单词的重要度。包括词性权重计算和词频权重计算,所述词性权重计算使用宾夕法尼亚大学设计的NLTK(Natural Language Toolkit)自然语言处理库,来标记单词的词性,并为每个词性赋予相应的权重。在赋予权重时,按照内容词(动词、名词、形容词和副词)对语义表达的影响比辅助词(连接词、限定词和介词)要大的这样一个设定,来给对应的词性赋予相应大小的权重。词性权重越大的单词就越重要,对日志语义的影响就越大。单词在经过词性标注后,词性的相应权重如表1所示。其中,POS指词性,Abbr是词性的缩写,表示词经过词性标注后的权重。越大,越重要。
表1:词性对应的权重
所述词频权重计算根据词频-逆文档频率法(Term Frequency-Inverse DocumentFrequency,TF-IDF)计算每个词的词频权重,对于三层结构的日志序列,TF-IDF基于这样一个假设:如果一个单词在一个日志序列中频繁出现,而在其他日志序列中很少出现,则该单词具有更高的区分性和重要性。具体为:将词经过词频-逆文档频率法计算后的权重记为文档频率为逆文档频率为计算公式分别为:
以上步骤为每个词生成相应的语义向量WordVec,然后将日志中的所有WordVec传递到日志层,形成一个WordVec序列。
所述日志层根据所述日志每个单词的语义向量WordVec生成日志语义向量LogVec,日志层的目标是为日志生成一个语义向量表示LogVec,引入基于注意力机制的Bi-LSTM来从WordVec序列中提取语义特征,这样能够捕获单词之间的上下文信息,自动学习和调整单词对于日志语义表达的重要性权重。
LSTM是RNN的一个变种,引入三个门控机制来缓解梯度消失问题。Bi-LSTM是前向LSTM和后向LSTM的结合,可以对双向序列信息进行编码,非常适合于序列数据的建模。日志由单词组成,而日志中每个单词的WordVec构成了WordVec序列,Bi-LSTM能较好地捕获WordVec序列的双向语义依赖性。具体步骤为:
S045、利用基于注意力机制的Bi-LSTM模型从WordVec序列中提取语义特征,生成日志语义向量LogVec,具体包括:将在前向LSTM中t时刻的隐藏层的状态记为在后向LSTM中t时刻的隐藏层的状态记为和的计算公式和通过拼接的方式获取Bi-LSTM模型在t时刻的输出表达式为并非所有的词都对日志的语义表示有同等的贡献。为了更准确地表达日志语义,引入注意机制来提取对日志语义表示有重要意义的词。将通过全连接网络生成的隐藏表示通过计算与上下文向量uij的相似度衡量的重要性,利用SoftMax标准化计算重要度权重将与相乘累加获得日志语义向量计算公式分别为:
其中,Wij和bij为随机初始化的向量和偏置。
所述日志序列层根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec,由于日志序列是由日志按时间顺序组成的,日志之间存在一定的关系,涉及到日志的数量、类型和操作内容。这种关系反映在日志序列的语义中,因此需要从LogVec序列中生成日志序列的语义表示,再利用基于注意力机制的Bi-LSTM模型,来获取LogVec序列中的上下文信息,并自动学习和调整日志对于日志序列语义表达的重要程度。需要注意的是,日志层和日志序列层的两个基于注意力机制的Bi-LSTM在设计上是不同的,它们不能共享同样的参数,但都是在LayerLog中一起训练。具体步骤为:
S047、利用基于注意力机制的Bi-LSTM模型获取LogVec序列中的上下文信息,和分别表示为在t时刻前向LSTM和后向LSTM的隐藏层状态,和的计算可以分别被简化为和通过拼接的方式获取Bi-LSTM模型在t时刻的输出表达式为日志对日志序列的语义表达有不同的影响,因此再次引入注意机制,自动学习和调整日志的重要程度,以形成更精确的日志序列的语义表示,具体计算公式为:
其中,Wi和bi为随机初始化的权值向量和偏置,是通过单层全连接网络生成的隐藏表示,是通过SoftMax函数归一化生成的重要度权重,ui是随机初始化参数,svi是与相乘累加得到的日志序列语义向量LogVec。
从日志序列层的输出中提取到日志序列的语义向量LogSeqVec,然后将日志序列的异常检测看作是一个二元分类问题,利用SoftMax函数计算日志序列的概率分布,然后选择最大条件概率对应的检测结果作为输出类别。计算过程如下:
以下,参照图1来描述根据本公开实施例的与图2所示的方法对应的系统,一种检测日志序列异常的装置100,包括:数据获取模块101:用于从数据源中收集原始的日志序列;语义向量生成模块102:用于根据所述日志序列的层次结构提取每一层的语义信息,生成每一层固定维度的语义向量;异常检测模块103:用于根据所述日志序列的语义向量利用SoftMax函数计算所述日志序列的概率分布,选择最大条件概率对应的结果作为输出类别。
所述语义向量生成模块102包括:词层:所述词层用于根据词性和词频的重要度将所述日志中的每个单词表示为词语义向量WordVec;日志层:所述日志层用于根据日志每个单词的语义向量WordVec生成日志语义向量LogVec;日志序列层:所述日志序列层用于根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec。
一种检测日志序列异常的装置100的具体工作过程参照上述一种检测日志序列异常的方法的描述,不再赘述。
此外,根据本发明实施例的装置也可以借助于图4所示的计算设备的架构来实现。图4示出了该计算设备的架构。如图4所示,计算机系统201、系统总线203、一个或多个CPU204、输入/输出组件202、存储器205等。存储器205可以存储计算机处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令。图4所示的架构只是示例性的,在实现不同的设备时,根据实际需要调整图4中的一个或多个组件。
本发明实施例也可以被实现为计算机可读存储介质。根据实施例的计算机可读存储介质上存储有计算机可读指令。当所述计算机可读指令由处理器运行时,可以执行参照以上附图描述的根据本发明实施例的方法。
本发明实施例基于以上所述一种检测日志序列异常的方法、装置及计算机存储介质,在HDFS和BGL数据集上进行了实施例比对。这两个数据集的详细信息如下。(1)HDFS数据集:HDFS数据集包含Hadoop生成的11,175,629条日志,这些日志来自200多个Amazon EC2节点。HDFS数据集中的每条日志都含有“blockID”标识符,因此选用会话窗口划分日志序列。将具有相同“blockID”标识符的日志按时间执行的先后顺序组合在一起,从而形成日志序列。在11,175,629条日志中,共合成了575,061个日志序列。Hadoop领域专家已经对这些日志序列的正常或异常标签进行了标记,其中正常日志序列数为558,223,约占97.1%;异常日志序列数为16,838,约占2.9%。(2)BGL数据集:BGL数据集由一台由128K处理器组成的Blue Gene/L超级计算机生成。BGL数据集包含4,747,963条日志,其中异常348,460条。与HDFS数据集不同,BGL的日志不包含特定的标识符,因此采用固定窗口或滑动窗口对BGL数据集进行日志序列的划分。不同窗口大小和步长大小的选取会影响日志序列的长度和对日志序列正常或异常的判断。对应划分好的日志序列,如果出现了异常日志条目,则该日志序列被视为异常。利用精确率、召回率和F1评分来衡量LayerLog对日志序列异常检测的有效性。精确率Precision(P)是在所有检测到的异常中检测到的真实日志序列异常的百分比,P=TP/TP+FP。召回率Recall(R)是在所有异常中实际检测到的真实日志序列异常的百分比,以及R=TP/TP+FN。F1评分是精确性和召回率的调和平均数,F1=2*P*R/P+R。TP是正确检测到的异常日志序列数。FP是错误检测为异常的正常日志序列数。FN是错误检测为正常的异常日志序列数。
实施例编写语言为python版本3.5.2,基于Tensorflow版本1.13.1深度学习框架编写。CPU为I99820X,内存为48GB,显卡为2080Ti,固态容量为520GB,操作系统为LinuxUbuntu 16.04.6LTS。系统的参数设置及解释如下表2所示。
表2:系统参数设置
参数 | 取值 | 解释 |
α | 0.6 | 生成词向量的影响因子 |
β | 0.4 | 生成词向量的影响因子 |
hidden_size | 50 | Bi-LSTM每一层的节点数目 |
atten_size | 50 | Attention机制每一层的节点数目 |
embedding_size | 50 | 语义向量的维度 |
在HDFS和BGL数据集上验证了LayerLog的性能,并与LR、SVM、PCA、IM、LogClustering、LSTM-AE(基于事件计数向量的方法)、DeepLog(基于日志键序列的方法)和LogAnomaly(基于日志语义的方法)进行了比较。表3和表4显示了HDFS和BGL数据集的比较结果。
表3:在HDFS数据集上实验结果
P | R | F1 | |
LR | 0.98 | 0.86 | 0.92 |
SVM | 1.00 | 0.86 | 0.93 |
PCA | 1.00 | 0.65 | 0.79 |
IM | 0.86 | 0.82 | 0.84 |
LogCluster | 1.00 | 0.46 | 0.63 |
LSTM-AE | 0.89 | 0.88 | 0.88 |
DeepLog | 0.95 | 0.93 | 0.94 |
LogAnomaly | 0.96 | 0.94 | 0.95 |
LayerLog | 0.99 | 0.98 | 0.99 |
表4:在BGL数据集上实验结果
从实施例比对结果可以看出,LayerLog的性能优于其他方法。它的F1在HDFS数据集上的得分达到了0.99,在BGL数据集上的得分达到了0.98。然而,基于事件计数向量的方法不能同时达到高精度和高召回率。例如,在HDFS数据集上,支持向量机、主成分分析和LogCluster的精度很高,甚至高达1,而它们的召回率相对较低,分别为0.86、0.65和0.46,导致F1得分较低。同时,由于两个数据集上的评价标准具有很强的区分性,基于事件计数向量的方法的鲁棒性较差。例如,HDFS数据集上LR的F1得分为0.92,而BGL数据集上LR的F1得分仅为0.82。LSTM-AE。虽然这两个数据集对LSTM-AE的评价标准没有显著差异,但它们的F1分数没有超过0.9。
基于日志键序列的方法通常比基于事件计数向量的方法具有更好的性能。DeepLog在两个数据集上的F1得分均在0.9以上,说明了日志执行顺序的必要性,验证了DeepLog在日志序列异常检测中具有较好的鲁棒性。
基于日志语义的方法取得了最好的结果,说明从语义的角度理解日志序列的执行内容可以提高检测三种不同异常的能力。LayerLog的性能优于LogAnomaly,其F1在HDFS数据集上的得分比LogAnomaly高4个百分点,在BGL数据集上的得分比LogAnomaly高2个百分点。证实了LayerLog能够从单词、日志和日志序列中提取更加丰富的语义特征,从而使LayerLog能够学习更加准确的层次语义表达,达到最佳的准确性。
现代系统将在运行期间生成新的日志。由于训练模型从训练数据中学习到一个固定的日志序列语义模式,因此在检测新的日志序列时可能会降低准确性。因此,为了评估模型对新日志数据的适应能力,对BGL数据集进行了在线测试。按时间顺序执行的BGL数据集的前50%用作训练集,后50%用作测试集,在不提供任何反馈的情况下进行评估。与DeepLog和LogAnomaly对比,具体结果见表5。
从实施例结果可以看出,LayerLog对新数据有较强的适应能力,其三个评价指标分别为0.9944、0.9187和0.9550。由于DeepLog和LogAnomaly都使用日志分析器,当系统产生新的日志事件时,日志分析器无法正常工作,导致日志序列异常检测性能显著下降。相比之下,LayerLog不使用日志解析器,避免了日志解析器带来的负面影响。在对原始日志数据进行预处理时,只去除无意义的符号(如标点符号、分隔符等),最大限度地增加了日志文本的语义信息。此外,在训练阶段还可以自动学习单词、日志和日志序列的语义。因此,基于层次语义的LayerLog框架能够更好地适应新的数据,更适合于在线日志序列异常检测。
表5:对BGL数据集的在线评估结果
P | R | F1 | |
DeepLog | 0.3817 | 0.9768 | 0.5489 |
LogAnomaly | 0.8039 | 0.9319 | 0.8632 |
LayerLog | 0.9944 | 0.9187 | 0.9550 |
系统日志是进行异常检测和故障分析的重要资源。日志数据的三层结构,即“词-日志-日志序列”层次结构,提出了一种基于日志数据层次语义的日志序列异常检测框架LayerLog。在预处理阶段不需要日志解析器,LayerLog可以有效地从每一层提取语义特征。此外,LayerLog还可以端到端同时检测日志序列的执行顺序异常、操作异常和不完全异常。对两个公共数据集的评估证实了LayerLog比现有的方法有更好的性能。
综合上述各实施例提供的检测日志序列异常的方法、装置及计算机存储介质,与已有的日志序列异常检测方法及装置相比,本发明提供的一种基于层次语义的检测日志序列异常的方法、装置能够从单词、日志和日志序列中提取更加丰富的语义特征,从而使装置能够学习更加准确的层次语义表达,达到最佳的准确性,从而进一步提高了检测三种不同异常的能力。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的步骤、方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种步骤、方法所固有的要素。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种检测日志序列异常的方法,其特征在于,所述方法包括:
从数据源中收集原始的日志序列数据;
根据所述日志序列数据中日志序列的层次结构依次提取每一层的语义信息,生成每一层固定维度的语义向量;
根据所述日志序列的语义向量利用SoftMax函数计算所述日志序列的概率分布,选择最大条件概率对应的结果作为输出类别。
2.根据权利要求1所述的一种检测日志序列异常的方法,其特征在于,所述根据所述日志序列数据中日志序列的层次结构依次提取每一层的语义信息,生成每一层固定维度的语义向量,具体包括:
将所述日志序列的层次结构根据词、日志、日志序列分别对应为词层、日志层以及日志序列层;
所述词层根据词性和词频的重要度将所述日志中的每个单词表示为词语义向量WordVec,所述日志层根据所述日志每个单词的语义向量WordVec生成日志语义向量LogVec,所述日志序列层根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec。
3.根据权利要求2所述的一种检测日志序列异常的方法,其特征在于,所述词层根据词性和词频的重要度将所述日志中的每个单词表示为语义向量WordVec,具体包括:
日志序列预处理,包括对所述日志序列进行分词和无义词去除,所述分词是将所述原始的日志序列中每个日志分割成一个个的单词或令牌,所述无义词去除是在经过所述分词后,去除没有意义的符号;
重要度计算,包括词性权重计算和词频权重计算,所述词性权重计算根据自然语言处理库标记每个单词的词性,并为每个词性赋予相应的权重;所述词频权重计算根据词频-逆文档频率法计算每个词的词频权重,具体为:将词经过词频-逆文档频率法计算后的权重记为文档频率为逆文档频率为计算公式分别为:
4.根据权利要求2所述的一种检测日志序列异常的方法,其特征在于,所述日志层根据所述日志每个单词的语义向量WordVec生成日志语义向量LogVec,具体包括:
利用基于注意力机制的Bi-LSTM模型从WordVec序列中提取语义特征,生成日志语义向量LogVec,具体包括:
将在前向LSTM中t时刻的隐藏层的状态记为在后向LSTM中t时刻的隐藏层的状态记为和的计算公式和通过拼接的方式获取Bi-LSTM模型在t时刻的输出表达式为将通过全连接网络生成的隐藏表示通过计算与上下文向量uij的相似度衡量的重要性,利用SoftMax标准化计算重要度权重将与相乘累加获得日志语义向量计算公式分别为:
其中,Wij和bij为随机初始化的向量和偏置。
5.根据权利要求2所述的一种检测日志序列异常的方法,其特征在于,所述日志序列层根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec,具体包括:
利用基于注意力机制的Bi-LSTM模型获取LogVec序列中的上下文信息,具体包括:
自动学习和调整日志对于日志序列语义表达的重要程度,生成日志序列语义向量LogSeqVec,具体计算公式为:
6.一种检测日志序列异常的装置,其特征在于,包括:
数据获取模块:用于从数据源中收集原始的日志序列;
语义向量生成模块:用于根据所述日志序列的层次结构提取每一层的语义信息,生成每一层固定维度的语义向量;
异常检测模块:用于根据所述日志序列的语义向量利用SoftMax函数计算所述日志序列的概率分布,选择最大条件概率对应的结果作为输出类别。
7.根据权利要求6所述的一种检测日志序列异常的装置,其特征在于,所述语义向量生成模块包括:
词层:所述词层用于根据词性和词频的重要度将所述日志中的每个单词表示为词语义向量WordVec;
日志层:所述日志层用于根据日志每个单词的语义向量WordVec生成日志语义向量LogVec;
日志序列层:所述日志序列层用于根据所述日志序列每个日志语义向量LogVec生成日志序列语义向量LogSeqVec。
8.一种检测日志序列异常的装置,其特征在于,包括:
处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行权利要求1-5中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110728816.6A CN113407721A (zh) | 2021-06-29 | 2021-06-29 | 检测日志序列异常的方法、装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110728816.6A CN113407721A (zh) | 2021-06-29 | 2021-06-29 | 检测日志序列异常的方法、装置及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113407721A true CN113407721A (zh) | 2021-09-17 |
Family
ID=77680292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110728816.6A Pending CN113407721A (zh) | 2021-06-29 | 2021-06-29 | 检测日志序列异常的方法、装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113407721A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610515A (zh) * | 2022-03-10 | 2022-06-10 | 电子科技大学 | 基于日志全语义的多特征日志异常检测方法及系统 |
CN114742051A (zh) * | 2022-04-25 | 2022-07-12 | 京东科技信息技术有限公司 | 日志处理方法、装置、计算机系统及可读存储介质 |
CN114969335A (zh) * | 2022-05-20 | 2022-08-30 | 北京九章云极科技有限公司 | 异常日志检测方法、装置、电子设备及可读存储介质 |
CN114969334A (zh) * | 2022-05-20 | 2022-08-30 | 北京九章云极科技有限公司 | 异常日志检测方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363753A (zh) * | 2018-01-30 | 2018-08-03 | 南京邮电大学 | 评论文本情感分类模型训练与情感分类方法、装置及设备 |
CN109325114A (zh) * | 2018-07-24 | 2019-02-12 | 武汉理工大学 | 一种融合统计特征与Attention机制的文本分类算法 |
CN112882899A (zh) * | 2021-02-25 | 2021-06-01 | 中国烟草总公司郑州烟草研究院 | 一种日志异常检测方法及装置 |
-
2021
- 2021-06-29 CN CN202110728816.6A patent/CN113407721A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363753A (zh) * | 2018-01-30 | 2018-08-03 | 南京邮电大学 | 评论文本情感分类模型训练与情感分类方法、装置及设备 |
CN109325114A (zh) * | 2018-07-24 | 2019-02-12 | 武汉理工大学 | 一种融合统计特征与Attention机制的文本分类算法 |
CN112882899A (zh) * | 2021-02-25 | 2021-06-01 | 中国烟草总公司郑州烟草研究院 | 一种日志异常检测方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610515A (zh) * | 2022-03-10 | 2022-06-10 | 电子科技大学 | 基于日志全语义的多特征日志异常检测方法及系统 |
CN114610515B (zh) * | 2022-03-10 | 2022-09-13 | 电子科技大学 | 基于日志全语义的多特征日志异常检测方法及系统 |
CN114742051A (zh) * | 2022-04-25 | 2022-07-12 | 京东科技信息技术有限公司 | 日志处理方法、装置、计算机系统及可读存储介质 |
CN114969335A (zh) * | 2022-05-20 | 2022-08-30 | 北京九章云极科技有限公司 | 异常日志检测方法、装置、电子设备及可读存储介质 |
CN114969334A (zh) * | 2022-05-20 | 2022-08-30 | 北京九章云极科技有限公司 | 异常日志检测方法、装置、电子设备及可读存储介质 |
CN114969335B (zh) * | 2022-05-20 | 2024-02-20 | 北京九章云极科技有限公司 | 异常日志检测方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Le et al. | Log-based anomaly detection without log parsing | |
CN108427720B (zh) | 系统日志分类方法 | |
CN113407721A (zh) | 检测日志序列异常的方法、装置及计算机存储介质 | |
CN107085585B (zh) | 用于图像搜索的准确的标签相关性预测 | |
Ebrahimi et al. | An HMM-based approach for automatic detection and classification of duplicate bug reports | |
Sureka et al. | Detecting duplicate bug report using character n-gram-based features | |
US8108413B2 (en) | Method and apparatus for automatically discovering features in free form heterogeneous data | |
CN103514183A (zh) | 基于交互式文档聚类的信息检索方法及系统 | |
KR102373146B1 (ko) | 군집 기반 중복문서 제거 장치 및 제거 방법 | |
CN112445775B (zh) | 一种光刻机的故障分析方法、装置、设备和存储介质 | |
Kotov et al. | Mining named entities with temporally correlated bursts from multilingual web news streams | |
WO2021121279A1 (en) | Text document categorization using rules and document fingerprints | |
CN114491034B (zh) | 一种文本分类方法及智能设备 | |
Debnath et al. | NLP-NITMZ@ CLScisumm-18. | |
CN116245139B (zh) | 图神经网络模型训练方法和装置、事件检测方法和装置 | |
CN112286799A (zh) | 结合句嵌入和粒子群优化算法的软件缺陷定位方法 | |
CN112579781A (zh) | 文本归类方法、装置、电子设备及介质 | |
CN114969334B (zh) | 异常日志检测方法、装置、电子设备及可读存储介质 | |
CN116932753A (zh) | 日志分类方法、装置、计算机设备、存储介质和程序产品 | |
Zhu et al. | A unified tagging approach to text normalization | |
CN116841779A (zh) | 异常日志检测方法、装置、电子设备和可读存储介质 | |
Wu et al. | An intelligent duplicate bug report detection method based on technical term extraction | |
CN113591480B (zh) | 电力计量的命名实体识别方法、装置和计算机设备 | |
CN115221013A (zh) | 一种日志模式的确定方法、装置及设备 | |
CN114936139A (zh) | 数据中心网络内的日志处理方法、装置、设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210917 |