CN113064873B - 一种高召回率的日志异常检测方法 - Google Patents

一种高召回率的日志异常检测方法 Download PDF

Info

Publication number
CN113064873B
CN113064873B CN202110404453.0A CN202110404453A CN113064873B CN 113064873 B CN113064873 B CN 113064873B CN 202110404453 A CN202110404453 A CN 202110404453A CN 113064873 B CN113064873 B CN 113064873B
Authority
CN
China
Prior art keywords
log
sequence
mode
pattern
invariant
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
CN202110404453.0A
Other languages
English (en)
Other versions
CN113064873A (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.)
Shanghai Pudong Development Bank Co Ltd
Original Assignee
Shanghai Pudong Development Bank 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 Shanghai Pudong Development Bank Co Ltd filed Critical Shanghai Pudong Development Bank Co Ltd
Priority to CN202110404453.0A priority Critical patent/CN113064873B/zh
Publication of CN113064873A publication Critical patent/CN113064873A/zh
Application granted granted Critical
Publication of CN113064873B publication Critical patent/CN113064873B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种高召回率的日志异常检测方法,遍历每一个已知日志模式,对每一个已知日志模式做相同的判断,提取日志模式数量序列,在提取的统一的日志模式数量序列下,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,同时检测单条日志异常、日志序列异常和不变量异常。与现有技术相比,本发明具有大幅度提升日志召回率和准确率,提高检测结果可解释性等优点。

Description

