掌桥专利:专业的专利平台
掌桥专利
首页

一种日志解析方法

文献发布时间:2023-06-19 18:37:28


一种日志解析方法

技术领域

本发明涉及日志解析领域,尤其是涉及一种日志解析方法。

背景技术

日志语句是由软件开发人员设计的,携带有关软件系统运行信息的数据。通过阅读日志,软件系统操作者和管理员可以随时监控软件状态,检测异常,定位软件错误并解决等。随着现代软件系统变得比以前更加复杂,分析人员难以人工分析每日运行产生的海量数据,因此,需要一种自动化日志分析技术。由于大多数日志分析工具都接受结构化输入,因此自动化日志分析的基本步骤是日志解析。给定原始消息,日志解析器识别一组字段(例如,详细级别、日期、时间)和消息内容,而后者表示为具有相应参数(即变量)的结构化事件模板(即常量)。

现有的日志解析技术都是基于句法分析,使用浅层特征(例如词长、日志长度、频率)进行分析,而没有考虑到日志里包含的语义信息。这种缺失的语义信息会阻碍自动化系统异常检测,或是影响到运维人员对系统故障进行根因推断。缺失的语义信息主要包含三种。第一,对重要的词关注不足。基于语法的日志解析器只区分参数和模板,但将每条日志消息视为一个字符序列,而不关注特殊的技术概念(例如容器、实例)。第二,对单条日志消息所包含的语义关注不足。虽然人类很少在沟通中使用数字等参数,但日志消息中的参数很重要,具有特定的含义。然而,基于句法的日志解析器将每个参数视为无意义的字符串。第三,缺乏对日志消息之间的关联分析。所有现有的日志解析方法都是独立处理每条日志消息,忽略日志消息之间的关系。但是,历史日志可以提供参数的领域知识,帮助解决后续日志中相同参数的隐含语义。

需要说明的是,在上述背景技术部分公开的信息仅用于对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本发明的目的在于解决提高日志消息解析精确度的问题,提供一种日志解析方法。

为实现上述目的,本发明采用以下技术方案:

本发明提供了一种日志解析方法,包括以下步骤:

S1:建立日志解析模型,所述日志解析模型包括语义挖掘器和联合解析器;

S2:将待解析的日志输入所述日志解析模型,所述语义挖掘器接收日志消息,并挖掘及输出日志中的显性实例级别语义和消息级别语义;所述联合解析器根据语义挖掘器的输出获得日志中的隐性实例级别语义,并将显性实例级别语义和隐性实例级别语义合并到最终的实例级别语义中;

S3:输出解析结果,所述结果包括去掉实例后的日志概念化模板、最终的实例级别语义、孤立概念及孤立实例;

其中所述实例指日志消息中的变量,所述实例级别语义包括实例及其所指向的概念的组合,所述显性实例级别语义指实例级别语义中,实例其所指向的概念共存于一个日志消息;所述隐性实例级别语义指实例级别语义中实例其所指向的概念不共存于一个日志消息,所述消息级别语义包括出现在日志消息中的概念的组合,所述孤立概念和孤立实例分别指未能相互匹配的概念和实例。

在一些实施例中,步骤S2中,所述语义挖掘器包括上下文编码器、语义配对器、语义打分器,所述上下文编码器用于获取基于上下文的单词向量表示,所述语义配对器用于根据所述单词向量表示提取显性实例级别语义,识别日志消息中单词的实例及其所指向的概念的组合;所述语义打分器用于根据所述单词向量表示确定每个单词的语义角色,所述每个单词的语义角色为以下之一:概念、实例或既非概念也非实例。

在一些实施例中,所述上下文编码器由双向长短期记忆网络构成,所述双向长短期记忆网络堆叠了前向长短期记忆网络和后向长短期记忆网络的输出。

在一些实施例中,所述上下文编码器利用卷积神经网络来提取每个单词的字符级特征以及单词局部特征,并将两种特征融合输入上下文编码器,所述上下文编码器的输出由以下公式表示:

其中word

在一些实施例中,所述语义配对器提取实例级别语义的过程包括以下步骤:对于句子S=w_1,w_2,...,w_n中的第i个单词w_i,语义配对器确定前一个单词w_j是否与单词w_i有实例级别语义关系,根据所述模型的学习分数来对每个候选实例级别语义的置信度得分进行排名,分数最高的被选作显性实例级别语义,由以下公式表示:

