CN115454788A - 一种日志异常检测方法、装置、设备及存储介质 - Google Patents
一种日志异常检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115454788A CN115454788A CN202210950614.0A CN202210950614A CN115454788A CN 115454788 A CN115454788 A CN 115454788A CN 202210950614 A CN202210950614 A CN 202210950614A CN 115454788 A CN115454788 A CN 115454788A
- Authority
- CN
- China
- Prior art keywords
- log
- sequence
- vector
- timestamp
- content
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
-
- 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/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种日志异常检测方法,包括以下步骤:S1、获取待检测日志消息的第一时间戳和第一日志内容;S2、对所述第一时间戳和所述第一日志内容进行预处理,得到第二时间戳和第二日志内容;S3、对所述第二时间戳和第二日志内容进行特征提取处理,得到日志向量序列;S4、将所述日志向量序列输入训练好的TRANSFORMER模型,得到日志序列向量;S5、将所述日志序列向量输入训练好的超球面模型,得到异常检测结果。本申请涉及的技术方案,其能够充分利用日志消息中的信息构建多特征表示,处理多种异常模式,提高日志异常检测过程中的准确性和实用性。
Description
技术领域
本申请涉及日志异常检测技术领域,尤其涉及一种日志异常检测方法、装置、设备及存储介质。
背景技术
日志消息是半结构化的纯文本数据,由固定部分和可变部分组成,在不同情况下存在差异。因此在获得收集的日志后,通常需要从原始日志消息中提取固定不变的部分形成日志模板,并用日志模板ID唯一标识日志模板,将其转换成结构化数据,用于特征提取。
在现有技术中,日志异常检测方法无法利用信息丰富的日志构建多特征表示和处理多种异常模式。首先,大部分方法都遵循日志解析、特征提取、异常检测的顺序构建日志异常检测模型,通常在日志解析阶段将日志ID或者日志模板提取出来,构建日志序列用于特征提取和异常检测,而忽略了参数、时间戳等日志的固有属性,这种处理方式本身会造成信息丢失。其次,对于考虑了时间戳、参数值的大部分模型,要么以时间切片的方式构建日志序列,再简单利用序列的统计信息或者语义向量进行异常检测,要么将时间戳、参数值统一视为参数来构造参数值异常检测模型。无论是前者还是后者,对日志的时间特征处理都主要体现在对其他特征的处理方式上,而不是直接针对日志时间进行表征;而对于参数的处理,也是使用计数等统计特征表征参数值特征,这导致参数值本身的语义信息无法获取和利用。综上,现有的日志异常检测方法在日志解析和特征提取部分无法充分利用日志信息,无法获取良好的多特征的表征效果,且无法处理多种异常模式。
因此,如何提高日志异常检测过程中的准确性和实用性,成为需要解决的问题。
在背景技术中公开的上述信息仅用于加强对本申请的背景的理解,因此其可能包含没有形成为本领域普通技术人员所知晓的现有技术的信息。
发明内容
本申请提供一种日志异常检测方法、装置、设备及存储介质,用以解决现有技术存在的问题。
第一方面,本申请提供一种日志异常检测方法,包括以下步骤:S1、获取待检测日志消息的第一时间戳和第一日志内容;S2、对所述第一时间戳和所述第一日志内容进行预处理,得到第二时间戳和第二日志内容;S3、对所述第二时间戳和第二日志内容进行特征提取处理,得到日志向量序列;S4、将所述日志向量序列输入训练好的TRANSFORMER模型,得到日志序列向量;S5、将所述日志序列向量输入训练好的超球面模型,得到异常检测结果。
在一些实施例中,对所述第一时间戳进行预处理,包括以下步骤:通过最大最小值归一化将所述第一时间戳进行缩放处理,得到第二时间戳;和/或,对所述第一日志内容进行预处理,包括以下步骤:S201、将所述第一日志内容中的大写字母转换为小写字母,得到更新日志内容;S202、将所述更新日志内容分隔为符号标记,并删除所述符号标记中的非字符标记,得到第二日志内容。
在一些实施例中,所述特征提取处理包括:S301、对所述第二日志内容进行子词标记化处理,得到所述第二日志内容的基础词汇;S302、对所述基础词汇进行编码处理,得到语义向量;S303、将所述第二时间戳扩展至高维时间嵌入表示,得到时间向量;S304、连接所述时间向量和所述语义向量,得到串联向量;S305、采用窗口划分技术处理所述串联向量,得到所述日志向量序列,所述日志向量序列用于异常检测。
在一些实施例中,所述超球面模型通过获取正常日志序列和异常日志序列之间的差异,得到异常检测结果。
在一些实施例中,所述S5,包括:S501、计算所述待检测日志消息的异常分数,所述异常分数为所述日志序列向量至所述超球面模型的球心的距离;S502、设置检测阈值,所述检测阈值为所述超球面模型的半径;S503、比较所述异常分数与所述检测阈值的大小,得到比较结果;S504、根据所述比较结果,得到异常检测结果。
在一些实施例中,所述S504,包括:
当所述异常分数大于所述检测阈值时,则所述待检测日志消息的序列为异常序列;
当所述异常分数小于或等于所述检测阈值时,则所述待检测日志消息的序列为正常序列。
在一些实施例中,所述TRANSFORMER模型和所述超球面模型的训练过程,包括以下步骤:S11、获取历史日志消息的所述第一时间戳和所述第一日志内容;S12、对所述第一时间戳和所述第一日志内容进行预处理,得到所述第二时间戳和所述第二日志内容;S13、对所述第二时间戳和第二日志内容进行特征提取处理,得到所述日志向量序列;S14、根据所述日志向量序列,进行模型训练,得到所述TRANSFORMER模型和所述超球面模型。
第二方面,本申请提供一种日志异常检测装置,所述装置包括:
获取模块,用于获取待检测日志消息的第一时间戳和第一日志内容;
处理模块,用于对所述第一时间戳和所述第一日志内容进行预处理,得到第二时间戳和第二日志内容;对所述第二时间戳和第二日志内容进行特征提取处理,得到日志向量序列;
检测模块,用于将所述日志向量序列输入训练好的TRANSFORMER模型,得到日志序列向量;将所述日志序列向量输入训练好的超球面模型,得到异常检测结果。
第三方面,本申请提供一种终端设备,包括存储器、处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于读取所述存储器中的计算机程序并执行所述日志异常检测方法对应的操作。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现所述日志异常检测方法。
本申请提供的日志异常检测方法,包括以下步骤:S1、获取待检测日志消息的第一时间戳和第一日志内容;S2、对所述第一时间戳和所述第一日志内容进行预处理,得到第二时间戳和第二日志内容;S3、对所述第二时间戳和第二日志内容进行特征提取处理,得到日志向量序列;S4、将所述日志向量序列输入训练好的TRANSFORMER模型,得到日志序列向量;S5、将所述日志序列向量输入训练好的超球面模型,得到异常检测结果。本申请的日志异常检测方法,一方面,通过充分利用日志消息的信息,包括语义信息、顺序信息、时间信息、参数值信息,构建多特征表示,并利用一种时间嵌入方法来提取日志消息的周期性特征,实现对多种异常模式的处理,提高日志异常检测过程中的准确性和实用性;另一方面,利用未标注的历史日志消息训练好超球面模型后直接对待检测日志消息进行异常检测,无需获取大量标注数据,大大的降低了训练成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的日志异常检测方法的示意图;
图2为本申请提供的日志异常检测方法中涉及的BERT简化结构图;
图3为本申请提供的日志异常检测方法中涉及的TRANSFORMER模型的示意图;
图4为本申请提供的BGL数据集的模型性能评测的数据对比图;
图5为本申请提供的Thunderbird数据集的模型性能评测的数据对比图;
图6为本申请提供的日志异常检测方法的步骤流程图;
图7为本申请提供的日志异常检测装置的示意图;
图8为本申请提供的终端设备的示意图。
附图标记说明:
11、获取模块;12、处理模块;13、检测模块;21、处理器;22、存储器。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本申请实施例中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”、“若干个”的含义是两个或两个以上,除非另有明确具体的限定。
须知,本说明书附图所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容得能涵盖的范围内。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
专业术语的解释:
TRANSFORMER:一种用于解决序列到序列问题的自然语言模型。
LogBERT:基于BERT结构的多任务无监督日志异常检测方法。该方法采用BERT对解析后的日志模板ID和日志模板词汇进行随机初始向量化得到日志向量,然后通过结合预测日志序列掩码ID与最小化超球面两个自我监督的训练任务,学习正常日志序列的模式,违反正常模式的日志序列将判定为异常,该方法为无监督方法。
LogTAD:基于长短时记忆网络(Long Short-Term Memory)的无监督跨系统日志异常检测方法。该方法采用Word2Vec方法对解析后的日志模板进行向量化,然后使用正样本作为长短时记忆网络的输入训练一个超球面,并通过对抗域网络混合源域与目标域数据,使不同系统的日志数据在超球面上具有相似的分布,最后利用超球面检测目标域的未知日志数据,该方法为无监督方法。
WORD2VEC:是一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在Word2Vec中词袋模型假设下,词的顺序是不重要的。训练完成之后,Word2Vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系,该向量为神经网络之隐藏层。
WORDPIECE:一种用于自然语言处理的子词分割算法。
OOV词汇:即表外词汇,历史日志消息中不曾出现的新词。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的日志异常检测方法的示意图,图6为本申请提供的日志异常检测方法的步骤流程图,如图1、图6所示,本申请提供的一种日志异常检测方法,包括离线训练和在线检测两个阶段,每个阶段均包括预处理、特征提取、TRANSFORMER模型和超球面模型,离线训练阶段对TRANSFORMER模型和超球面模型进行训练,在线检测阶段利用训练好的TRANSFORMER模型和超球面模型进行异常检测,在线检测阶段包括以下步骤:S1、获取待检测日志消息的第一时间戳和第一日志内容;S2、对所述第一时间戳和所述第一日志内容进行预处理,得到第二时间戳和第二日志内容;S3、对所述第二时间戳和第二日志内容进行特征提取处理,得到日志向量序列;S4、将所述日志向量序列输入训练好的TRANSFORMER模型,得到日志序列向量;S5、将所述日志序列向量输入训练好的超球面模型,得到异常检测结果。本申请的日志异常检测方法,一方面,通过充分利用日志消息的信息,包括语义信息、顺序信息、时间信息、参数值信息,构建多特征表示,并利用一种时间嵌入方法来提取日志消息的周期性特征,实现对多种异常模式的处理,提高日志异常检测过程中的准确性和实用性;另一方面,利用未标注的历史日志消息训练好超球面模型后直接对待检测日志消息进行异常检测,无需获取大量标注数据,大大的降低了训练成本。
在一些实施例中,对所述第一时间戳进行预处理,包括以下步骤:通过最大最小值归一化将所述第一时间戳进行缩放处理,得到第二时间戳;和/或,对所述第一日志内容进行预处理,包括以下步骤:S201、将所述第一日志内容中的大写字母转换为小写字母,得到更新日志内容;S202、将所述更新日志内容分隔为符号标记,并删除所述符号标记中的非字符标记,得到第二日志内容。
需要进一步说明的是,预处理日志数据是构建模型的第一步,目的是进行数据清洗并获取时间戳和由一组单词标记组成的日志消息内容。
具体的,首先将日志消息内容每个大写字母都转换为小写字母。然后,使用日志系统中的常用分隔符如空格、冒号、逗号等来分割日志消息内容为一组符号标记,并从符号标记中删除所有运算符、标点符号和数字等非字符标记得到一条日志消息的一组单词标记。时间戳和其他字符参数值被保留下来用以构建多特征向量表示。删除非字符标记而保留字符参数值,是因为非字符标记通常代表日志消息中的变量并且不提供语义信息,相反,字符参数值可以提供语义信息并用来挖掘参数值特征。
更为具体的阐述,每条日志消息包含日期、时间戳、进程ID、等级、组件和内容等信息。例如,对于原始日志消息“081109,203518,35,INFO,dfs.FSNamesystem,BLOCK*NameSystem.allocateBlo ck:/mnt/Hadoop/mapred/system/job_200811092030_001/job.jar.blk_-1608999687919862906”,如表1所示,其中,日期是081109,时间戳为203518,进程ID为35,等级为INFO,组件为dfs.FSNamesystem,该条日志消息的内容为BLOCK*NameSystem.allocateBlock:/mnt/Hadoop/mapred/system/job_200811092030_001.blk_-1608999687919862906。
表1原始日志消息组成
对于时间戳,通过最大最小值归一化将时间戳数据缩放至区域[0,1]之间,以便于后续进行时间嵌入,缩放后所有时间戳数据τ仍具有相对不变性;对于日志消息内容,首先将每个大写字母都转换为小写字母,并根据常用分隔符将其拆分为一组符号标记,然后删除非字符标记得到一条日志消息的一组单词标记{block namesystem allocateblock mnthadoop mapred system job job jar blk}。
在一些实施例中,所述特征提取处理包括:S301、对所述第二日志内容进行子词标记化处理,得到所述第二日志内容的基础词汇;S302、对所述基础词汇进行编码处理,得到语义向量;S303、将所述第二时间戳扩展至高维时间嵌入表示,得到时间向量;S304、连接所述时间向量和所述语义向量,得到串联向量;S305、采用窗口划分技术处理所述串联向量,得到所述日志向量序列,所述日志向量序列用于异常检测。本申请不是针对日志模板ID或者日志模板词汇进行的BERT随机向量初始化,而是针对日志内容通过具有子词标记化的BERT编码器对日志消息中的所有词汇进行编码得到词嵌入表示,故而不会出现参数等信息丢失的情况。此外,由于子词标记化可以将表外词汇进一步分解成基础词汇,然后BERT可以根据基础子词集合的含义来学习这些表外词汇的向量表示,有效解决了表外词汇问题,能够更准确的提取日志消息的语义向量。
可选的,所述特征提取主要是针对所述预处理得到的所述第二时间戳τ和所述第二日志内容进行单词标记,挖掘其潜在表示。所述特征提取包括以下内容:子词标记化、语义嵌入、时间嵌入、日志消息表征及日志序列构建。
其中,所述子词标记化处理借用语言建模WORDPIECE的标记化方式,将所述第二日志内容的未知单词标记再进行拆分,有效减少OOV词汇的数量。
具体的,WordPiece将所有字符和符号包含到其基础词汇表中,从基本词汇开始训练语言模型。然后,WORDPIECE不依赖子词对成对出现的频率,而是基于最大化训练数据的选择将OOV词汇拆分成基础子词集。拆分的所述基础子词集将被添加到词汇表中,语言模型再次根据新词汇表进行训练。重复上述步骤,直到达到所需的词汇。例如,罕见的单词“datablockscanner”被拆分为更频繁的子单词:{“data”、“block”、“scan”、“ner”}。通过这种方式,减少了所述OOV词汇的数量,在语义嵌入时,所述OOV词汇的含义将由其子词集中的所有基础词进行表达。
具体的,在所述语义嵌入的处理过程中,本申请利用现成的服务BERT-AS-SERVICE,使用BERT用于对所述子词标记化后的所有词汇进行编码,BERT的简化结构图如图2所示,其包含12层所述TRANSFORMER编码器。嵌入层为序列{CLS,TOK1,TOK2,…,TOKm}中的每一个标记生成一个嵌入向量Ei,其中CLS是日志消息起始标记,TOK1,TOK2,…,TOKm为日志消息的单词标记序列,m指的一条日志消息包含的单词的个数,i指的是单词标记组中的第i个标记。将嵌入向量Ei作为模型输入反馈至TRANSFORMER编码器。
更为具体的阐述,所述TRANSFORMER编码器通过位置嵌入反馈层学习日志标记在日志消息上下文中的位置信息,并使用自注意力层来获取日志消息中标记的自注意力,学习为不同的日志标记分配不同程度的重要性,之后再使用编码层进一步学习单词标记向量。通过使用最后一层编码器生成的词嵌入表示单词标记向量W,将日志消息的语义嵌入计算为其相应词嵌入的平均值,以得到日志消息语义向量其中,d1表示日志消息语义向量的维度,具体公式表示为:
其中,Wcls为起始标记的单词标记向量,Wm为第m个单词标记向量。
具体的,在所述时间嵌入的处理过程中,对所述预处理的得到日志消息的第二时间戳τ进行处理,形成一个时间微分序列T={τ1,τ2,...,τi,...},其中,i指的是时间序列中的时间轴,τi表示所述预处理后所有日志消息在时间轴上第i条日志消息的时间戳。
需要进一步说明的是,所述时间序列的开头的时间戳经所述预处理缩放后的值为0,而所述时间序列的末尾的时间戳经所述预处理缩放后的值为1。
更为具体的阐述,本申请使用一种时间嵌入方法将所述第二时间戳τ扩展到高维时间嵌入表示,挖掘日志消息的周期性和非周期性特征,以更好地表征时间信息。
通过将所述第二时间戳τ扩展到高维时间嵌入表示Etime,公式表示为:
更为具体的阐述,本申请保留了日志消息的参数等信息,直接利用BERT提取原始日志消息内容的嵌入向量,从而获取每个日志消息内容的语义特征。一方面,因为参数被保留了下来,随日志模板词汇一同通过BERT编码器进行了嵌入编码,所以参数的语义信息也可以一同被提取出来形成日志消息内容的语义特征向量。另一方面,针对日志消息的固有时间属性,本申请采用一种时间嵌入方法对日志消息的时间信息进行编码,以获取日志消息的时间特征向量。
需要说明的是,日志消息的顺序为异常检测提供了必要的信息,在某种程度上,日志消息的顺序代表了一个程序的执行路径,错误的执行顺序可能意味着发生了异常。为了捕获日志消息的顺序特征,本申请采用窗口划分技术处理日志消息,以构建日志序列用于异常检测。
具体的,所述日志序列构建的具体操作内容为:将日志消息X的向量表示按照时间顺序使用滑动窗口进行切分,以形成日志向量的序列{X1,X2,…,Xn-1,Xn},其中X表示单独日志消息的临时向量表示 n为一个窗口序列中日志消息的个数。通常,对于滑动窗口内日志消息的个数n的值是固定的,由窗口大小和步长共同决定。
可选的,本发明通过将日志向量按照时间顺序使用滑动窗口切分形成日志向量的序列,序列依然保留了日志消息的顺序,然后使用TRANSFORMER构建异常检测模型来捕捉日志序列中日志消息的上下文信息,也即顺序特征。
在一些实施例中,所述TRANSFORMER模型和所述超球面模型的训练过程,包括以下步骤:S11、获取历史日志消息的所述第一时间戳和所述第一日志内容;S12、对所述第一时间戳和所述第一日志内容进行预处理,得到所述第二时间戳和所述第二日志内容;S13、对所述第二时间戳和第二日志内容进行特征提取处理,得到所述日志向量序列;S14、根据所述日志向量序列,进行模型训练,得到所述TRANSFORMER模型和所述超球面模型。本申请构建的是一个无监督异常检测方法,利用未标注的历史日志消息训练好超球面模型后直接对待检测日志消息进行异常检测,无需获取大量标注数据,大大的降低了训练成本;同时,利用TRANSFORMER构建异常检测模型,比起长短期记忆网络(Long Short-Term Memory,LSTM)等循环神经网络(Recurrent Neural Network,RNN)模型,解决了序列的长程依赖问题,具有更低的计算复杂度和计算成本。
在离线训练阶段,所述历史日志消息经过所述预处理和所述特征提取后,离线进行TRANSFORMER模型和超球面模型的训练。通过构建一个无监督异常检测模型,利用未标注的历史数据就可以训练超球面模型,以学习正常日志序列的紧凑表示,针对新的未知数据,依赖训练好的超球面决策模型可以直接进行异常检测,由于不需要大量标签数据用于训练,大大的降低了训练成本。
具体的,本申请以所述日志向量序列为处理单元,将所述日志向量序列输入所述TRANSFORMER模型中,通过自动学习不同日志消息的重要性以及日志消息序列中蕴含的日志顺序异常规律,得到所述日志序列向量;所述超球面模型将所述日志序列向量作为输入,进一步捕获正常日志序列和异常日志序列之间的内在差异,用于异常检测决策。
更为具体的阐述,所述TRANSFORMER模型是为序列到序列的编码解码处理而设计的,可以并行处理任意长度的序列,克服了基于RNN模型的局限性。如图3所示,所述TRANSFORMER模型包括位置嵌入模块和TRANSFORMER编码器模块。
需要进一步说明的是,所述位置嵌入模块包括以下内容:
日志序列的顺序传达了异常检测任务的重要信息。在特征提取部分,自然语言处理中一种基于TRANSFORMER结构的大型预训练语言模型(Bidirectional EncoderRepresentation from TRANSFORMERS,BERT)编码器已经将一条日志消息表示为一个固定维度的向量,其中具有相似含义的日志消息彼此更接近。但是,这些向量不包含日志序列中日志消息的相对位置信息。
一个窗口序列的所有日志消息的位置嵌入构成位置嵌入的序列{P1,P2,…,Pn-1,Pn},n为窗口中日志消息的总数量。然后,将窗口序列中位置t处的日志向量Xt与对应位置的相加,并且将的序列将用于作为TRANSFORMER编码器模型的输入。这样,模型就可以学习到序列中每条日志消息的相对位置信息,并且可以区分不同位置的日志消息。
需要进一步说明的是,所述TRANSFORMER编码器模块包括以下内容:
所述TRANSFORMER编码器模块包括多头自注意力层和前馈网络层。所述多头自注意力层通过训练查询矩阵和键值矩阵,为具有不同注意力模式的每个日志消息计算注意力得分矩阵。所述多头自注意力层扩展了模型关注不同位置和学习不同表征的能力。所述多头自注意力层的输出被反馈到一个完全连接的所述前馈网络层(FEED-FORWARD NETWORK,FFN),所述前馈网络层包含两个全连接层,以达到不同注意力分数的组合。最后,所述TRANSFORMER编码器模块的输出被馈送到Dropout层和归一化层,得到最终日志消息的潜在表示序列{Z1,Z2,…,Zn-1,Zn}。
其中,Zi代表窗口序列中第i个日志消息的潜在表示,n为窗口中日志消息的总数量。
更为具体的阐述,本申请通过构建所述超球面模型进一步学习紧凑的日志序列表示,以捕获正常日志序列和异常日志序列之间的内在差异,并用于异常检测。所述超球面模型包括以下内容:
首先,通过计算所有训练数据的所述日志序列向量的均值以获取超球面的中心表示Rc[c1,c2,…,cd],公式表示为:
然后,通过尽可能减少Rs和Rc之间的差异来学习紧凑的日志序列表示,本申请通过均方误差(MEAN SQUARED ERROR,MSE)来表示这种差异Lossdist,公式表示为:
可选的,通过使用带有超球面损失函数的所述TRANSFORMER模型,不仅可以自动学习不同日志消息的重要性,还可以学习紧凑的日志序列表示,以捕获正常日志序列和异常日志序列之间的内在差异,更好的挖掘日志消息序列潜在特征表示。
为了评估本申请提出的所述TRANSFORMER模型和所述超球面模型的性能,在两个公共数据集上开展了广泛实验,即超级计算机(BLUEGENE/L,BGL)和THUNDERBIRD,这些数据集也在现有工作中进行了广泛研究。
其中,BGL数据集包含从劳伦斯利弗莫尔国家实验室的BLUEGENE/L超级计算机收集的4,747,963条日志消息,其中348,460条日志被标记为异常。THUNDERBIRD是从桑迪亚国家实验室的真实世界的超级计算机收集的211,212,192条日志。本申请同现有方法LOGTAD一样,对于THUNDERBIRD日志数据仅使用前500万条日志消息,且对两个数据集均剔除了单词标记小于5的日志消息,其详细信息如表2所示。
表2数据集的详细信息
在一些实施例中,所述超球面模型通过获取正常日志序列和异常日志序列之间的差异,得到异常检测结果。
在一些实施例中,所述S5,包括:S501、计算所述待检测日志消息的异常分数,所述异常分数为所述日志序列向量至所述超球面模型的球心的距离;S502、设置检测阈值,所述检测阈值为所述超球面模型的半径;S503、比较所述异常分数与所述检测阈值的大小,得到比较结果;S504、根据所述比较结果,得到异常检测结果。
在一些实施例中,所述S504,包括:
当所述异常分数大于所述检测阈值时,则所述待检测日志消息的序列为异常序列;
当所述异常分数小于或等于所述检测阈值时,则所述待检测日志消息的序列为正常序列。
在线检测阶段对待检测日志消息经过所述预处理和所述特征提取处理后,使用训练好的所述TRANSFORMER模型和所述超球面模型进行异常检测,预测日志序列是否异常,一旦检测到异常,就会发出警报。
具体的,先计算待检测日志消息的异常分数A,即日志序列向量R's到超球面中心Rc的距离,公式表示为:
然后,基于超球面决策模型进行异常判断,并报告异常检测结果。
为了验证提出方法的合理性及先进性,将该异常检测方法分别与LOGTAD和LOGBERT两种无监督方法进行比较。需要指出的是,在进行数据预处理时,两个现有技术均剔除了单词标记小于5的日志消息,以及采用窗口大小为20,步长为4的滑动窗口划分日志序列,同时保证了用于训练模型的日志序列均达12万条日志序列。其他实验细节包括TRANSFORMER编码器层数为2,多头自注意力层的个数为12,隐藏层维度为2048,语义嵌入维度d1为768,时间嵌入维度d2为240。
另外,LOGTAD是一种基于长短时记忆网络(LONG SHORT-TERM MEMORY)的无监督跨系统日志异常检测方法。该方法采用WORD2VEC方法对解析后的日志模板进行向量化,然后使用正样本作为长短时记忆网络的输入训练一个超球面,并通过对抗域网络混合源域与目标域数据,使不同系统的日志数据在超球面上具有相似的分布,最后利用超球面检测目标域的未知日志数据。LOGBERT是一种基于BERT结构的多任务无监督日志异常检测方法。该方法采用BERT对解析后的日志模板ID进行随机初始向量化得到日志向量,然后通过结合预测日志序列掩码ID与最小化超球面两个自我监督的训练任务,学习正常日志序列的模式,违反正常模式的日志序列将判定为异常。
通过准确率、召回率、F1-分数进行构建模型比较其性能,结果如图4、图5所示。对于BGL数据集,本申请获得了0.9654的F1分数,而LOGTAD的F1分数为0.9419,LOGBERT的F1分数为0.8648;对于THUNDERBIRD数据集,本申请获得了0.9252的F1分数,而LOGTAD的F1分数为0.8458,LOGBERT的F1分数为0.8289。在BGL和THUNDERBIRD两个数据集的实验结果表示,本申请的异常检测效果优于现有无监督技术LOGTAD和LOGBERT。
第二方面,本申请提供一种日志异常检测装置,图7为本申请提供的日志异常检测装置的示意图,如图7所示,所述装置包括:
获取模块11,用于获取待检测日志消息的第一时间戳和第一日志内容;
处理模块12,用于对所述第一时间戳和所述第一日志内容进行预处理,得到第二时间戳和第二日志内容;对所述第二时间戳和第二日志内容进行特征提取处理,得到日志向量序列;
检测模块13,用于将所述日志向量序列输入训练好的TRANSFORMER模型,得到日志序列向量;将所述日志序列向量输入训练好的超球面模型,得到异常检测结果。
第三方面,本申请提供一种终端设备,图8为本申请提供的终端设备的示意图,如图8所示,包括存储器22、处理器21;
所述存储器22,用于存储计算机程序;
所述处理器21,用于读取所述存储器22中的计算机程序并执行所述日志异常检测方法对应的操作。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器21执行时用于实现所述日志异常检测方法。
需要进一步说明的是,本申请构建的日志多特征方式和超球面模型可以结合任意异常检测算法使用。
除此之外,本申请涉及的方法还可以拓展到KPI异常检测领域,如KPI时序数据的时间嵌入等。
应该理解的是,虽然上述实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种日志异常检测方法,其特征在于,包括以下步骤:
S1、获取待检测日志消息的第一时间戳和第一日志内容;
S2、对所述第一时间戳和所述第一日志内容进行预处理,得到第二时间戳和第二日志内容;
S3、对所述第二时间戳和第二日志内容进行特征提取处理,得到日志向量序列;
S4、将所述日志向量序列输入训练好的TRANSFORMER模型,得到日志序列向量;
S5、将所述日志序列向量输入训练好的超球面模型,得到异常检测结果。
2.根据权利要求1所述的方法,其特征在于,
对所述第一时间戳进行预处理,包括以下步骤:
通过最大最小值归一化将所述第一时间戳进行缩放处理,得到第二时间戳;和/或,
对所述第一日志内容进行预处理,包括以下步骤:
S201、将所述第一日志内容中的大写字母转换为小写字母,得到更新日志内容;
S202、将所述更新日志内容分隔为符号标记,并删除所述符号标记中的非字符标记,得到第二日志内容。
3.根据权利要求1所述的方法,其特征在于,所述特征提取处理包括:
S301、对所述第二日志内容进行子词标记化处理,得到所述第二日志内容的基础词汇;
S302、对所述基础词汇进行编码处理,得到语义向量;
S303、将所述第二时间戳扩展至高维时间嵌入表示,得到时间向量;
S304、连接所述时间向量和所述语义向量,得到串联向量;
S305、采用窗口划分技术处理所述串联向量,得到所述日志向量序列,所述日志向量序列用于异常检测。
4.根据权利要求1所述的方法,其特征在于,所述超球面模型通过获取正常日志序列和异常日志序列之间的差异,得到异常检测结果。
5.根据权利要求4所述的方法,其特征在于,所述S5,包括:
S501、计算所述待检测日志消息的异常分数,所述异常分数为所述日志序列向量至所述超球面模型的球心的距离;
S502、设置检测阈值,所述检测阈值为所述超球面模型的半径;
S503、比较所述异常分数与所述检测阈值的大小,得到比较结果;
S504、根据所述比较结果,得到异常检测结果。
6.根据权利要求5所述的方法,其特征在于,所述S504,包括:
当所述异常分数大于所述检测阈值时,则所述待检测日志消息的序列为异常序列;
当所述异常分数小于或等于所述检测阈值时,则所述待检测日志消息的序列为正常序列。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述TRANSFORMER模型和所述超球面模型的训练过程,包括以下步骤:
S11、获取历史日志消息的所述第一时间戳和所述第一日志内容;
S12、对所述第一时间戳和所述第一日志内容进行预处理,得到所述第二时间戳和所述第二日志内容;
S13、对所述第二时间戳和第二日志内容进行特征提取处理,得到所述日志向量序列;
S14、根据所述日志向量序列,进行模型训练,得到所述TRANSFORMER模型和所述超球面模型。
8.一种日志异常检测装置,其特征在于,所述装置包括:
获取模块,用于获取待检测日志消息的第一时间戳和第一日志内容;
处理模块,用于对所述第一时间戳和所述第一日志内容进行预处理,得到第二时间戳和第二日志内容;对所述第二时间戳和第二日志内容进行特征提取处理,得到日志向量序列;
检测模块,用于将所述日志向量序列输入训练好的TRANSFORMER模型,得到日志序列向量;将所述日志序列向量输入训练好的超球面模型,得到异常检测结果。
9.一种终端设备,其特征在于,包括存储器、处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于读取所述存储器中的计算机程序并执行如权利要求1-7任一项所述的方法对应的操作。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的日志异常检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210950614.0A CN115454788A (zh) | 2022-08-09 | 2022-08-09 | 一种日志异常检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210950614.0A CN115454788A (zh) | 2022-08-09 | 2022-08-09 | 一种日志异常检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454788A true CN115454788A (zh) | 2022-12-09 |
Family
ID=84296432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210950614.0A Pending CN115454788A (zh) | 2022-08-09 | 2022-08-09 | 一种日志异常检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454788A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115860008A (zh) * | 2023-02-24 | 2023-03-28 | 山东云天安全技术有限公司 | 用于异常日志信息确定的数据处理方法、电子设备及介质 |
-
2022
- 2022-08-09 CN CN202210950614.0A patent/CN115454788A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115860008A (zh) * | 2023-02-24 | 2023-03-28 | 山东云天安全技术有限公司 | 用于异常日志信息确定的数据处理方法、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111160017B (zh) | 关键词抽取方法、话术评分方法以及话术推荐方法 | |
CN111950269A (zh) | 文本语句处理方法、装置、计算机设备和存储介质 | |
CN113704476B (zh) | 目标事件抽取数据处理系统 | |
CN112488896B (zh) | 应急预案生成方法、装置、计算机设备及存储介质 | |
CN111859911A (zh) | 图像描述文本生成方法、装置、计算机设备及存储介质 | |
CN113468433B (zh) | 目标事件抽取数据处理系统 | |
CN113722461B (zh) | 目标事件抽取数据处理系统 | |
CN115599901B (zh) | 基于语义提示的机器问答方法、装置、设备及存储介质 | |
CN112766319A (zh) | 对话意图识别模型训练方法、装置、计算机设备及介质 | |
CN111259113A (zh) | 文本匹配方法、装置、计算机可读存储介质和计算机设备 | |
CN112966088B (zh) | 未知意图的识别方法、装置、设备及存储介质 | |
CN116402630B (zh) | 一种基于表征学习的财务风险预测方法及系统 | |
CN115454788A (zh) | 一种日志异常检测方法、装置、设备及存储介质 | |
CN116432655A (zh) | 基于语用知识学习的少样本命名实体识别方法和装置 | |
CN114925702A (zh) | 文本相似度识别方法、装置、电子设备及存储介质 | |
CN115526234A (zh) | 基于迁移学习的跨域模型训练与日志异常检测方法及设备 | |
CN113553847A (zh) | 用于对地址文本进行解析的方法、装置、系统和存储介质 | |
CN115221332A (zh) | 一种危化品事故事理图谱的构建方法与系统 | |
CN117332411B (zh) | 一种基于Transformer模型的异常登录检测方法 | |
CN109992778B (zh) | 基于机器学习的简历文档判别方法及装置 | |
CN117093682A (zh) | 意图识别方法、装置、计算机设备及存储介质 | |
CN111400340A (zh) | 一种自然语言处理方法、装置、计算机设备和存储介质 | |
CN116340512A (zh) | 虚假评论的认定方法、装置、设备及介质 | |
CN113449528B (zh) | 一种地址要素提取方法、装置、计算机设备和存储介质 | |
CN113722462B (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 |