一种高召回率的日志异常检测方法
技术领域
本发明涉及日志异常检测技术领域,尤其是涉及一种高召回率的日志异常检测方法。
背景技术
随着软件系统向大规模,复杂的分布式系统发展,这些系统经常遭受错误和漏洞的困扰。当发生系统故障(例如服务故障和服务中断)时,多个服务可能会受到故障的影响,这可能会导致系统的重大损失。系统异常检测技术旨在定位这些系统故障。这种技术在系统维护中起着至关重要的作用。对于工程师来说,及时准确地发现异常是必要的,以便及时查明原因。系统中有许多类型的数据可用于异常检测和故障排除。在大多数大型系统中普遍可用的日志数据具有大量信息,并且包含关键系统状态,事件和运行时消息的记录。
目前业界把日志异常分为以下三种类型:
i.单条日志就能反映的异常,如“shut down”日志;
ii.不变量异常,又称为数量关系异常,如一段时间内的connect相关的日志数量与end connect相关的日志数量不相等;
iii.序列异常,又称为任务流异常,即多条日志序列反映出来的异常,例如程序中某个任务的某个部分发生了异常,导致这个部分不能正常执行,其它部分正常执行,表现在日志中就是在这个任务流日志数据中少了某些日志。
现有的日志异常检测方法一般分为三个部分:
a.日志解析:算法较多,各有优劣,目的都是将非结构化的日志数据转换为结构化的数据。单条日志可以粗略的分为三个部分,打印时间、其它信息(层级(INFO,WARNING等)等)、日志内容。日志解析算法的难点在于如何确定日志内容中的固定部分和变量部分,业界用的较多的是通过大量的历史日志数据,通过聚类算法来自动提取日志模式。几千万行日志对应的日志模式数量可能在几十到几百不等。
b.特征提取:日志解析之后就可以将原始日志数据(日志序列,单个元素是一条日志字符串)转换为日志模式下标序列。一般是将从历史数据中解析出来的全部日志模式保存为一个有序的列表,称为总日志模式序列,然后依次将日志序列中的日志映射为其日志模式在日志模式序列中的下标,这样就得到了日志模式下标序列。部分算法可能还需要做进一步的特征提取。
c.日志分析:日志分析就是设计一种算法利用特征提取后的数据来分析日志的异常情况。现在业界出名的日志分析算法有Deeplog等。Deeplog等算法重点关注的都是日志异常中的序列异常,采用的方法也比较类似,即训练一个神经网络模型,以一定窗长的日志序列数据为输入,预测输入日志序列的下一个日志是什么(模型实际输入为对应的日志模式下标序列,输出为各个日志模式的出现概率组成的一维列表)。检测逻辑是,如果真实的下一个日志对应的日志模式不在模型预测的Top k个中即视为发生了异常。
然而现有的日志异常检测方法存在以下不足:
1、准确性和召回率低:大多数公司或者机构的系统都是并发的,且各个模块的处理速度和是否会一起执行是不稳定的,导致打印的日志序列的顺序并不能很好的反映系统的任务流。因此尽管采用了top k的方式来提高模型的泛化性能,通过一定长度的日志序列预测下一个日志的方式来分析日志异常的模型的准确性和召回率在实际运用中的准确性、召回率都不尽人意。
2、可解释性低:现有的很多日志分析算法,如DeepLog等类似一个黑盒,虽然可以判定异常,但是无法很好的给出异常的解释,而异常解释是在实际运维场景中十分关注的重点。
3、无法增量学习:当系统更新之后,若要保证模型的准确性,需要重新训练模型,无法自动实时迭代,这将会消耗大量时间。
发明内容
本发明的目的就是提供一种高召回率的日志异常检测方法,以至少部分地解决上述现有技术存在的缺陷。
本发明的目的可以通过以下技术方案来实现:
一种高召回率的日志异常检测方法,该方法遍历每一个已知日志模式,对每一个已知日志模式做相同的判断,提取日志模式数量序列,在提取的统一的日志模式数量序列下,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,同时检测单条日志异常、日志序列异常和不变量异常。进一步地,该方法采用并行方式遍历每一个已知日志模式。
本发明方法对每一个已知日志模式做相同的判断,提取日志模式数量序列的具体内容为:获取指定时间窗口的日志序列,引入一个未知日志模式和异常日志模式,利用时间滑动窗口提取日志模式数量序列。
引入一个未知日志模式和异常日志模式,利用时间滑动窗口提取日志模式数量序列的具体内容为:
获取指定时间窗口的日志序列,并对该指定时间窗口的日志序列进行训练,通过训练过程中保存的总日志模式序列和日志解析算法,将其转换为日志模式数量序列,假设训练过程中保存的总日志模式序列的大小为N,则日志模式数量序列的长度为N+2,将日志模式数量序列中前N个元素与总日志模式序列中的模式通过下标一一对应,将最后一个元素对应为未知模式,即未在训练数据中出现的模式,将倒数第二个元素对应为异常日志模式。
本发明方法基于单条日志异常、日志序列异常和不变量异常三者之间的关系,对单条日志异常进行检测的具体内容为:
创建并维持一个异常日志模式库,将初始时的异常日志模式库设定为空,在检测时,若日志模式数量的倒数第二个元素不为0,反馈单条日志模式错误信号,并将对应的异常日志模式和对应的数量反映在检测结果中;若日志模式数量的最后一个元素不为空,反馈模式新增的异常信号,并将对应的新增日志模式和数量反映在检测结果中,再结合用户核实反馈进行确定,若用户核实反馈为检测无误,即新增的日志模式为异常日志模式,则将新增的日志模式更新至异常日志模式库中,若用户核实反馈为检测错误,即新增的日志模式为引入的正常日志模式,则将新增的日志模式更新到总日志模式序列中。
进一步地,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,采用同比环比的方式对日志序列异常进行检测。具体地:
遍历每一个已知日志模式,对每一个已知日志模式执行相同的逻辑判断,即设定时间窗口长度,当时间窗口大小设定完成后,将每日的时间进行多个数据点划分;设置一个时间偏移量t,利用实际日志数量与历史同时刻加同时刻左、右各t个时间窗口的数据比判断日志序列异常。
利用实际日志数量与历史同时刻加同时刻左、右各t个时间窗口的数据比判断日志序列异常的具体内容为:
召回当前日志模式所在历史数据中同时间窗口及偏移t个窗口的内的数量组成一个历史日志数量序列,计算历史日志数量序列的中位数作为其期望日志数量,随后将历史日志数量序列的每一个值减去这期望日志数量得到残差序列后,利用核密度估计模型计算其日志数量的上、下阈值,当实际的日志数量超过上阈值或者低于下阈值时,执行异常告警。
进一步地,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,采用新型不变量挖掘和分析算法对不变量异常进行检测。具体地:
1)将训练日志序列通过时间滑动窗口切分为多个日志子序列,将每一个日志子序列转换为日志模式数量序列,进而获取日志模式数量矩阵,其中横轴表示各个时间窗口,纵轴表示各个日志模式;
2)假设总日志模式序列的大小为N,则潜在的二元不变量为N!/2*(N-2)!个,利用剪枝策略进行判断,若一个日志模式在日志模式数量矩阵中对应的取值不为零的日志模式数量序列的个数小于常数K,则剪去所有与该日志模式相关的潜在不变量;对于日志模式A和日志模式B的组合,假设二者在日志模式数量矩阵中对应的取值分别不为零和同时不为零的日志模式数量序列的个数分别为numLA,numLB和numLA_B,若numLA_B/max(numLA,numLB)<0.9,则剪去这个不变量组合,对于剩下的不变量组合,从二者同时不为零的日志模式数量序列中提取各自的数量序列LA、LB,随后利用这两个数据训练线性回归模型M,基于LA和LB计算M的决定系数score,若score>0.8,则将该不变量组合视为一组不变量,随后计算|numA–w*numB-b|/(numA+numB)/2序列作为判决值,其中w为斜率,b为截距,进而根据3-sigma原则计算检测阈值thres;
3)若步骤2)计算得到的判决值大于对应的score,则判断出现不变量异常,并将对应的不变量和线性关系反映在检测结果中。
本发明提供的高召回率的日志异常检测方法,相较于现有技术至少包括如下有益效果:
一、和当下日志异常检测模型只重点检测日志序列异常DeepLog或者不变量异常Invariants Mining相比,本发明提出了新的特征提取方式,即遍历每一个已知日志模式,通过对每一个日志模式引入一个未知日志模式和异常日志模式,并利用时间滑动窗口提取日志模式数量序列作为新的特征,并在新的特征上进行三种日志异常的统一检测,重点检测包括单条日志异常,不变量异常,日志序列异常在内的日志相关的所有异常,检测的三种异常相互补充且相互之间存在交叉,能够更好地分析日志异常,可大幅度提升日志召回率和准确率。
二、本发明对于模式库中不存在与其相似度很高的日志模式,将其作为新的日志模式加入日志模式库,以完成日志模式库的自动实时迭代,即增加了增量学习,进一步有助于提高日志异常检测的召回率和准确性。
三、本发明通过有效地将日志的序列异常转换为数量异常,并通过同比环比的方式进行数量异常检测,能够克服因为系统并发性等因素导致的现有序列异常检测模型的不足,并大大提高了检测结果的可解释性。
四、提出了不变量的数学关系定义和基于这个定义的不变量挖掘和分析算法,解决了日志不变量的高效自动提取的难点。
附图说明
图1为实施例中高召回率的日志异常检测方法的主要原理示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
实施例
为了解决现有日志分析算法的不足,本发明提出了一种高召回率的日志异常检测方法,该方法提出了新的日志分析框架,在现有模型的基础上提高了模型的可解释性,加入了增量学习能力,以解决系统更新而引入新的日志模式问题。
一种高召回率的日志异常检测方法,该方法包括如下步骤:
步骤一、遍历每一个已知日志模式,对每一个日志模式做相同的逻辑判断。遍历可采用并行方式。逻辑判断是引入一个未知日志模式和异常日志模式,并利用时间滑动窗口提取日志模式数量序列。具体方式是:
获取一定时间窗口的日志序列,然后通过训练过程中保存的总日志模式序列和日志解析算法将其转换为日志模式数量序列,训练过程指的是训练神经网络模型,以一定窗长的日志序列数据为输入,预测输入日志序列的下一个日志。假设训练过程中保存的总日志模式序列的大小为N,那么日志模式数量序列的长度为N+2,前N个元素与总日志模式序列中的模式通过下标一一对应,最后一个元素对应的是未知模式,即未在训练数据中出现的模式,倒数第二个元素对应的是异常日志模式。日志模式数量序列,顾名思义,在本发明中指代各个日志模式在日志序列中对应的日志数量。例如,总日志模式序列的大小为3,以日志模式下标序列表示的日志序列为[1,2,0,2,1,0,0](下标从0开始编号),其对应的日志模式数量序列是[3,2,2,0,0],其含义就是下标为0的日志模式在这个日志序列中对应的日志数量为3,下标为1的对应的数量为2,下标为2的对应的数量为2,未知的日志模式对应的日志模式数量为0,异常日志模式对应的日志数量为0。
然后以最长公共子序列的长度作为相似度度量方法将得到的每一个日志模式与模式库里面的模式进行匹配(可并行),最长公共子序列是指两个字符串都有的子序列中的最长的一个子序列。例如“abcde”和”afcdh”的最长公共子序列就是”acd”,二者的公共子序列为[‘a’,‘c’,’d’,’ac’,’ad’,’cd’,‘acd’]。最长公共子序列的获取就是通过一个算法函数获取的,输入为两个字符串,输出是这两个字符串的最长公共子序列。此处的匹配是指匹配模式库中的日志模式。日志模式是字符串格式,模式库里面有较多日志模式,5分钟时间窗口中可以通过日志解析算法解析出部分日志模式。这里的匹配的作用是将5分钟解析出的部分日志模式的每一个日志模式对应到模式库中的某一条日志模式。
匹配的结果有三种,一是完全匹配;二是,部分匹配,即模式库中有一个与其相似度很高但是不是完全匹配的日志模式,这种情况下将这两个日志模式进行融合(把不相同的地方以通配符替代),将模式库中对应的日志模式修改为融合后的日志模式;三是,匹配失败,即模式库中不存在与其相似度很高的日志模式,在该情况下将其作为新的日志模式加入日志模式库。
步骤二、在统一的特征数据(日志模式数量序列)下检测单条日志异常、序列异常数量和关系异常,并增强算法的可解释性。具体逻辑内容如下:
对于单条日志异常检测:
本发明维持一个异常日志模式库,初始时(即训练完)异常日志模式库为空,在检测时,如果日志模式数量的倒数第二个元素不为0,模型就会报一个“单条日志模式错误”并将对应的异常日志模式和对应的数量反映在检测结果中,如果日志模式数量的最后一个元素不为空,模型会报一个“模式新增”的异常并将对应的新增日志模式和数量反映在结果中,再经过用户核实反馈,如果反馈是检测无误,即新增的日志模式是异常日志模式,那么就将新增的日志模式更新到异常日志模式库中,如果反馈是检测错误,即新增的日志模式是因为系统更新等方式引入的正常日志模式,那么就将新增的日志模式更新到总日志模式序列中去。(此步骤中的模型指的是本发明的判断逻辑所构成的模型表述,因为日志模式数量序列的倒数第二元素对应的是异常日志模式的数量,不为0即说明这个时间窗口包含有异常日志模式,可以直接报异常。)
对于序列异常检测:
通过本领域的深入研究和大量测试,发现因为系统的并发性和不稳定性,导致通过一定长度的日志序列预测下一个日志的方式在逻辑上合理但是在实际中不怎么适用,另一个发现是日志的序列关系可以转换为数量关系。虽然一个并发的系统在极短的时间内(对应日志数量窗口对应的时间)是不稳定的,但是在较长的时间上(几分钟,对应时间窗口)是具有一定稳定性的,因此本发明可以在较长的时间上将日志的序列关系(即一个工作流会打印哪些日志,并且这些日志是以怎样的顺序进行打印的)转换为数量关系(即一个工作流会打印哪些日志,并且各个日志类型(即日志模式)对应的日志数量是多少)。在实际中,序列关系异常最经典的就是某个工作流的某个模块大量多次执行或者少执行,表现在转换后的数量关系上就是某个或者某几个日志模式的突增突降。为了提高检测结果的可解释性和依据奥卡姆剃刀原则,本发明采取同比环比的方式来检测序列异常。具体实现方式如下:
1、同比环比是针对于单个日志模式来说的,所以本发明会遍历(可并行)每一个已知日志模式,对每一个日志模式做同样的逻辑判断,如下:
2、本实施例将时间窗口一般设为5分钟,当时间窗口大小设定完成后,每天的00:00-00:05分是第一个数据点,00:05-00:10是第二个数据点,依此类推。稳定的系统的日志数量是具有时刻周期性的,即今天00:00-00:05时间窗口内某个日志模式对应的日志数量和昨天(及更长时间)这个时间窗口的那个日志模式对应的日志数量是相近的。
3、因为现实中系统是不完全稳定的,所以本实施例设置了一个时间偏移量t,即判断异常时不是只和历史同时刻(同时间窗口)的比,而是和历史同时刻加同时刻左右t个时间窗口的数据比。具体的比较方式为:
召回当前日志模式在历史数据(近一年)中同时间窗口及偏移t个窗口的内的数量组成一个历史日志数量序列(数组),计算其中位数作为其期望日志数量,然后将历史日志数量序列的每一个值减去这期望日志数量得到残差序列,然后用核密度估计模型来计算其日志数量的上下阈值,当实际上的日志数量超过上阈值或低于下阈值就会告警。工程实现时可以在前一天晚上将第二天每一个时刻的日志模式序列的期望值,上下阈值都计算出来。
对于不变量异常检测:
此类异常检测的重点是如何挖掘日志模式之间存在的不变量关系。目前业内使用的方式有两种,一是专家模型,即通过专家输入系统日志中存在的不变量关系,这种方式的缺点是耗时耗力并且很难找到这样的专家,并且在系统更新之后专家输入的不变量就有可能不适用了。二是Invariants Mining,通过奇异值分解的方式,这种方式的缺点是效率低且调参难度大。为了解决上述难点,本发明提出了新型不变量挖掘和分析算法,主要贡献是定义了不变量的数学关系和使用机器学习算法对这种数学关系进行建模分析(即不变量挖掘和分析算法),具体内容如下:
新型不变量挖掘和分析算法:
通过机器学习算法快速且准确的挖掘日志模式的不变量关系。
日志数据中的不变量关系本质上是系统工作流的主干和主干,主干和分支之间的关系。例如,在主干代码中有日志打印语句print(日志模式A)和print(日志模式B),那么日志模式A和日志模式B就是一组不变量,他们的不变量关系为1:1,即在较长的时间窗口内,日志模式A和日志模式B的对应的日志数量应该相等或者相差极小。因为,一个工作流可能涉及多个分支,分支又有可能有分支,而且存在if、else等逻辑分支,所以日志模式的不变量关系是比较复杂的。经过深入的研究和大量的测试发现日志模式的不变量关系大都可以拆分为二元的日志模式数量的线性关系(二元是指只涉及两个日志模式),不可拆分的不变量基本都是实际操作不需要的(即对日志分析没有帮助的),这样即可将不变量挖掘这个看起来复杂的命题转化为较长时间窗口内日志模式数量的二元线性关系挖掘,从而能够给出不变量的数学定义:在时间窗口一定的情况下,如果日志模式A和日志模式B是一组不变量,那么一定存在常数w、b和thres使得在所有的时间窗口内,日志模式A和B对应的日志数量numA和numB一定满足|numA–w*numB-b|/(numA+numB)/2<=thres。具体的算法实现流程为:
首先是训练过程,先将训练日志序列通过时间滑动窗口切分为一个个日志子序列序列,然后将每一个子序列转换为日志模式数量序列,这样就可以得到日志模式数量矩阵,横轴表示的是各个时间窗口,纵轴表示的是各个日志模式。不变量之间的线性关系可以通过机器学习的线性回归建模表示。假设总日志模式序列的大小为N,那么潜在的二元不变量是N!/2*(N-2)!个,为了提高挖掘效率,本实施例设定了剪枝策略:1、如果一个日志模式在日志模式数量矩阵中对应的取值不为零的日志模式数量序列的个数小于常数K(比如5),则剪去所有与这个日志模式相关的潜在不变量;2、对于日志模式A和日志模式B,设它们在日志模式数量矩阵中对应的取值分别不为0和同时不为0的日志模式数量序列的个数分别为numLA,numLB和numLA_B,(LA为日志模式A所对应的取值不为0的日志模式数量序列;LB为日志模式B所对应的取值不为0的日志模式数量序列,LA_B为日志模式A和日志模式B同时不为零的日志模式数量序列),那么如果numLA_B/max(numLA,numLB)<0.9,那么剪去这个不变量组合。对于剩下的不变量组合,从它们同时不为零的日志模式数量序列中提取出各自的数量序列即LA、LB,然后用这两个数据训练出一个线性回归模型M,然后用LA和LB去计算M的决定系数score,如果score>0.8,那么这个组合就视为一组不变量,然后计算|numA–w*numB-b|/(numA+numB)/2序列(其中w为斜率,b为截距,是模型M的参数,可直接获取),进而根据3-sigma原则计算thres(检测阈值)。检测过程,首先将检测数据(时间窗口大小的日志子序列)转换为日志模式数量序列,然后对于每一个不变量计算判决值|numA–w*numB-b|/(numA+numB)/2,如果判决值大于对应的score,那么模型就会报一个“不变量异常“并将对应的不变量和线性关系反映在结果中。
综上,本发明首先通过历史数据初始化一个日志模式库,然后在线检测的时候,单个数据点(五分钟时间窗口内的所有日志)单独通过日志解析算法进行解析得到这个数据点的日志模式,然后以最长公共子序列的长度作为相似度度量方法将得到的每一个日志模式与模式库里面的模式进行匹配(可并行),匹配结果有三种,一是完全匹配;二是,部分匹配,即模式库中有一个与其相似度很高但是不是完全匹配的日志模式,这种情况下将这两个日志模式进行融合(把不相同的地方以通配符替代),将模式库中对应的日志模式修改为融合后的日志模式;三是,匹配失败,即模式库中不存在与其相似度很高的日志模式,在该情况下将其作为新的日志模式加入日志模式库。完成日志模式库的自动实时迭代(增量学习),并且极大的提高了日志异常检测的召回率和准确性。
和当下日志异常检测模型只重点检测日志序列异常DeepLog或者不变量异常Invariants Mining相比,本发明的日志异常检测模型重点检测包括单条日志异常,不变量异常,日志序列日志在内的日志相关的所有异常,这三种异常是相互补充且相互之间有交叉的,只有将在三种异常都考虑在内才能更好的分析日志异常,进而显著提升召回率和准确率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (6)