其中,FFNN

在一些实施例中,对语义挖掘器训练过程包括:通过最小化损失函数,所述模型学习每个标记的实例级别语义和语义角色,并使用从双向长短期记忆网络生成的共享上下文表示,由以下公式表示:

其中,Mi'表示语义打分器的预测概率分布,Pi'表示语义配对器的预测概率分布,CELoss()表示交叉熵损失函数。

在一些实施例中,步骤S2还包括以下步骤:联合解析器根据语义挖掘器的输出,通过使用知识数据库来获得隐性实例级别语义,所述知识数据库包括所述显性实例级别语义。

在一些实施例中,所述获得隐性实例级别语义包括以下步骤:联合解析器检查实例在知识数据库中是否有对应的概念,以发现隐性实例级别语义;所述知识数据库通过合并从语义挖掘器获取的新发现的实例级别语义来维护。

在一些实施例中,合并从语义挖掘器获取的新发现的实例级别语义,将其添加进入知识数据库。

本发明还提供一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现上述的方法的步骤。

本发明具有如下有益效果:

本发明通过日志解析模型中的语义挖掘器挖掘日志中的显性实例级别语义和消息级别语义,联合解析器根据语义挖掘器的输出获得日志中的隐性实例级别语义的设置,能够使日志解析过程关注于技术概念及日志消息中的实例,进而输出包括去掉实例后的日志概念化模板、最终的实例级别语义、孤立概念及孤立实例的结果,解决日志解析过程中语义信息缺失的问题,从而提高日志消息解析精确度。

本发明实施例中的其他有益效果将在下文中进一步述及。

附图说明

图1是本发明实施例中一种日志解析方法的流程图;

图2是本发明实施例中日志解析模型示意图;

图3是本发明实施例中语义挖掘器示意图。

具体实施方式

以下对本发明的实施方式做详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

为了捕捉日志内部的语义信息,现有技术LogRobust(一种基于日志的异常检测算法)在对日志进行编码的时候考虑了每个词的权重信息,这种方法倾向于为稀有词分配高关注权重,但常见的技术术语也可能包含重要信息。为了更好的解析日志,以及挖掘上述三种语义信息,本发明实施例提出的SemParser,一种基于语义感知的日志解析方法。其中,日志中重要的词和单条日志消息包含的语义信息由语义挖掘器得到;而联合解析器通过对日志消息之间的关联分析得到日志消息之间的隐含语义。

对本发明实施例的概述如下:

如图1所示,本发明实施例提供了一种日志解析方法,包括以下步骤:

S1:建立日志解析模型,日志解析模型包括语义挖掘器和联合解析器;

S2:将待解析的日志输入日志解析模型,语义挖掘器接收日志消息,并挖掘及输出日志中的显性实例级别语义和消息级别语义;联合解析器根据语义挖掘器的输出获得日志中的隐性实例级别语义,并将显性实例级别语义和隐性实例级别语义合并到最终的实例级别语义中;

具体地,语义挖掘器包括上下文编码器、语义配对器、语义打分器,上下文编码器用于获取基于上下文的单词向量表示,语义配对器用于根据单词向量表示提取显性实例级别语义,识别日志消息中单词的实例及其所指向的概念的组合;语义打分器用于根据单词向量表示确定每个单词的语义角色,每个单词的语义角色为以下之一:概念、实例或既非概念也非实例。

具体地,上下文编码器由双向长短期记忆网络构成,双向长短期记忆网络堆叠了前向长短期记忆网络和后向长短期记忆网络的输出。

进一步地,上下文编码器利用卷积神经网络来提取每个单词的字符级特征以及单词局部特征,并将两种特征融合输入上下文编码器,上下文编码器的输出由以下公式表示:

其中word

更进一步地,语义配对器提取实例级别语义的过程包括以下步骤:对于句子S=w_1,w_2,...,w_n中的第i个单词w_i,语义配对器确定前一个单词w_j是否与单词w_i有实例级别语义关系,根据模型的学习分数来对每个候选实例级别语义的置信度得分进行排名,分数最高的被选作显性实例级别语义,由以下公式表示:

其中,FFNN

