CN115034220B - 一种异常日志检测方法、装置、电子设备及存储介质 - Google Patents

一种异常日志检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115034220B
CN115034220B CN202210964876.2A CN202210964876A CN115034220B CN 115034220 B CN115034220 B CN 115034220B CN 202210964876 A CN202210964876 A CN 202210964876A CN 115034220 B CN115034220 B CN 115034220B
Authority
CN
China
Prior art keywords
abnormal
log
vocabulary
template
vector
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
Application number
CN202210964876.2A
Other languages
English (en)
Other versions
CN115034220A (zh
Inventor
赵利强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210964876.2A priority Critical patent/CN115034220B/zh
Publication of CN115034220A publication Critical patent/CN115034220A/zh
Application granted granted Critical
Publication of CN115034220B publication Critical patent/CN115034220B/zh
Priority to PCT/CN2023/071830 priority patent/WO2024031930A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Machine Translation (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种异常日志检测方法、装置、电子设备及存储介质,涉及日志处理领域,方法包括:获取日志信息;利用由异常词汇构建的有限状态自动机检测日志信息中包含的目标异常词汇,并利用动态规划算法及目标异常词汇对应的预设异常值确定日志信息对应的总异常值;当确定总异常值大于第一预设阈值时,判定日志信息为异常日志;可使用由异常词汇构建的有限状态自动机对纯文本日志信息进行异常检测,并避免现有方法仅能对具有时序数据的日志数据进行检测的情况,此外还可利用该自动机提升异常日志检测的效率,并能够降低异常日志检测对计算资源的消耗量,以确保该检测功能可配置在计算资源更低的硬件设备中,进而可扩展异常日志检测的适用场景。

Description

一种异常日志检测方法、装置、电子设备及存储介质
技术领域
本发明涉及日志处理领域,特别涉及一种异常日志检测方法、装置、电子设备及计算机可读存储介质。
背景技术
日志信息是一种广泛可用的数据资源,用于记录各种软件系统运行时的系统状态和关键事件。开发人员常常利用日志信息来查看系统运行状态、检测异常、推导故障发生原因。然而,随着现代计算机系统规模和复杂性的增加,日志信息爆炸式增长,这也为日志信息的高效检测提出了挑战。
相关技术中,通常采用基于主成分分析的方法或基于深度学习的方法对日志信息中的时序参数进行检测,以提取出日志信息中的异常信息。然而,并非所有的异常日志都能通过时序数据发现问题,许多错误日志并不包含时序变量而是属于纯文本数据;此外,深度学习模型训练时往往需要消耗大量的计算资源,各类词向量对存储资源占据较多,应对大型流式日志数据时实时计算性能也常常捉襟见肘。
发明内容
本发明的目的是提供一种异常日志检测方法、装置、电子设备及计算机可读存储介质,可使用由异常词汇构建的有限状态自动机对日志信息进行异常检测,能够提升日志异常检测的效率并降低对计算资源的占用率。
为解决上述技术问题,本发明提供一种异常日志检测方法,包括:
获取日志信息;
利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇,并利用动态规划算法及所述目标异常词汇对应的预设异常值确定所述日志信息对应的总异常值;
当确定所述总异常值大于第一预设阈值时,判定所述日志信息为异常日志。
可选地,所述有限状态自动机为AC自动机,所述利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇,并利用动态规划算法及所述目标异常词汇对应的预设异常值确定所述日志信息对应的总异常值,包括:
将所述日志信息中的字符依次输入至所述AC自动机中进行匹配,确定所述字符在所述AC自动机中对应的节点及所述节点对应的状态;
当所述状态具有对应的异常词汇时,通过失败指针查找所述节点与根节点间的其他节点对应的其他异常词汇;
将所述状态对应的异常词汇和所述其他异常词汇设置为所述字符对应的目标异常词汇,并利用动态规划算法及所述字符的目标异常词汇对应的预设异常值确定所述总异常值。
可选地,所述利用动态规划算法及所述字符的目标异常词汇对应的预设异常值确定所述总异常值,包括:
利用所述动态规划算法及所述字符的目标异常词汇对应的预设异常值以如下方式计算所述总异常值:
Figure 782276DEST_PATH_IMAGE001
其中,s表示所述日志信息的字符串,
Figure 854310DEST_PATH_IMAGE002
Figure 705591DEST_PATH_IMAGE003
表示所述字符串中的第n-1个字符和第n个字符,
Figure 417326DEST_PATH_IMAGE004
Figure 455689DEST_PATH_IMAGE005
表示所述
Figure 261971DEST_PATH_IMAGE002
和所述
Figure 685868DEST_PATH_IMAGE003
对应的总异常值,
Figure 552193DEST_PATH_IMAGE006
表示所述
Figure 546694DEST_PATH_IMAGE003
字符对应的状态,
Figure 422246DEST_PATH_IMAGE007
表示所述
Figure 185803DEST_PATH_IMAGE006
不具有对应的目标异常词汇,
Figure 239341DEST_PATH_IMAGE008
表示所述
Figure 721138DEST_PATH_IMAGE006
具有对应的目标异常词汇,
Figure 134801DEST_PATH_IMAGE009
表示所述
Figure 18444DEST_PATH_IMAGE003
字符的目标异常词汇对应的预设异常值的总和。
可选地,在利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇之前,还包括:
利用所述日志信息生成待检测日志向量,并计算所述待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值;
当确定所述相似度值小于第二预设阈值时,进入所述利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇的步骤。
可选地,所述计算所述待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值,包括:
按照如下方式计算所述待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值:
Figure 741418DEST_PATH_IMAGE010
其中
Figure 710511DEST_PATH_IMAGE011
表示所述待检测日志向量,
Figure 396707DEST_PATH_IMAGE012
表示所述正常日志向量,
Figure 400435DEST_PATH_IMAGE013
表示所述相似度值,
Figure 795776DEST_PATH_IMAGE014
Figure 252165DEST_PATH_IMAGE015
分别表示待检测日志向量中的第i个词汇和所述正常日志向量中的第i个词汇;当
Figure 7631DEST_PATH_IMAGE014
Figure 334707DEST_PATH_IMAGE015
相等时,
Figure 150217DEST_PATH_IMAGE016
的值为1,当
Figure 343170DEST_PATH_IMAGE014
Figure 902327DEST_PATH_IMAGE017
不相等时,
Figure 615068DEST_PATH_IMAGE016
的值为0;
Figure 335899DEST_PATH_IMAGE018
表示最小值函数,
Figure 252034DEST_PATH_IMAGE019
表示最大值函数,
Figure 349303DEST_PATH_IMAGE020
表示向量长度。
可选地,在利用所述日志信息生成待检测日志向量之前,还包括:
获取所有原始日志模板,并利用各所述原始日志模板生成对应的日志模板向量;
对日志模板向量进行分类得到模板类别,并根据各模板类别对应的日志模板向量数量,按从大到小的顺序对所述模板类别进行排序;
从排序序列中依次提取模板类别对应的日志模板向量数量进行累加,并在每次累加结束后,计算当前累加数量与日志模板总数量间的比值;
当确定所述比值大于第三预设阈值时,将已累加的模板类别所包含的日志模板向量对应的原始日志模板设置为所述正常日志模板。
可选地,所述对日志模板向量进行分类得到模板类别,包括:
创建模板核向量集合,并将首个日志模板向量设置为待处理向量;
当确定所述模板核向量集合为空,或所述模板核向量集合中不存在与所述待处理向量间的相似度大于第四预设阈值的目标模板核向量时,将所述待处理向量设置为模板核向量并添加至所述模板核向量集合;
当确定所述模板核向量集合中存在所述目标模板核向量时,将所述待处理向量添加至字典序最小的目标模板核向量对应的模板类别中;
对下一日志模板向量进入所述设置为待处理向量的步骤,直至完成对所有所述日志模板向量的处理。
可选地,所述有限状态自动机为AC自动机,在利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇之前,还包括:
获取异常词库;所述异常词库包含多个所述异常词汇,每一所述异常词汇均有对应的预设异常值;
利用所述异常词库构建字典树,并在所述字典树中为与所述异常词汇对应的节点标注所述预设异常值;
使用广度优先搜索对所述字典树进行前缀指针计算,以在所述字典树中构造失败指针,得到所述AC自动机。
可选地,所述获取异常词库,包括:
获取异常日志,并对所述异常日志进行分词得到待处理词汇;
计算所述待处理词汇对应的TF-IDF值,并根据所述TF-IDF值从所述待处理词汇中提取所述异常词汇;
将所述异常词汇添加至所述异常词库。
可选地,所述根据所述TF-IDF值从所述待处理词汇中提取所述异常词汇,包括:
按照所述TF-IDF值从高到低的顺序,将前预设比例的待处理词汇设置为所述异常词汇,并利用所述TF-IDF值为所述异常词汇设置对应的预设异常值。
可选地,所述利用所述TF-IDF值为所述异常词汇设置对应的预设异常值,包括:
利用所述TF-IDF值以如下方式为所述异常词汇设置对应的预设异常值:
Figure 182130DEST_PATH_IMAGE021
其中,
Figure 73862DEST_PATH_IMAGE022
表示第i个所述异常词汇的TF-IDF值,e表示自然对数底数。
可选地,所述计算所述待处理词汇对应的TF-IDF值,包括:
采用如下方式计算所述待处理词汇对应的TF-IDF值:
Figure 241407DEST_PATH_IMAGE023
其中,
Figure 142367DEST_PATH_IMAGE022
表示第i个待处理词汇的TF-IDF值,t表示所述第i个待处理,d表示异常日志,D表示包含所有所述异常日志的集合;
Figure 564121DEST_PATH_IMAGE024
表示所述异常词汇t的词频,采用如下方式计算:
Figure 626755DEST_PATH_IMAGE025
其中
Figure 766749DEST_PATH_IMAGE026
表示异常日志中的所有词汇;
Figure 222133DEST_PATH_IMAGE027
表示单词t的逆文件频率,采用如下方式计算:
Figure 763972DEST_PATH_IMAGE028
可选地,在对所述异常日志进行分词得到待处理词汇之后,还包括:
根据预设规则从所述待处理词汇中提取目标异常词汇,并为所述目标异常词汇添加对应的预设异常值;
将所述目标异常词汇添加至所述异常词库。
本发明还提供一种异常日志检测装置,包括:
获取模块,用于获取日志信息;
检测模块,用于利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇,并利用动态规划算法及所述目标异常词汇对应的预设异常值确定所述日志信息对应的总异常值;
判定模块,用于当确定所述总异常值大于第一预设阈值时,判定所述日志信息为异常日志。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的异常日志检测方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的异常日志检测方法。
本发明提供一种异常日志检测方法,包括:获取日志信息;利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇,并利用动态规划算法及所述目标异常词汇对应的预设异常值确定所述日志信息对应的总异常值;当确定所述总异常值大于第一预设阈值时,判定所述日志信息为异常日志。
可见,本发明可使用由异常词汇构建的有限状态自动机对日志信息进行异常检测,该自动机能够自动检测日志信息中所包含的目标异常词汇,进而可利用动态规划算法及这些词汇对应的预设异常值确定日志信息对应的总异常值,并在确定总异常值大于预设阈值时,可判定日志信息为异常日志。由于本发明利用由有限状态自动机提取得到的目标异常词汇确定日志信息是否为异常日志,且目标异常词汇属于纯文本数据,因此可对纯文本日志进行检测,且能够避免现有方法仅能对具有时序数据的日志数据进行检测的情况;此外,由于相较于传统的机器学习和深度学习方法,有限状态自动机的计算效率更高,且实现所需的代码更加精简,因此本发明不仅能够采用有限状态自动机提升异常日志检测的效率,同时还能够降低异常日志检测对计算资源的消耗量,以确保该检测功能可配置在计算资源更低的硬件设备中,进而可有效提升异常日志检测的适用场景。本发明还提供一种异常日志检测装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种异常日志检测方法的流程图;
图2为本发明实施例所提供的一种AC自动机的示意图;
图3为本发明实施例所提供的另一种异常日志检测方法的流程图;
图4为本发明实施例所提供的一种异常日志检测装置的结构框图;
图5为本发明实施例所提供的一种电子设备的结构框图;
图6为本发明实施例所提供的一种计算机可读存储介质的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,异常日志检测通常采用基于主成分分析的方法或基于深度学习的方法对日志信息中的时序参数进行检测,以提取出日志信息中的异常信息。然而,并非所有的异常日志都能通过时序数据发现问题,许多错误日志并不包含时序变量而是属于纯文本数据;此外,深度学习模型训练时往往需要消耗大量的计算资源,各类词向量对存储资源占据较多,应对大型流式日志数据时实时计算性能也常常捉襟见肘。有鉴于此,本发明可提供一种异常日志检测方法,可使用由异常词汇构建的有限状态自动机对日志信息进行异常检测,能够提升日志异常检测的效率并降低对计算资源的占用率。请参考图1,图1为本发明实施例所提供的一种异常日志检测方法的流程图,该方法可以包括:
S101、获取日志信息。
需要说明的是,本发明实施例并不限定日志信息的具体来源及种类,该日志信息可以属于任意系统或服务。本发明实施例也不限定日志信息的具体采集方式,可以理解的是,日志信息的采集方式与具体的数据源及数据源所采用的通信协议有关,可结合实际应用需求及相关技术进行设置。本发明实施例并不限定获取日志信息的时机,例如可实时获取,也可周期性获取周期内生成的所有日志,可根据实际应用需求进行设定。在一种可能的情况中,为便于及时发现异常形式,日志信息可以实时获取。
S102、利用由异常词汇构建的有限状态自动机检测日志信息中包含的目标异常词汇,并利用动态规划算法及目标异常词汇对应的预设异常值确定日志信息对应的总异常值。
本发明实施例采用由异常词汇构建的有限状态自动机进行异常日志信息检测,其中异常词汇指从异常日志中提取出的词汇,而该自动机具体为确定性有限状态自动机(DFA,Deterministic finite automata)。由于自动机在进行字符匹配时匹配效率较高,且构建自动机所需的代码量较小,因此更加适合在计算资源较为有限的场景,例如在计算资源相对稀缺的嵌入式应用场景中,有限状态自动机能够发挥出更高的性能。也正是如此,本发明实施例采用有限状态自动机进行异常日志信息检测,相较于现有的机器学习方法及深度学习方法来说,能够在显著降低对计算资源占用情况的前提下取得较好检测效果,不仅可以对大型系统中实时产生的日志数据流进行高效的检测,同时还能够适应更多的应用场景,特别是能够在计算资源较为稀缺的嵌入式应用场景中发挥不错的性能。另外,还值得提出的是,本发明实施例中的自动机并非采用时序方式对日志信息进行异常检测,而是采用字符匹配的方式进行异常检测,因此能够对纯文本日志进行有效检测,能够避免相关技术仅能对包含时序词汇的日志信息进行检测的问题。
进一步,需要说明的是,构建上述有限状态自动机的异常词汇均设置有对应的预设异常值。在利用自动机确定日志信息中包含的目标异常词汇后,可利用目标异常词汇对应的预设异常值确定日志信息对应的总异常值,进而可根据总异常值判断日志信息是否属于异常日志。本发明实施例并不限定每一个异常词汇对应的预设异常值,可根据实际应用需求进行设定。本发明实施例也不限定这些预设异常值的具体设置方法,例如可根据预设的运维检测规则进行设定,也可根据词汇在异常日志中出现的频率等信息进行设定,可根据实际应用需求进行设定。进一步,本发明实施例并不限定构建有限状态自动机所需使用的异常词汇的数量,可根据实际应用需求进行设定。
进一步,需要说明的是,本发明实施例并不限定利用异常词汇构建有限状态自动机的具体方式,例如可在Aho-Corasick算法的基础上进行构建,其中Aho-Corasick算法是多模式匹配中常用的算法,其构建的有限状态自动机又可被称为AC自动机。为便于理解如何利用由Aho-Corasick算法构建的AC自动机进行异常日志检测,请参考图2,图2为本发明实施例所提供的一种AC自动机的示意图,其中,root表示根节点,而其他节点则表示字符,实线表示构造AC自动机的字典树中的树枝,而虚线则表示AC自动机中的失败指针(fail),其中失败指针可使得在字典树某节点匹配失败后,直接跳转到最佳匹配节点继续匹配,尽量避免回溯至根节点重新开始匹配;各节点间的路径表示词汇,例如由root、h、e节点可组成词汇“he”,由root、h、e、r节点可组成词汇“her”。当接收到待检测字符串时,可依次将字符串中的各字符输入至AC自动机,而该自动机则会从根节点开始,沿路径方向进行匹配,例如对于待测字符串“her”,可依次将h、e、r输入至AC自动机,而该自动机首先会从根节点向下,匹配字符h对应的节点h,随后从节点h向下匹配字符e对应的节点e,最后从e节点向下匹配字符r对应的节点r。应当指出的是,该自动机中的每一节点均有对应的“状态”(state),在进行字符串匹配时,该状态与具体的词汇相对应,例如最左侧树枝上的节点e可对应词汇“he”,最左侧树枝上的节点r可对应词汇“her”,而最左侧树枝上的节点h并不具有对应的词汇。对于具有对应词汇的特殊节点,在图2中已用灰色进行标记,而可以理解的是,在本发明实施例中,这些特殊节点应当与异常词汇相对应。当然,为了提升计算总异常值的效率,这些特殊节点上也可标注对应异常词汇的预设异常值。进一步,需特别指出的是,当某个状态具有对应的异常词汇时,其所属节点的失败指针所指向的目标节点可能也具有对应的异常词汇,同时目标节点的失败指针所指向的节点也可能具有对应的异常词汇,而在进行总异常值计算时,除了累加本状态对应的异常词汇的预设异常值之外,还需通过失败指针查找本状态所属节点至根节点间的其他节点,确定其他节点对应的其他异常词汇,并将其他异常词汇的预设异常值也累加至总异常值中。例如在图2中,root、s、h、e这条路径(对应词汇“she”)中的e节点1的失败指针,指向了root、h、e这条路径中的e节点2,而e节点2的失败指针指向了根节点,那么在计算e节点1上计算总异常值时,除了要累加词汇“she”对应的预设异常值,还需要累加词汇“he”对应的预设异常值。
进一步,为提升总异常值的计算效率,在本发明实施例可利用动态递归算法对总异常值的计算过程进行优化。需要说明的是,本发明实施例并不限定动态递归算法在计算总异常值时的推导形式,可根据实际应用需求进行设定。
在一种可能的情况中,有限状态自动机为AC自动机,利用由异常词汇构建的有限状态自动机检测日志信息中包含的目标异常词汇,并利用动态规划算法及目标异常词汇对应的预设异常值确定日志信息对应的总异常值,包括:
步骤11:将日志信息中的字符依次输入至AC自动机中进行匹配,确定字符在AC自动机中对应的节点及节点对应的状态;
步骤12:当状态具有对应的异常词汇时,通过失败指针查找节点与根节点间的其他节点对应的其他异常词汇;
步骤13:将状态对应的异常词汇和其他异常词汇设置为字符对应的目标异常词汇,利用动态规划算法及字符的目标异常词汇对应的预设异常值确定总异常值,并对下一字符进行处理;
步骤14:当状态不具有对应的异常词汇时,对下一字符进行处理。
在一种可能的情况中,利用动态规划算法及字符的目标异常词汇对应的预设异常值确定总异常值,可以包括:
步骤21:利用动态规划算法以及字符的目标异常词汇对应的预设异常值以如下方式计算总异常值:
Figure 263087DEST_PATH_IMAGE029
其中,s表示日志信息的字符串,
Figure 890377DEST_PATH_IMAGE002
Figure 116828DEST_PATH_IMAGE003
表示字符串中的第n-1个字符和第n个字符,
Figure 513174DEST_PATH_IMAGE030
Figure 183190DEST_PATH_IMAGE031
表示
Figure 297777DEST_PATH_IMAGE002
Figure 829383DEST_PATH_IMAGE003
对应的总异常值,
Figure 80236DEST_PATH_IMAGE032
表示
Figure 921153DEST_PATH_IMAGE003
字符对应的状态,
Figure 523036DEST_PATH_IMAGE033
表示
Figure 842022DEST_PATH_IMAGE032
不具有对应的目标异常词汇,
Figure 462228DEST_PATH_IMAGE034
表示
Figure 208467DEST_PATH_IMAGE032
具有对应的目标异常词汇,
Figure 32066DEST_PATH_IMAGE035
表示
Figure 154743DEST_PATH_IMAGE003
字符的目标异常词汇对应的预设异常值的总和。
换句话说,假若
Figure 380188DEST_PATH_IMAGE036
对应一个异常词,则其失败指针所指向的节点也有可能对应一个异常词,此时,score函数应利用失败指针循环计算出所有可能的异常词,直至回溯到根节点。
S103、当确定总异常值大于第一预设阈值时,判定日志信息为异常日志。
需要说明的是,本发明实施例并不限定第一预设阈值的具体数值,可根据实际应用需求进行设定。为方便运维人员及时进行异常排查维护,在确定日志信息为异常日志时,也可进一步生成对应的告警信息并进行输出。本发明实施例并不限定告警信息的具体形式,可根据实际应用需求进行设定。本发明实施例也不限定输出告警信息的具体方式,例如可输出至电子设备中的显示设备上,也可以通过短信及邮件的方式输出至指定运维人员的设备上,可根据实际应用需求进行设定。
基于上述实施例,本发明可使用由异常词汇构建的有限状态自动机对日志信息进行异常检测,该自动机能够自动检测日志信息中所包含的目标异常词汇,进而可利用动态规划算法及这些词汇对应的预设异常值确定日志信息对应的总异常值,并在确定总异常值大于预设阈值时,可判定日志信息为异常日志。由于本发明利用由有限状态自动机提取得到的目标异常词汇确定日志信息是否为异常日志,且目标异常词汇属于纯文本数据,因此可对纯文本日志进行检测,且能够避免现有方法仅能对具有时序数据的日志数据进行检测的情况;此外,由于相较于传统的机器学习和深度学习方法,有限状态自动机的计算效率更高,且实现所需的代码更加精简,因此本发明不仅能够采用有限状态自动机提升异常日志检测的效率,同时还能够降低异常日志检测对计算资源的消耗量,以确保该检测功能可配置在计算资源更低的硬件设备中,进而可有效提升异常日志检测的适用场景。
基于上述实施例,下面对有限状态自动机的生成过程进行详细介绍。在一种可能的情况中,有限状态自动机为AC自动机,在利用由异常词汇构建的有限状态自动机检测日志信息中包含的目标异常词汇之前,还可以包括:
S201、获取异常词库;异常词库包含多个异常词汇,每一异常词汇均有对应的预设异常值。
在本发明实施例中,异常词库用于存放异常词汇。本发明实施例并不限定异常词库的构建过程,例如可收集包含异常信息的异常日志,并利用异常日志中所包含的异常词汇进行构建。本发明实施例并不限定如何从异常日志中提取异常词汇,例如可根据预设规则进行提取,也可以计算日志中各词汇的TF-IDF值,并根据该值进行提取,其中TF-IDF表示词频-逆文件频率。在本发明实施例中,为高效提取异常词汇,可根据TF-IDF值进行提取。
在一种可能的情况中,获取异常词库,可以包括:
步骤31:获取异常日志,并对异常日志进行分词得到待处理词汇;
步骤32:计算待处理词汇对应的TF-IDF值,并根据TF-IDF值从待处理词汇中提取异常词汇;
步骤33:将异常词汇添加至异常词库。
具体的,可采用如下方式计算TF-IDF值:
在一种可能的情况中,计算待处理词汇对应的TF-IDF值,可以包括:
步骤41:采用如下方式计算待处理词汇对应的TF-IDF值:
Figure 313640DEST_PATH_IMAGE037
其中,
Figure 890115DEST_PATH_IMAGE038
表示第i个待处理词汇的TF-IDF值,t表示第i个待处理,d表示异常日志,D表示包含所有异常日志的集合;
Figure 816483DEST_PATH_IMAGE024
表示异常词汇t的词频,采用如下方式计算:
Figure 896434DEST_PATH_IMAGE025
其中
Figure 764902DEST_PATH_IMAGE039
表示异常日志中的所有词汇;
Figure 563094DEST_PATH_IMAGE027
表示单词t的逆文件频率,采用如下方式计算:
Figure 293152DEST_PATH_IMAGE040
进一步,在得到各待处理词汇对应的TF-IDF值后,可依照TF-IDF值从高到低的顺序,将前预设比例的待处理词汇设置为异常词汇并添加至异常词库。需要说明的是,本发明实施例并不限定预设比例的具体数值,例如可以为前2%。此外,还可利用TF-IDF值设置异常词汇的预设异常值。
在一种可能的情况中,根据TF-IDF值从待处理词汇中提取异常词汇,可以包括:
步骤51:按照TF-IDF值从高到低的顺序,将前预设比例的待处理词汇设置为异常词汇,并利用TF-IDF值为异常词汇设置对应的预设异常值。
需要说明的是,本发明实施例并不限定利用TF-IDF值设置异常词汇的预设异常值的具体方式,例如可将TF-IDF值与自然对数底数相除,得到预设异常值,也可采用其他方式进行设置。
在一种可能的情况中,利用TF-IDF值为异常词汇设置对应的预设异常值,包括:
步骤61:利用TF-IDF值以如下方式为异常词汇设置对应的预设异常值:
Figure 227610DEST_PATH_IMAGE041
其中,
Figure 768444DEST_PATH_IMAGE022
表示第i个异常词汇的TF-IDF值,e表示自然对数底数。
进一步,在得到待处理词汇后,也可利用预先确定的规则,从待处理词汇中提取异常词汇,并为其添加对应的预设异常值。当然,为了突出利用规则提取的异常词汇的作用,这批词汇的预设异常值也可高于利用TF-IDF值提取的异常词汇的预设异常值,具体可根据实际应用需求进行设定。
在一种可能的情况中,在对异常日志进行分词得到待处理词汇之后,还可以包括:
步骤71:根据预设规则从待处理词汇中提取目标异常词汇,并为目标异常词汇添加对应的预设异常值;
步骤72:将目标异常词汇添加至异常词库。
S202、利用异常词库构建字典树,并在字典树中为与异常词汇对应的节点标注预设异常值。
需要说明的是,本发明实施例并不限定字典树的构造过程,可参考相关技术。具体的,字典树应当满足如下条件:1、根节点不包含字符,除根节点外的每个节点都只包含一个字符;2、从根节点到某一结点,路径上经过的字符连接起来,为该节点对应的字符串;3、每个节点的所有子节点包含的字符都不相同。在完成字典树的构造之后,可在异常词汇对应的节点上标注预设异常值,以便后续计算总异常值。
S203、使用广度优先搜索对字典树进行前缀指针计算,以在字典树中构造失败指针,得到有限状态自动机。
需要说明的是,本发明实施例并不限定失败指针的构造过程,可参考相关技术。
基于上述实施例,本发明实施例可依照AC自动机的构造方式构造异常日志检测所需使用的有限状态自动机,可确保在占用较少计算资源的情况下高效地进行异常日志检测。
基于上述实施例,在利用有限状态自动机检测日志信息之前,为提升检测效率,还可利用已有的正常日志模板对日志信息进行过滤,以提取出具有较高异常可能性的目标日志信息,再利用有限状态自动机对目标日志信息进行检测。在一种可能的情况中,在利用由异常词汇构建的有限状态自动机检测日志信息中包含的目标异常词汇之前,还可以包括:
S301、利用日志信息生成待检测日志向量,并计算待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值。
在本发明实施例中,日志信息在被输入至有限状态自动机之前,可首先被生成对应的待检测日志向量;随后,该向量将与正常日志模板对应的正常日志向量进行相似度计算,以确定日志信息与各正常日志模板的相似程度;进而,当发现日志信息与各个正常日志模板均不相同时,即发现待检测日志向量与各个正常日志向量间的相似度均小于预设阈值时,便可确定日志信息属于异常日志信息的可能性较高,应当使用有限状态自动机进行检测。应当指出的是,正常日志模板即为一般正常日志信息所使用的文档模板,其可以手动指定,也可以根据归类的方式自动确定;日志向量中的各个元素均由日志信息中的词汇生成,例如可首先对日志信息文本进行分词得到日志文本词汇,进而提取每个日志文本词汇的首字母,并将由首字母构成的序列作为一个日志向量,比如对于日志“log(error) : helloworld.”,按标点符号进行分词后分为4个日志文本词汇:log、error、hello、world,则该条日志特征向量为[l, e,h, w]。
进一步,需要说明的是,本发明实施例并不限定相似度的具体计算方式,例如可使用余弦相似度、欧式距离、编辑距离等。为提交计算效率,在本发明实施例中,可按照如下方式计算待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值:
Figure 788353DEST_PATH_IMAGE010
其中
Figure 790944DEST_PATH_IMAGE011
表示待检测日志向量,
Figure 845488DEST_PATH_IMAGE012
表示正常日志向量,
Figure 540911DEST_PATH_IMAGE042
表示相似度值,
Figure 48116DEST_PATH_IMAGE014
Figure 369245DEST_PATH_IMAGE043
分别表示待检测日志向量中的第i个词汇和正常日志向量中的第i个词汇;
Figure 543874DEST_PATH_IMAGE016
属于布尔运算,当
Figure 144620DEST_PATH_IMAGE014
Figure 670279DEST_PATH_IMAGE017
相等时,
Figure 765405DEST_PATH_IMAGE016
的值为1,当
Figure 794541DEST_PATH_IMAGE014
Figure 362925DEST_PATH_IMAGE017
不相等时,
Figure 844722DEST_PATH_IMAGE016
的值为0;
Figure 507654DEST_PATH_IMAGE018
表示最小值函数,
Figure 125717DEST_PATH_IMAGE019
表示最大值函数,
Figure 333844DEST_PATH_IMAGE020
表示向量长度。
S302、当确定相似度值小于第二预设阈值时,进入利用由异常词汇构建的有限状态自动机检测日志信息中包含的目标异常词汇的步骤。
需要说明的是,本发明实施例并不限定第二预设阈值的具体数值,可根据实际应用需求进行设定,例如可设置为0.8。
下面对正常日志模板的自动筛选过程进行详细介绍。在利用日志信息生成待检测日志向量之前,还可以包括:
步骤81:获取所有原始日志模板,并利用各原始日志模板生成对应的日志模板向量。
应当指出的是,此处的原始日志模板既包含正常日志模板,也包含异常日志模板。关于日志模板向量的生成方法可参考上述实施例,此处不再赘述。
步骤82:对日志模板向量进行分类得到模板类别,并根据各模板类别对应的日志模板向量数量,按从大到小的顺序对模板类别进行排序;
需要说明的是,本发明实施例并不限定对日志模板向量进行分类的具体方法,例如可通过聚类等方式进行自动分类。在本发明实施例中,为方便起见,可简单根据两个日志模板向量之间的相似度是否超过预设阈值来确定这两个日志模板向量是否属于同一类别。在一种可能的情况中,对日志模板进行分类得到模板类别,可以包括:
步骤91:创建模板核向量集合,并将首个日志模板向量设置为待处理向量。
应当说明的是,模板核向量集合在创建之初为空集合。
步骤92:当确定模板核向量集合为空,或模板核向量集合中不存在与待处理向量间的相似度大于第四预设阈值的目标模板核向量时,将待处理向量设置为模板核向量并添加至模板核向量集合。
本发明实施例中的模板核向量是模板类别的代表向量,在确定某一待处理向量所归属的模板类别时,应当首先计算待处理向量与各个模板核向量间的相似度。假若相似度并未超过预设阈值,则说明待处理向量与对应的模板核向量并不属于相同类别;反之,假若相似度超过了预设阈值,则说明待处理向量与对应的模板核向量可以属于相同类别。进而,可以理解的是,当待处理向量与各个模板核向量之间的相似度均不超过预设阈值时,则说明待处理向量并不属于任一模板类别,进而便可将待处理向量设置为新模板类别的模板核向量,并添加至模板核向量集合。需要说明的是,本发明实施例并不限定第四预设阈值的具体数值,可根据实际应用需求进行设定,例如可以为0.8。关于上述相似度的计算方法,可参考上述实施例,此处不再赘述。进一步,可以理解的是,假若集合中不存在模板核向量,则可直接将待处理向量设置为模板核向量并添加至该集合中。
步骤93:当确定模板核向量集合中存在目标模板核向量时,将待处理向量添加至字典序最小的目标模板核向量对应的模板类别中。
可以理解的是,待处理向量可能与模板核向量集合中的多个目标模板核向量具有较高的相似度,此时在本发明实施例中可优选将待处理向量添加至这多个目标模板核向量中字典序最小的模板核向量对应的模板类别中,其中字典序是基于字母顺序排列的单词按字母顺序排列的方法。
步骤94:对下一日志模板向量进入设置为待处理向量的步骤,直至完成对所有日志模板向量的处理。进一步,在完成对日志模板向量的分类之后,根据各模板类别对应的日志模板向量数量,按从大到小的顺序对模板类别进行排序。这是由于异常日志模板与正常日志模板间的相似度较低,且异常日志模板在所有原始日志模板中的占比交底。换而言之,由异常日志模板所组成的异常模板类别不仅显著区别与由正常日志模板所组成的正常模板类别,且异常模板类别所包含的日志模板向量数量显著少于正常模板类别所包含的日志模板向量数量,因此仅需对根据各模板类别对应的日志模板向量数量,按从大到小的顺序对模板类别进行排序,并从排序序列中提取日志模板向量数量较多的模板类别即可得到正常日志模板。
步骤83:从排序序列中依次提取模板类别对应的日志模板向量数量及进行累加,并在每次累加结束后,计算当前累加数量与日志模板总数量间的比值;
步骤84:当确定比值大于第三预设阈值时,将已累加的模板类别所包含的日志模板向量对应的原始日志模板设置为正常日志模板。
需要说明的是,本发明实施例并不限定第三预设阈值的具体数值,例如可以为98%,即可将总量占比在前98%的日志模板定为正常日志模板。
基于上述实施例,本发明实施例还可在利用有限状态自动机检测日志信息之前,利用已有的正常日志模板对日志信息进行过滤,以提取出具有较高异常可能性的目标日志信息,再利用有限状态自动机对目标日志信息进行检测,以提高检测效率。
基于上述实施例,下面基于具体的例子介绍上述异常日志检测方法。请参考图3,图3为本发明实施例所提供的另一种异常日志检测方法的流程图。该方法可以包括:
1、使用聚类算法对所有系统日志模板进行建模,并将总量占比在前98%的系统日志模板定为正常日志模板;
2、获取各类系统错误日志数据并进行分词。
3、计算所有错误日志数据中各个词汇的TF-IDF分值,并将得分排在前2%的词汇作为异常词会加入异常词表,词汇
Figure 302937DEST_PATH_IMAGE044
的异常分值默认为
Figure 989134DEST_PATH_IMAGE045
,其中
Figure 743594DEST_PATH_IMAGE046
为该词汇的TF-IDF得分,e为自然对数底数。
4、运用运维专家知识提取出步骤1中的异常词并赋予相应异常分值,加入异常词表。使用专家知识提取的异常词应具备较高程度的区分度,即分值明显高于步骤2中的大多数。
5、对异常词库使用Aho-Corasick算法建立有限状态自动机(DFA),并在相应节点标记词汇的异常分值。
6、对于系统产生的实时日志数据,提取每条日志的待检测日志向量,并使用正常日志模板库进行初步过滤,若该日志属于某一类正常日志模板(相似度>=0.8),则该日志判定为正常日志,否则初步判定为异常日志;
7、对于每一条初步判定为异常的日志,使用步骤5中有限状态自动机和动态规划算法计算每条日志的异常得分。
8、设置告警阈值α,若步骤7中计算出的日志异常得分大于α,则判定为异常日志,进行告警。
下面对本发明实施例提供的异常日志检测装置、电子设备及计算机可读存储介质进行介绍,下文描述的异常日志检测装置、电子设备及计算机可读存储介质与上文描述的异常日志检测方法可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种异常日志检测装置的结构框图,该装置可以包括:
获取模块401,用于获取日志信息;
检测模块402,用于利用由异常词汇构建的有限状态自动机检测日志信息中包含的目标异常词汇,并利用动态规划算法及目标异常词汇对应的预设异常值确定日志信息对应的总异常值;
判定模块403,用于当确定总异常值大于第一预设阈值时,判定日志信息为异常日志。
可选地有限状态自动机为AC自动机,检测模块402,可以包括:
匹配子模块,用于将日志信息中的字符依次输入至AC自动机中进行匹配,确定字符在AC自动机中对应的节点及节点对应的状态;
查找子模块,用于当状态具有对应的异常词汇时,通过失败指针查找节点与根节点间的其他节点对应的其他异常词汇;
计算子模块,用于将状态对应的异常词汇和其他异常词汇设置为字符对应的目标异常词汇,并利用动态规划算法及字符的目标异常词汇对应的预设异常值确定总异常值。
可选地,计算子模块,具体用于:
利用动态规划算法以及字符的目标异常词汇对应的预设异常值以如下方式计算总异常值:
Figure 857044DEST_PATH_IMAGE047
其中,s表示日志信息的字符串,
Figure 579012DEST_PATH_IMAGE048
Figure 334478DEST_PATH_IMAGE049
表示字符串中的第n-1个字符和第n个字符,
Figure 441981DEST_PATH_IMAGE050
Figure 257490DEST_PATH_IMAGE051
表示
Figure 935596DEST_PATH_IMAGE048
Figure 229174DEST_PATH_IMAGE049
对应的总异常值,
Figure 676336DEST_PATH_IMAGE052
表示
Figure 413479DEST_PATH_IMAGE049
字符对应的状态,
Figure 578881DEST_PATH_IMAGE053
表示
Figure 410571DEST_PATH_IMAGE052
不具有对应的目标异常词汇,
Figure 977818DEST_PATH_IMAGE054
表示
Figure 135130DEST_PATH_IMAGE052
具有对应的目标异常词汇,
Figure 787828DEST_PATH_IMAGE055
表示
Figure 672477DEST_PATH_IMAGE049
字符的目标异常词汇对应的预设异常值的总和。
可选地,该装置还可以包括:
过滤模块,用于利用日志信息生成待检测日志向量,并计算待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值;
检测模块,还用于当确定相似度值小于第二预设阈值时,进入利用由异常词汇构建的有限状态自动机检测日志信息中包含的目标异常词汇的步骤。
可选地,过滤模块,可以包括:
相似度值计算子模块,用于按照如下方式计算待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值:
Figure 94231DEST_PATH_IMAGE056
其中
Figure 156865DEST_PATH_IMAGE057
表示待检测日志向量,
Figure 296859DEST_PATH_IMAGE058
表示正常日志向量,
Figure 1510DEST_PATH_IMAGE059
表示相似度值,
Figure 28503DEST_PATH_IMAGE060
Figure 262038DEST_PATH_IMAGE061
分别表示待检测日志向量中的第i个词汇和正常日志向量中的第i个词汇;当
Figure 889328DEST_PATH_IMAGE060
Figure 600932DEST_PATH_IMAGE062
相等时,
Figure 262858DEST_PATH_IMAGE063
的值为1,当
Figure 667294DEST_PATH_IMAGE060
Figure 31148DEST_PATH_IMAGE064
不相等时,
Figure 546443DEST_PATH_IMAGE063
的值为0;
Figure 62875DEST_PATH_IMAGE065
表示最小值函数,
Figure 638213DEST_PATH_IMAGE066
表示最大值函数,
Figure 240096DEST_PATH_IMAGE067
表示向量长度。
可选地,该装置还可以包括:
模板获取模块,用于获取所有原始日志模板,并利用各原始日志模板生成对应的日志模板向量;
分类模块,用于对日志模板向量进行分类得到模板类别,并根据各模板类别对应的日志模板向量数量,按从大到小的顺序对模板类别进行排序;
累加模块,用于从排序序列中依次提取模板类别对应的日志模板向量数量进行累加,并在每次累加结束后,计算当前累加数量与原始日志模板总数量间的比值;
设置模块,用于当确定比值大于第三预设阈值时,将已累加的模板类别所包含的日志模板向量对应的原始日志模板设置为正常日志模板。
可选地,分类模块,可以包括:
第一设置子模块,用于创建模板核向量集合,并将首个日志模板向量设置为待处理向量;
第一处理子模块,用于当确定模板核向量集合为空,或模板核向量集合中不存在与待处理向量间的相似度大于第四预设阈值的目标模板核向量时,将待处理向量设置为模板核向量并添加至模板核向量集合;
第二处理子模块,用于当确定模板核向量集合中存在目标模板核向量时,将待处理向量添加至字典序最小的目标模板核向量对应的模板类别中;
第二设置子模块,用于对下一日志模板向量进入设置为待处理向量的步骤,直至完成对所有日志模板向量的处理。
可选地,有限状态自动机为AC自动机,该装置还可以包括:
异常词库获取模块,用于获取异常词库;异常词库包含多个异常词汇,每一异常词汇均有对应的预设异常值;
字典树构建模块,用于利用异常词库构建字典树,并在字典树中为与异常词汇对应的节点标注预设异常值;
前缀指针计算模块,用于使用广度优先搜索对字典树进行前缀指针计算,以在字典树中构造失败指针,得到AC自动机。
可选地,异常词库获取模块,可以包括:
异常日志获取子模块,用于获取异常日志,并对异常日志进行分词得到待处理词汇;
TF-IDF处理子模块,用于计算待处理词汇对应的TF-IDF值,并根据TF-IDF值从待处理词汇中提取异常词汇;
第一添加子模块,用于将异常词汇添加至异常词库。
可选地,TF-IDF处理子模块,可以包括:
异常词汇提取单元,用于按照TF-IDF值从高到低的顺序,将前预设比例的待处理词汇设置为异常词汇,并利用TF-IDF值为异常词汇设置对应的预设异常值。
可选地,异常词汇提取单元,可以包括:
预设异常值设置子单元,用于利用TF-IDF值以如下方式为异常词汇设置对应的预设异常值:
Figure 309814DEST_PATH_IMAGE068
其中,
Figure 680753DEST_PATH_IMAGE069
表示第i个异常词汇的TF-IDF值,e表示自然对数底数。
可选地,TF-IDF处理子模块,可以包括:
TF-IDF计算单元,用于采用如下方式计算待处理词汇对应的TF-IDF值:
Figure 426992DEST_PATH_IMAGE070
其中,
Figure 250591DEST_PATH_IMAGE069
表示第i个待处理词汇的TF-IDF值,t表示第i个待处理,d表示异常日志,D表示包含所有异常日志的集合;
Figure 373268DEST_PATH_IMAGE071
表示异常词汇t的词频,采用如下方式计算:
Figure 333134DEST_PATH_IMAGE072
其中
Figure 765121DEST_PATH_IMAGE073
表示异常日志中的所有词汇;
Figure 76017DEST_PATH_IMAGE074
表示单词t的逆文件频率,采用如下方式计算:
Figure 736805DEST_PATH_IMAGE075
可选地,异常词库获取模块,还可以包括:
异常词汇提取子模块,用于根据预设规则从待处理词汇中提取目标异常词汇,并为目标异常词汇添加对应的预设异常值;
第二添加子模块,用于将目标异常词汇添加至异常词库。
请参考图5,图5为本发明实施例所提供的一种电子设备的结构框图,本发明实施例还提供一种电子设备,包括:
存储器501,用于存储计算机程序;
处理器502,用于执行计算机程序时实现如上述的异常日志检测方法的步骤。
由于电子设备部分的实施例与异常日志检测方法部分的实施例相互对应,因此电子设备部分的实施例请参见异常日志检测方法部分的实施例的描述,这里不再赘述。
请参考图6,图6为本发明实施例所提供的一种计算机可读存储介质的结构框图,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质601上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的异常日志检测方法的步骤。
由于计算机可读存储介质部分的实施例与异常日志检测方法部分的实施例相互对应,因此存储介质部分的实施例请参见异常日志检测方法部分的实施例的描述,这里不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种异常日志检测方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (15)

1.一种异常日志检测方法,其特征在于,包括:
获取日志信息;
利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇,并利用动态规划算法及所述目标异常词汇对应的预设异常值确定所述日志信息对应的总异常值;
当确定所述总异常值大于第一预设阈值时,判定所述日志信息为异常日志;
其中,所述有限状态自动机为AC自动机,所述利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇,并利用动态规划算法及所述目标异常词汇对应的预设异常值确定所述日志信息对应的总异常值,包括:
将所述日志信息中的字符依次输入至所述AC自动机中进行匹配,确定所述字符在所述AC自动机中对应的节点及所述节点对应的状态;
当所述状态具有对应的异常词汇时,通过失败指针查找所述节点与根节点间的其他节点对应的其他异常词汇;
将所述状态对应的异常词汇和所述其他异常词汇设置为所述字符对应的目标异常词汇,并利用所述动态规划算法及所述字符的目标异常词汇对应的预设异常值确定所述总异常值。
2.根据权利要求1所述的异常日志检测方法,其特征在于,所述利用所述动态规划算法及所述字符的目标异常词汇对应的预设异常值确定所述总异常值,包括:
利用所述动态规划算法以及所述字符的目标异常词汇对应的预设异常值以如下方式计算所述总异常值:
Figure DEST_PATH_IMAGE002
其中,s表示所述日志信息的字符串,
Figure DEST_PATH_IMAGE004
Figure DEST_PATH_IMAGE006
表示所述字符串中的第n-1个字符和第n个字符,
Figure DEST_PATH_IMAGE008
Figure DEST_PATH_IMAGE010
表示所述
Figure 995831DEST_PATH_IMAGE004
和所述
Figure 178550DEST_PATH_IMAGE006
对应的总异常值,
Figure DEST_PATH_IMAGE012
表示所述
Figure 348501DEST_PATH_IMAGE006
字符对应的状态,
Figure DEST_PATH_IMAGE014
表示所述
Figure 432125DEST_PATH_IMAGE012
不具有对应的目标异常词汇,
Figure DEST_PATH_IMAGE016
表示所述
Figure 980918DEST_PATH_IMAGE012
具有对应的目标异常词汇,
Figure DEST_PATH_IMAGE018
表示所述
Figure 741064DEST_PATH_IMAGE006
字符的目标异常词汇对应的预设异常值的总和。
3.根据权利要求1所述的异常日志检测方法,其特征在于,在利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇之前,还包括:
利用所述日志信息生成待检测日志向量,并计算所述待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值;
当确定所述相似度值小于第二预设阈值时,进入所述利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇的步骤。
4.根据权利要求3所述的异常日志检测方法,其特征在于,所述计算所述待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值,包括:
按照如下方式计算所述待检测日志向量与正常日志模板对应的正常日志向量之间的相似度值:
Figure DEST_PATH_IMAGE020
其中
Figure DEST_PATH_IMAGE022
表示所述待检测日志向量,
Figure DEST_PATH_IMAGE024
表示所述正常日志向量,
Figure DEST_PATH_IMAGE026
表示所述相似度值,
Figure DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE030
分别表示待检测日志向量中的第i个词汇和所述正常日志向量中的第i个词汇;当
Figure 818217DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE031
相等时,
Figure DEST_PATH_IMAGE033
的值为1,当
Figure 407330DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE034
不相等时,
Figure 279471DEST_PATH_IMAGE033
的值为0;
Figure DEST_PATH_IMAGE036
表示最小值函数,
Figure DEST_PATH_IMAGE038
表示最大值函数,
Figure DEST_PATH_IMAGE040
表示向量长度。
5.根据权利要求3所述的异常日志检测方法,其特征在于,在利用所述日志信息生成待检测日志向量之前,还包括:
获取所有原始日志模板,并利用各所述原始日志模板生成对应的日志模板向量;
对日志模板向量进行分类得到模板类别,并根据各模板类别对应的日志模板向量数量,按从大到小的顺序对所述模板类别进行排序;
从排序序列中依次提取模板类别对应的日志模板向量数量进行累加,并在每次累加结束后,计算当前累加数量与原始日志模板总数量间的比值;
当确定所述比值大于第三预设阈值时,将已累加的模板类别所包含的日志模板向量对应的原始日志模板设置为所述正常日志模板。
6.根据权利要求5所述的异常日志检测方法,其特征在于,所述对日志模板向量进行分类得到模板类别,包括:
创建模板核向量集合,并将首个日志模板向量设置为待处理向量;
当确定所述模板核向量集合为空,或所述模板核向量集合中不存在与所述待处理向量间的相似度大于第四预设阈值的目标模板核向量时,将所述待处理向量设置为模板核向量并添加至所述模板核向量集合;
当确定所述模板核向量集合中存在所述目标模板核向量时,将所述待处理向量添加至字典序最小的目标模板核向量对应的模板类别中;
对下一日志模板向量进入所述设置为待处理向量的步骤,直至完成对所有所述日志模板向量的处理。
7.根据权利要求1至6任一项所述的异常日志检测方法,其特征在于,所述有限状态自动机为AC自动机,在利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇之前,还包括:
获取异常词库;所述异常词库包含多个所述异常词汇,每一所述异常词汇均有对应的预设异常值;
利用所述异常词库构建字典树,并在所述字典树中为与所述异常词汇对应的节点标注所述预设异常值;
使用广度优先搜索对所述字典树进行前缀指针计算,以在所述字典树中构造失败指针,得到所述AC自动机。
8.根据权利要求7所述的异常日志检测方法,其特征在于,所述获取异常词库,包括:
获取异常日志,并对所述异常日志进行分词得到待处理词汇;
计算所述待处理词汇对应的TF-IDF值,并根据所述TF-IDF值从所述待处理词汇中提取所述异常词汇;
将所述异常词汇添加至所述异常词库。
9.根据权利要求8所述的异常日志检测方法,其特征在于,所述根据所述TF-IDF值从所述待处理词汇中提取所述异常词汇,包括:
按照所述TF-IDF值从高到低的顺序,将前预设比例的待处理词汇设置为所述异常词汇,并利用所述TF-IDF值为所述异常词汇设置对应的预设异常值。
10.根据权利要求9所述的异常日志检测方法,其特征在于,所述利用所述TF-IDF值为所述异常词汇设置对应的预设异常值,包括:
利用所述TF-IDF值以如下方式为所述异常词汇设置对应的预设异常值:
Figure DEST_PATH_IMAGE042
其中,
Figure DEST_PATH_IMAGE044
表示第i个所述异常词汇的TF-IDF值,e表示自然对数底数。
11.根据权利要求8所述的异常日志检测方法,其特征在于,所述计算所述待处理词汇对应的TF-IDF值,包括:
采用如下方式计算所述待处理词汇对应的TF-IDF值:
Figure DEST_PATH_IMAGE046
其中,
Figure 820305DEST_PATH_IMAGE044
表示第i个待处理词汇的TF-IDF值,t表示所述第i个待处理词汇,d表示异常日志,D表示包含所有所述异常日志的集合;
Figure DEST_PATH_IMAGE048
表示所述异常词汇t的词频,采用如下方式计算:
Figure DEST_PATH_IMAGE050
其中
Figure DEST_PATH_IMAGE052
表示异常日志中的所有词汇;
Figure DEST_PATH_IMAGE054
表示单词t的逆文件频率,采用如下方式计算:
Figure DEST_PATH_IMAGE056
12.根据权利要求8所述的异常日志检测方法,其特征在于,在对所述异常日志进行分词得到待处理词汇之后,还包括:
根据预设规则从所述待处理词汇中提取目标异常词汇,并为所述目标异常词汇添加对应的预设异常值;
将所述目标异常词汇添加至所述异常词库。
13.一种异常日志检测装置,其特征在于,包括:
获取模块,用于获取日志信息;
检测模块,用于利用由异常词汇构建的有限状态自动机检测所述日志信息中包含的目标异常词汇,并利用动态规划算法及所述目标异常词汇对应的预设异常值确定所述日志信息对应的总异常值;
判定模块,用于当确定所述总异常值大于第一预设阈值时,判定所述日志信息为异常日志;
其中,所述有限状态自动机为AC自动机,所述检测模块,包括:
匹配子模块,用于将所述日志信息中的字符依次输入至所述AC自动机中进行匹配,确定所述字符在所述AC自动机中对应的节点及所述节点对应的状态;
查找子模块,用于当所述状态具有对应的异常词汇时,通过失败指针查找所述节点与根节点间的其他节点对应的其他异常词汇;
计算子模块,用于将所述状态对应的异常词汇和所述其他异常词汇设置为所述字符对应的目标异常词汇,并利用所述动态规划算法及所述字符的目标异常词汇对应的预设异常值确定所述总异常值。
14.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至12任一项所述的异常日志检测方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至12任一项所述的异常日志检测方法。
CN202210964876.2A 2022-08-12 2022-08-12 一种异常日志检测方法、装置、电子设备及存储介质 Active CN115034220B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210964876.2A CN115034220B (zh) 2022-08-12 2022-08-12 一种异常日志检测方法、装置、电子设备及存储介质
PCT/CN2023/071830 WO2024031930A1 (zh) 2022-08-12 2023-01-11 一种异常日志检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210964876.2A CN115034220B (zh) 2022-08-12 2022-08-12 一种异常日志检测方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115034220A CN115034220A (zh) 2022-09-09
CN115034220B true CN115034220B (zh) 2023-01-10

Family

ID=83130585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210964876.2A Active CN115034220B (zh) 2022-08-12 2022-08-12 一种异常日志检测方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN115034220B (zh)
WO (1) WO2024031930A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115034220B (zh) * 2022-08-12 2023-01-10 苏州浪潮智能科技有限公司 一种异常日志检测方法、装置、电子设备及存储介质
CN117743838B (zh) * 2024-02-20 2024-04-30 卓世智星(成都)科技有限公司 用于大语言模型的数据知识提取方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684469A (zh) * 2018-12-13 2019-04-26 平安科技(深圳)有限公司 敏感词过滤方法、装置、计算机设备及存储介质
CN113032226A (zh) * 2021-05-28 2021-06-25 北京宝兰德软件股份有限公司 异常日志的检测方法、装置、电子设备及存储介质
CN114595127A (zh) * 2020-12-03 2022-06-07 腾讯科技(深圳)有限公司 日志异常处理方法、装置、设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180129579A1 (en) * 2016-11-10 2018-05-10 Nec Laboratories America, Inc. Systems and Methods with a Realtime Log Analysis Framework
CN111538642B (zh) * 2020-07-02 2020-10-02 杭州海康威视数字技术股份有限公司 一种异常行为的检测方法、装置、电子设备及存储介质
CN115034220B (zh) * 2022-08-12 2023-01-10 苏州浪潮智能科技有限公司 一种异常日志检测方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684469A (zh) * 2018-12-13 2019-04-26 平安科技(深圳)有限公司 敏感词过滤方法、装置、计算机设备及存储介质
CN114595127A (zh) * 2020-12-03 2022-06-07 腾讯科技(深圳)有限公司 日志异常处理方法、装置、设备和存储介质
CN113032226A (zh) * 2021-05-28 2021-06-25 北京宝兰德软件股份有限公司 异常日志的检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2024031930A1 (zh) 2024-02-15
CN115034220A (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
CN115034220B (zh) 一种异常日志检测方法、装置、电子设备及存储介质
CN113590764B (zh) 训练样本构建方法、装置、电子设备和存储介质
CN114818643B (zh) 一种保留特定业务信息的日志模板提取方法及装置
CN112612761B (zh) 一种数据清洗方法、装置、设备及存储介质
CN113780007A (zh) 语料筛选方法、意图识别模型优化方法、设备及存储介质
CN112445912A (zh) 一种故障日志分类方法、系统、设备以及介质
CN111581956A (zh) 基于bert模型和k近邻的敏感信息识别方法及系统
CN115828180A (zh) 一种基于解析优化和时序卷积网络的日志异常检测方法
CN112328792A (zh) 一种基于dbscan聚类算法识别信用事件的优化方法
CN103116752A (zh) 图片审核方法和系统
CN115080750A (zh) 基于融合提示序列的弱监督文本分类方法、系统和装置
CN112579781B (zh) 文本归类方法、装置、电子设备及介质
KR20210011822A (ko) 인공 지능 기반 비정상 로그를 탐지하는 방법 및 이를 구현하는 시스템
CN113723542A (zh) 一种日志聚类处理方法及系统
CN117792882A (zh) 基于大语言模型辅助的通信网络故障日志分析方法
CN110472231B (zh) 一种识别法律文书案由的方法和装置
CN111488400B (zh) 数据分类方法、装置和计算机可读存储介质
CN114595136B (zh) 一种日志解析方法、装置及设备
CN114596931B (zh) 基于病历的医学实体和关系联合提取方法和装置
CN110750712A (zh) 基于数据驱动的软件安全需求推荐方法
CN115221013A (zh) 一种日志模式的确定方法、装置及设备
CN115048504A (zh) 信息推送方法、装置、计算机设备及计算机可读存储介质
CN114610576A (zh) 一种日志生成监控方法和装置
CN112632229A (zh) 文本聚类方法及装置
CN117973402B (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
GR01 Patent grant
GR01 Patent grant