1.一种高召回率的日志异常检测方法,其特征在于,遍历每一个已知日志模式,对每一个已知日志模式做相同的判断,提取日志模式数量序列,在提取的统一的日志模式数量序列下,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,同时检测单条日志异常、日志序列异常和不变量异常;所述日志模式数量序列通过训练过程中保存的总日志模式序列和日志解析算法转换得到;
对每一个已知日志模式做相同的判断,提取日志模式数量序列的具体内容为:
获取指定时间窗口的日志序列,引入一个未知日志模式和异常日志模式,利用时间滑动窗口提取日志模式数量序列;
引入一个未知日志模式和异常日志模式,利用时间滑动窗口提取日志模式数量序列的具体内容为:
获取指定时间窗口的日志序列,并对该指定时间窗口的日志序列进行训练,通过训练过程中保存的总日志模式序列和日志解析算法,将其转换为日志模式数量序列,假设训练过程中保存的总日志模式序列的大小为N,则日志模式数量序列的长度为N+2,将日志模式数量序列中前N个元素与总日志模式序列中的模式通过下标一一对应,将最后一个元素对应为未知模式,即未在训练数据中出现的模式,将倒数第二个元素对应为异常日志模式。
2.根据权利要求1所述的高召回率的日志异常检测方法,其特征在于,采用并行方式遍历每一个已知日志模式。
3.根据权利要求1所述的高召回率的日志异常检测方法,其特征在于,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,对单条日志异常进行检测的具体内容为:
创建并维持一个异常日志模式库,将初始时的异常日志模式库设定为空,在检测时,若日志模式数量的倒数第二个元素不为0,反馈单条日志模式错误信号,并将对应的异常日志模式和对应的数量反映在检测结果中;若日志模式数量的最后一个元素不为空,反馈模式新增的异常信号,并将对应的新增日志模式和数量反映在检测结果中,再结合用户核实反馈进行确定,若用户核实反馈为检测无误,即新增的日志模式为异常日志模式,则将新增的日志模式更新至异常日志模式库中,若用户核实反馈为检测错误,即新增的日志模式为引入的正常日志模式,则将新增的日志模式更新到总日志模式序列中。
4.根据权利要求1所述的高召回率的日志异常检测方法,其特征在于,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,采用同比环比的方式对日志序列异常进行检测;采用同比环比的方式对日志序列异常进行检测的具体内容为:
遍历每一个已知日志模式,对每一个已知日志模式执行相同的逻辑判断,即设定时间窗口长度,当时间窗口大小设定完成后,将每日的时间进行多个数据点划分;设置一个时间偏移量t,利用实际日志数量与历史同时刻加同时刻左、右各t个时间窗口的数据比判断日志序列异常。
5.根据权利要求4所述的高召回率的日志异常检测方法,其特征在于,利用实际日志数量与历史同时刻加同时刻左、右各t个时间窗口的数据比判断日志序列异常的具体内容为:
召回当前日志模式所在历史数据中同时间窗口及偏移t个窗口的内的数量组成一个历史日志数量序列,计算历史日志数量序列的中位数作为其期望日志数量,随后将历史日志数量序列的每一个值减去这期望日志数量得到残差序列后,利用核密度估计模型计算其日志数量的上、下阈值,当实际的日志数量超过上阈值或者低于下阈值时,执行异常告警。
6.根据权利要求1所述的高召回率的日志异常检测方法,其特征在于,基于单条日志异常、日志序列异常和不变量异常三者之间的关系,采用新型不变量挖掘和分析算法对不变量异常进行检测;采用新型不变量挖掘和分析算法对不变量异常进行检测的具体内容为:
1)将训练日志序列通过时间滑动窗口切分为多个日志子序列,将每一个日志子序列转换为日志模式数量序列,进而获取日志模式数量矩阵,其中横轴表示各个时间窗口,纵轴表示各个日志模式;
2)假设总日志模式序列的大小为N,则潜在的二元不变量为N!/2*(N-2)!个,利用剪枝策略进行判断,若一个日志模式在日志模式数量矩阵中对应的取值不为零的日志模式数量序列的个数小于常数K,则剪去所有与该日志模式相关的潜在不变量;对于日志模式A和日志模式B的组合,假设二者在日志模式数量矩阵中对应的取值分别不为零和同时不为零的日志模式数量序列的个数分别为numLA,numLB和numLA_B,若numLA_B/max(numLA,numLB)<0.9,则剪去这个不变量组合,对于剩下的不变量组合,从二者同时不为零的日志模式数量序列中提取各自的数量序列LA、LB,随后利用这两个数据训练线性回归模型M,基于LA和LB计算M的决定系数score,若score>0.8,则将该不变量组合视为一组不变量,随后计算|numA–w*numB-b|/(numA+numB)/2序列作为判决值,其中w为斜率,b为截距,numA和numB分别为日志模式A和B对应的日志数量,进而根据3-sigma原则计算检测阈值thres;
3)若步骤2)计算得到的判决值大于对应的score,则判断出现不变量异常,并将对应的不变量和线性关系反映在检测结果中。
CN202110404453.0A 2021-04-15 2021-04-15 一种高召回率的日志异常检测方法 Active CN113064873B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110404453.0A CN113064873B (zh) 2021-04-15 2021-04-15 一种高召回率的日志异常检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110404453.0A CN113064873B (zh) 2021-04-15 2021-04-15 一种高召回率的日志异常检测方法