更进一步地,对语义挖掘器训练过程包括:通过最小化损失函数,模型学习每个标记的实例级别语义和语义角色,并使用从Bi-LSTM网络生成的共享上下文表示,由以下公式表示:

其中,Mi'表示语义打分器的预测概率分布,Pi'表示语义配对器的预测概率分布,CELoss()表示交叉熵损失函数。

具体地,还包括以下步骤:联合解析器根据语义挖掘器的输出,通过使用知识数据库来获得隐性实例级别语义,知识数据库包括显性实例级别语义。

进一步地,获得隐性实例级别语义包括以下步骤:联合解析器检查实例在知识数据库中是否有对应的概念,以发现隐性实例级别语义;知识数据库通过合并从语义挖掘器获取的新发现的实例级别语义来维护。

更进一步地,合并从语义挖掘器获取的新发现的实例级别语义,将其添加进入知识数据库。

S3:输出解析结果,结果包括去掉实例后的日志概念化模板、最终的实例级别语义、孤立概念及孤立实例;

其中实例指日志消息中的变量,实例级别语义包括实例及其所指向的概念的组合,显性实例级别语义指实例级别语义中,实例其所指向的概念共存于一个日志消息;隐性实例级别语义指实例级别语义中实例其所指向的概念不共存于一个日志消息,消息级别语义包括出现在日志消息中的概念的组合,孤立概念和孤立实例分别指未能相互匹配的概念和实例。

本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现上述的方法的步骤。

实施例:

日志解析模型SemParser的整体框架如图2所示,主要由语义挖掘器和联合解析器两个部分组成。

本发明实施例侧重于从语义上解析日志,可以进一步将其分为消息级别语义和实例级别语义。

消息级别语义被定义为出现在日志消息中的一组概念(即技术术语),例如“容器”。

本发明实施例使用“实例”来表示日志消息中的变量,实例级别语义由一组(概念,实例)组合(即CI对,包含语义挖掘器得到的日志消息内显性CI对和联合解析器得到的日志消息之间隐性CI对)来表示,CI对描述了实例所指向的概念语义。除此之外,本发明实施例提供了一个知识数据库来保存从历史日志中检测到的CI对。最终,该方法采用字符替换输出去掉实例后的日志概念化模板作为系统事件来辅助下游应用分析,未能相互匹配的概念和实例被认为是“孤立概念”和“孤立实例”输出。

如图3所示,语义挖掘器旨在通过解决两个子任务来挖掘实例级别和消息级别的语义:(1)找到CI对,(2)将每个词分为语义角色{概念,实例,无}三类中的一类。该专利提出了一个包含三个模块的端到端模型来同时解决两个子任务。首先,讲日志消息输入到上下文编码器中来获取基于上下文的单词向量表示。然后,将该向量分别送入语义配对器和语义打分器里挖掘潜在CI对和语义角色。最后,该方法联合优化语义配对器和语义打分器的损失函数,共同学习两个子任务,达到挖掘语义的目的。

本发明实施例中的上下文编码器是由一个双向LSTM(长短期记忆网络)构成的,其堆叠了前向LSTM和后向LSTM的输出。考虑到日志中含有大量的新词汇问题(例如,函数名称、单元格ID,请求ID),导致性能急剧下降,额外设计了两个与单词相关的附加特征:用卷积神经网络来提取每个单词的字符级特征(例如,字母顺序),以及包含形状、长度和其他形态特征的一组单词局部特征(例如,单词语义),并将两种特征融合输入上下文编码器,其中word