Publications (2)

Publication Number Publication Date
CN113064873A CN113064873A (zh) 2021-07-02
CN113064873B true CN113064873B (zh) 2022-11-15

Family

ID=76567244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110404453.0A Active CN113064873B (zh) 2021-04-15 2021-04-15 一种高召回率的日志异常检测方法

Country Status (1)

Country Link
CN (1) CN113064873B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114615018B (zh) * 2022-02-15 2023-10-03 北京云集智造科技有限公司 一种金融业交易全链路日志的异常检测方法
CN115150159B (zh) * 2022-06-30 2023-11-10 深信服科技股份有限公司 一种流量检测方法、装置、设备及可读存储介质
CN115871745B (zh) * 2022-12-28 2024-05-10 江苏安防科技有限公司 一种应用于轨道交通的智能维护方法与装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495429B2 (en) * 2010-05-25 2013-07-23 Microsoft Corporation Log message anomaly detection
US10042697B2 (en) * 2015-05-28 2018-08-07 Oracle International Corporation Automatic anomaly detection and resolution system
CN108415789B (zh) * 2018-01-24 2020-05-22 西安交通大学 面向大规模混合异构存储系统的节点故障预测系统及方法
CN112579414B (zh) * 2020-12-08 2023-07-28 西安邮电大学 日志异常检测方法及装置

Also Published As

Publication number Publication date
CN113064873A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
CN113064873B (zh) 一种高召回率的日志异常检测方法
US20220405592A1 (en) Multi-feature log anomaly detection method and system based on log full semantics
CN113434357B (zh) 基于序列预测的日志异常检测方法及装置
CN113326244B (zh) 一种基于日志事件图和关联关系挖掘的异常检测方法
CN110958136A (zh) 一种基于深度学习的日志分析预警方法
CN113282461B (zh) 传输网的告警识别方法和装置
Kobayashi et al. Towards an NLP-based log template generation algorithm for system log analysis
CN113312447A (zh) 基于概率标签估计的半监督日志异常检测方法
CN112905380A (zh) 一种基于自动化监控日志的系统异常检测方法
CN113779590B (zh) 一种基于多维度表征的源代码漏洞检测方法
CN115456107A (zh) 一种时间序列异常检测系统及方法
CN113268370B (zh) 一种根因告警分析方法、系统、设备及存储介质
KR20210011822A (ko) 인공 지능 기반 비정상 로그를 탐지하는 방법 및 이를 구현하는 시스템
CN110399278B (zh) 基于数据中心异常监控的告警融合系统及方法
Li et al. Improving performance of log anomaly detection with semantic and time features based on bilstm-attention
CN115757062A (zh) 一种基于句嵌入以及Transformer-XL的日志异常检测方法
CN114168373A (zh) 一种基于nlp的容灾系统异常点检测方法
CN111209158B (zh) 服务器集群的挖矿监控方法及集群监控系统
CN111221704A (zh) 一种确定办公管理应用系统运行状态的方法及系统
Pinna et al. Fault identification in wind turbines: a data-centric machine learning approach
CN114721861B (zh) 一种基于日志差异化比对的故障定位方法与系统
Selvi et al. Fault Prediction for Large Scale Projects Using Deep Learning Techniques
CN113485863B (zh) 基于改进生成对抗网络生成异构不平衡故障样本的方法
Battal et al. Fault Detection Model Using Measurement Data in Fiber Optic Internet Lines
CN117254980B (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