语义配对器旨在提取实例级别语义,识别日志消息中单词的CI对,其中识别指的是CI对配对。这个问题被抽象成为一个多分类器问题:对于句子S=w_1,w_2,...,w_n中的第i个单词w_i,匹配器确定前一个单词w_j(0

其中,FFNN

除了配对器,本发明实施例还提供了一个语义打分器来确定每个词的语义角色{概念,实例,无}。语义角色十分重要,首先,通过提取的概念来感知消息级别语义。其次,如果实例的相应概念没有出现在单个消息中,则无法通过配对匹配器解析某些实例级别的语义,称之为隐性实例级别语义。在这种情况下,需要存储实例以供进一步处理。

ScoreM

其中,FFNN

在训练过程中,单独对语义挖掘器训练后再结合联合解析器进行使用。上下文编码后的结果会送到语义配对器和打分器中处理,语义挖掘器会同时优化语义配对器和语义打分器两个子任务。通过最小化损失函数,模型能学习每个标记的CI对和语义角色,并使用从bi-LSTM(双向长短期记忆网络)网络生成的共享上下文表示,其中双向网络可以捕捉前后文信息,所以可以生成上下文表示。

本发明实施例中联合解析器利用语义挖掘器的输出(1)使用知识数据库来获得隐性实例级别语义,知识数据库包括一系列高置信度的显性实例级别语义,(2)解析后的日志消息(概念化模板)。应用一种新颖的知识数据库辅助方法来解决概念和实例不共存于一个日志消息中的隐性实例级别语义问题。假设已经在历史日志中识别出一个CI对,那么就能够在后续日志中识别出此类实例的语义,即使后续日志没有明确包含此类对信息。

知识辅助方法在处理日志时通过合并从语义挖掘器获取的新发现的CI对来维护高质量的知识数据库。为了保证知识的质量,只添加了高置信度的CI对。联合解析器检查孤立实例在高质量知识库中是否有对应的概念,以发现隐含的CI对。因此,如果找到日志消息的新CI对,将被存储。通过这种方式,将显式CI对和新的隐式CI对合并到最终的CI对中。

本发明实施例旨在通过挖掘日志消息的语义信息进行解析,从而帮助一系列日志分析下游任务。在进行高精度挖掘语义信息的同时,也保证该语义信息可以服务于异常检测,故障识别等任务,因此能够在以下几个方面优于现有技术。

相比传统利用规则来挖掘语义,本发明实施例提供的日志解析方法不仅可以从日志消息中提取高质量,而且还可以提取全面的实例级别语义。尽管只在50个带标注样本上微调了模型,结果表明本发明实施例的框架具有从跨系统日志消息中捕获语义的强大能力。

相比于基于形态学的日志解析方法,本发明实施例提供的日志解析方法可以更好的服务于下游任务,比如异常检测和故障识别等任务。在其精确度上的明显优势归因于提取的语义信息,特别是实例级别语义。以前的研究仅使用日志模板序列来自动检测异常,缺少重要的语义。在实际上运维过程中,该发明可以减少运维人员的投入,提高软件可靠性。

综合上述两点考虑,本发明实施例提供的日志解析方法,相比于以往的技术,可以达到更精确的日志分析。与其他现有方法在基于日志的系统异常检测任务下对比如表1所示。

表1

如表1所示,经过本专利解析的日志数据,在多个下游异常检测方法下都能获得一定程度(8.27%到16.58%不等)的提升。

基于上述工作原理的基础上,还可提供以下变形方案:

第一种变形方案是只考虑单条日志内部的语义信息,不考虑多条日志消息之间的关联(即仅采用语义挖掘器)。这样的变形方案会出现遗漏隐式语义的问题,即有部分语义无法被解析出来(第二条日志消息的94e1227实例),从而导致下游任务信息受限。

第二种变形方案是预先定义好所有的概念(例如cell,project),将每个实例选择到对应概念中(选择一个实例是对应的是cell还是project)。这样的方案里,概念的数量是不确定的,预先定义的概念需要一系列额外的专家知识,如何保证覆盖完所有可能出现的概念成为一个大挑战。除此之外,软件更新和系统迁移后带来的新的概念也会使该变形方案无法处理。

本发明实施例提供的是一种新颖的基于语义的日志解析方法,只需要少量的标注,即可学习到丰富的语义信息。语义信息挖掘最初在自然语言理解领域被研究得比较广泛,但是在日志分析里并不常见。随着云系统产生的数据更加丰富,基于深度学习的语义挖掘最近才得以使用。

本发明实施例提供的日志解析方法理论上可以应用于常见文本的知识挖掘,比如说公开技术论坛信息,或是其他金融领域的信息。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上内容是结合具体/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。在本说明书的描述中,参考术语“一种实施例”、“一些实施例”、“优选实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。尽管已经详细描述了本发明的实施例及其优点,但应当理解,在不脱离专利申请的保护范围的情况下,可以在本文中进行各种改变、替换和变更。

技术分类

06120115636168