CN112732655B - 针对无格式日志的在线解析方法及系统 - Google Patents

针对无格式日志的在线解析方法及系统 Download PDF

Info

Publication number
CN112732655B
CN112732655B CN202110042680.3A CN202110042680A CN112732655B CN 112732655 B CN112732655 B CN 112732655B CN 202110042680 A CN202110042680 A CN 202110042680A CN 112732655 B CN112732655 B CN 112732655B
Authority
CN
China
Prior art keywords
log
template
grouping
group
preset
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
CN202110042680.3A
Other languages
English (en)
Other versions
CN112732655A (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.)
Beijing 6Cloud Information Technology Co Ltd
Original Assignee
Beijing 6Cloud Information 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 Beijing 6Cloud Information Technology Co Ltd filed Critical Beijing 6Cloud Information Technology Co Ltd
Priority to CN202110042680.3A priority Critical patent/CN112732655B/zh
Publication of CN112732655A publication Critical patent/CN112732655A/zh
Application granted granted Critical
Publication of CN112732655B publication Critical patent/CN112732655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • 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/13File access structures, e.g. distributed indices
    • 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/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • 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

Abstract

本发明提供一种针对无格式日志的在线解析方法及系统,属于计算机技术领域。所述方法包括:日志预处理,将接收到的日志处理为分组模板;模板聚合,将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板。所述在线解析系统应用所述的针对无格式日志的在线解析方法,该系统包括:日志预处理单元,用于将接收到的日志处理为分组模板;模板聚合单元,用于将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板。该方法无需对日志格式提前了解就可以根据日志时间实时对日志模板进行解析,同时对非固定长度的日志模板进行准确解析,提高解析的准确度。

Description

针对无格式日志的在线解析方法及系统
技术领域
本发明涉及计算机技术领域,具体地涉及一种针对无格式日志的在线解析方法以及一种针对无格式日志的在线解析系统。
背景技术
大规模系统通常会生成日志来记录系统状态和运行时的信息,每个日志都包含了时间戳和指示发生了什么事件的日志信息。这些有价值的日志信息经过日志解析后,可以使用机器学习的方法来进行异常检测,及时发现系统中的异常事件。
每个日志消息由相应系统开发人员编写的一种日志语句打印,并记录一个特定的系统事件。开发人员编写的自由文本消息内容通常很难结构化,因为它是由常量字符串和变量值组成的。常量部分取决于日志消息的事件模板,在不同事件发生时保持固定。变量部分携带感兴趣的动态运行时信息(即参数),这些信息在不同的事件发生之间可能有所不同。日志解析的目标是将每个日志消息转换为参数和与之相关联的特定事件模板。
日志解析的传统方法,是基于关键字匹配对日志进行解析和识别。更具体地说,每个日志消息都可以被解析成带有一些日志头如日期、级别以及包含参数(可变部分)的事件模板(固定部分)。如日志消息:2020-04-28 20:15:54INFO Received block blk_321ofsize 67108864from 10.251.126.5:50010,被解析成为时间、级别和事件,事件模板为"Received block*of size*from*"。这种传统方法在面临复杂系统和多样性以及变化性的日志时十分低效。
2017年《Drain:An Online Log Parsing Approach with Fixed DepthTree.pdf》论文中提到的固定深度树自动算法,基于相同日志模板的日志长度相同的假设,先将日志根据长度分类,再根据固定深度的(默认使用第一个)标记(token)继续分类,最后在类内根据相似度阈值的方法进行分组,得到不同分组的日志模板。这种计算方法最大的缺陷是其假设不成立,即:相同日志模板产生的日志长度未必相同。例如两个事件:
s1=Command DropTable Failed on:node-127
s2=Command UpdateIndex Failed on:node-235node-236
事件s1和s2的日志模板均为Command*Failed on:*,其参数长度可变,而非属于两个不同的日志模板。Drain(depth tree based online log parsing,基于深度树的在线日志解析)在处理这样的参数长度可变事件时并不能够准确的解析,会将本应属于同一日志模板的事件划分为不同的日志模板,增加了系统模板的数量,降低了解析准确度。
发明内容
本发明实施方式的目的是提供一种针对无格式日志的在线解析方法及系统,该方法无需对日志格式提前了解就可以根据日志时间实时对日志模板进行解析,同时对非固定长度的日志模板进行准确解析,提高解析的准确度。
为了实现上述目的,本发明第一方面提供一种针对无格式日志的在线解析方法,所述方法包括:
日志预处理,对接收到的日志进行预处理,得到日志分组模板;
模板聚合,将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板。
进一步地,所述对接收到的日志进行预处理,得到日志分组模板,包括:
根据参数规则将日志中的参数变量替换为对应的字符串;
将参数变量替换完成后的日志切分为多个标记;
构建解析树,对切分后的日志进行分类;
对于每一分类,根据相似度对该分类的日志进行分组;
对于每一日志分组,确定该日志分组是否存在预设分组模板:
若存在,比较该日志分组内的日志与该日志分组的预设分组模板位于相同位置的标记,若两个标记不相同,使用通配符代替所述预设分组模板相应位置的标记,得到所述日志分组模板;
若不存在,则新建日志分组,将新建的日志分组内的日志作为该日志的日志分组模板和该日志分组的预设分组模板。
进一步地,所述构建解析树,对切分后的日志进行分类,包括:
通过日志标记数和索引构建解析树,对切分后的日志进行分类。
进一步地,所述将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板,包括:
日志分组模板处理:将日志分组模板中相邻的通配符合并为一个通配符,得到第一日志分组模板;
判断所述第一日志分组模板是否存在对应的预设特征模板;若不存在,将所述第一日志分组模板新建为预设特征模板;
若存在,则计算第一日志分组模板与对应的预设特征模板之间的编辑距离;根据所述编辑距离计算第一日志分组模板与对应的预设特征模板之间的相似度;若所述相似度大于或等于设定阈值,则将第一日志分组模板与对应的预设特征模板进行合并,得到公共特征模板,并将预设特征模板更新为所述公共特征模板;若相似度小于设定阈值,则将所述第一日志分组模板新建为预设特征模板;
记录新建或更新的预设特征模板的ID。通过对日志分组模板进行处理将使用通配符代替的不同长度的参数处理来具有相同的长度,减小仅存在参数长度不同的日志分组模板分类解析错误的概率,同时通过将第一日志分组模板与预设特征模板进行合并,得到的公共特征模板作为新的预设特征模板,能够持续更新系统预设特征模板,相当于预设特征模板具有自学习功能,有效提升日志解析准确率。
可选的,所述根据所述编辑距离计算第一日志分组模板与预设特征模板之间的相似度,包括:采用SimTpl=(n-LevDistance)/n计算相似度,
其中,LevDistance为所述编辑距离,SimTpl为所述相似度,n为所述第一日志分组模板字符数和预设特征模板字符数中的较大值。
可选的,所述在线解析方法还包括:
将原始日志和日志分组模板对应的索引进行存储。这样存储后用户可以通过分组模板查询对应的特征模板和特征模板ID,用户也可以查询当前模板包括的所有原始日志。
本发明第二方面提供一种针对无格式日志的在线解析系统,所述在线解析系统应用所述的针对无格式日志的在线解析方法,所述在线解析系统包括:
日志预处理单元,用于对接收到的日志进行预处理,得到日志分组模板;
模板聚合单元,用于将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板。
进一步地,所述日志预处理单元包括:
变量替换模块,用于根据参数规则将日志中的参数变量替换为对应的字符串;
切分模块,用于将参数变量替换完成后的日志切分为多个标记;
分类模块,用于构建解析树对切分后的日志进行分类;
分组模块,用于根据相似度对每一分类中的日志进行分组;
日志分组模板生成模块,用于确定每一日志分组是否存在预设分组模板:
若存在,比较该日志分组内的日志与该日志分组的预设分组模板位于相同位置的标记,若两个标记不相同,使用通配符代替预设分组模板相应位置的标记,得到日志分组模板;若不存在,则新建日志分组,将新建的日志分组内的日志作为该日志的日志分组模板和该日志分组的预设分组模板;
所述模板聚合单元包括:
模板处理模块,用于将所述日志分组模板中相邻的通配符合并为一个通配符,得到第一日志分组模板;
编辑距离计算模块,用于计算第一日志分组模板与对应的预设特征模板之间的编辑距离;
相似度计算模块,用于根据所述编辑距离计算第一日志分组模板与对应的预设特征模板之间相似度;
预设特征模板更新模块,用于判断所述第一日志分组模板是否存在对应的预设特征模板;若不存在,将所述第一日志分组模板新建为预设特征模板;
若存在且所述相似度大于或等于设定阈值,则将第一日志分组模板与对应的预设特征模板进行合并,得到公共特征模板,并将预设特征模板更新为所述公共特征模板;若存在且相似度小于设定阈值,则将所述第一日志分组模板新建为预设特征模板;记录新建或更新的预设特征模板的ID。
通过模板处理模块对日志分组模板进行处理将使用通配符代替的不同长度的参数处理来具有相同的长度,减小仅存在参数长度不同的日志分组模板分类解析错误的概率,同时通过将第一日志分组模板与预设特征模板进行合并,得到的公共特征模板作为新的预设特征模板,能够持续更新系统预设特征模板,相当于预设特征模板具有自学习功能,有效提升日志解析准确率。
可选的,所述在线解析系统还包括:
数据存储单元,用于将原始日志和日志分组模板对应的索引进行存储;
统计单元,用于对解析结果进行统计;
查询单元,用于根据设定的查询条件查询对应的日志信息。数据存储单元这样存储后用户可以通过查询单元设定分组模板为查询条件查询对应的特征模板和特征模板ID,用户也可以查询当前模板包括的所有原始日志。统计单元对解析结构进行统计后,用户通过查询每条日志的模板,可以将感兴趣的一些原始日志根据模板进行聚合提供给用户,将隶属同一特征模板的大量日志进行统计,获得这些不同模板日志的分布状况,以及统计情况,进行异常检测等。
另一方面,本发明提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行所述的针对无格式日志的在线解析方法。
通过上述技术方案,该方法无需对日志格式提前了解就可以根据日志时间实时对日志模板进行解析,同时对非固定长度的日志模板进行准确解析,提高解析的准确度,对原始日志进行流式解析效率高。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明一种实施方式提供的针对无格式日志的在线解析方法流程图;
图2是本发明一种实施方式提供的日志预处理流程图;
图3是本发明一种实施方式提供的模板聚合流程图;
图4是本发明一种实施方式提供的针对无格式日志的在线解析方法示意图;
图5是本发明一种实施方式提供的针对无格式日志的在线解析系统框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1是本发明一种实施方式提供的针对无格式日志的在线解析方法流程图。如图1所示,所述方法包括:
日志预处理,对接收到的日志进行预处理,得到日志分组模板;
模板聚合,将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板。
具体的,如图2所示,所述对接收到的日志进行预处理,得到日志分组模板,包括:
第一步,根据参数规则将日志中的参数变量替换为对应的字符串。日志中经常出现一些常见的参数变量,可以使用一些规则对这些常见的变量进行遍历替换,例如将时间戳形式如2011-01-26 13:02:28,遍历替换为字符串${TIME},将IP地址形式如192.168.115.12遍历替换为字符串${IPADDR},将URI形式如https://zhuanlan.zhihu.com/p/60617645遍历替换为字符串${URI},将冒号连接的、等于号连接的、单双引号之内、大中小括号之内的字符串遍历替换为字符串${DATA}等等。
第二步,将参数变量替换完成后的日志切分为多个标记。如针对中文日志使用中文分词库进行切分,针对英文日志使用空格切分,将一条日志切分成多个标记(token)。
例如处理前日志为:
Log Message 1:172.23.67.0:4635 Command UpdateIndex Failed on:node-235node-236
Log Message 2:172.23.68.0:4635 Command DropTable Failed on:node-127
Log Message 3:172.23.67.0:4635 Command DropTable Failed on:node-26
Log Message 4:172.23.69.0:4635 Command UpdateIndex Failed on:node-265node-266
Log Message 5:Image file of size 57717 loaded in 0seconds.
Log Message 6:Image file of size 70795 saved in 0seconds.
Log Message 7:Edits file\tmp\hadoop-Rico\dfs\name\current\edits ofsize 1049092 edits#2057loaded in 0 seconds.
处理后为:
Raw log key 1:${IPADDR}:${DATA}Command UpdateIndex Failed on:node-235node-236
Raw log key 2:${IPADDR}:${DATA}Command DropTable Failed on:node-127
Raw log key 3:${IPADDR}:${DATA}Command DropTable Failed on:node-26
Raw log key 4:${IPADDR}:${DATA}Command UpdateIndex Failed on:node-265node-266
Raw log key 5:Image file of size 57717 loaded in 0seconds.
Raw log key 6:Image file of size 70795 saved in 0seconds.
Raw log key 7:Edits file${URI}of size 1049092 edits#2057 loaded in 0seconds。
第三步,构建解析树,对切分后的日志进行分类,一般通过日志标记数和索引构建解析树对切分后的日志进行分类。索引一般为切分后的日志的第一个或者前几个标记。
第四步,对于每一分类,根据相似度对该分类的日志进行分组。在分类内部根据相似度对日志进行分组,得到日志的所属分组,其中相似度计算方法与DRAIN相同。
第五步,对于每一日志分组,确定该日志分组是否存在预设分组模板:
若存在,比较该日志分组内的日志与该日志分组的预设分组模板位于相同位置的标记,若两个标记相同,则不修改;若两个标记不相同,使用通配符代替所述预设分组模板相应的位置的标记,得到日志分组模板;
若不存在,则新建日志分组,将新建的日志分组内的日志作为该日志的日志分组模板和该日志分组的预设分组模板。通配符一般采用*。
前述的7条日志处理后得到如下4个日志分组模板:
分组模板1:<6>${IPADDR}:${DATA}Command UpdateIndex Failed on:**
分组模板2:<5>${IPADDR}:${DATA}Command DropTable Failed on:*
分组模板3:<9>Image file of size**in*seconds.
分组模板4:<13>Edits file${URI}of size*edits#*loaded in*seconds。
可见日志分组模板1和日志分组模板2通过以上处理后被判定为隶属不同的分组模板,但实质上二者属于同一分组模板,仅仅是参数长度产生了变化。
基于此,本发明进一步提出了如图3所示的模板聚合方法,所述将多个所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板,包括:
第一步,日志分组模板处理,将所述日志分组模板中相邻的通配符合并为一个通配符,得到第一日志分组模板。每个日志分组模板由token和通配符*构成,例如分组模板1处理成为:
<6>${IPADDR}:${DATA}Command UpdateIndex Failed on:*
分组模板2中由于不存在邻近的通配符,因此处理前后相同。
第二步,判断所述第一日志分组模板是否存在预设特征模板;若不存在,将所述第一日志分组模板新建为预设特征模板;若存在,则计算第一日志分组模板与对应的预设特征模板之间的编辑距离LevDistance。编辑距离是指两个字符串之间,由一个转成另一个所需要的最少编辑操作次数。允许的编辑操作包括:将一个字符替换成另一个字符,插入一个字符或者删除一个字符。如两个字符串a='love',b='lolpe'。那么计算a和b的编辑距离,就是要算出从a变化到b需要经过多少个步骤。
第1步:love->lolve(插入l)
第2步:lolve->lolpe(用v替换成p)
那么我们就说他们的编辑距离为2。
第三步,根据所述编辑距离计算第一日志分组模板与对应的预设特征模板之间的相似度。在本发明中采用SimTpl=(n-LevDistance)/n计算相似度,
其中,LevDistance为编辑距离,SimTpl为相似度,n为第一日志分组模板字符数和预设特征模板字符数中的较大值。
若相似度大于或等于设定阈值,则将第一日志分组模板与对应的预设特征模板进行合并,得到公共特征模板,并将预设特征模板更新为所述公共特征模板。
需要说明的是,对应的预设特征模板是第一日志分组模板所属的日志分组的预设特征模板。
合并方法为使用动态规划方法求其最长公共子序列,并对两个序列进行对齐。这里的对齐字符串,既不是左对齐,也不是右对齐,而是使用字符串编辑距离矩阵,让两个字符串中相同的字符串彼此对应上。举个例子,假设需要对齐下面的两个字符串:
word 1:GATTACA
word 2:GCATGCU
对齐的结果是:
word 1:G_ATTACA
word 2:GCATG_CU
下划线表示相应位置需要插入一个字符。
处理后的分组模板1和分组模板2的对齐结果为:
分组模板1:${IPADDR}:${DATA}Command U__pdateIndex Failed on:*
分组模板2:${IPADDR}:${DATA}Command DropTable__Failed on:*
对齐后对两个序列不匹配或者需要插入的token位置用通配符*填充。例如最终合并得到分组模板1和分组模板2两个模板的公共特征模板为:
${IPADDR}:${DATA}Command*Failed on:*
若相似度小于设定阈值,则将所述第一日志分组模板新建为预设特征模板。
最后记录新建或更新的预设特征模板的ID。通过对日志分组模板进行处理将使用通配符代替的不同长度的参数处理来具有相同的长度,减小仅存在参数长度不同的日志分组模板分类解析错误的概率,同时通过将第一日志分组模板与预设特征模板进行合并,得到的公共特征模板作为新的预设特征模板,能够持续更新系统预设特征模板,相当于预设特征模板具有自学习功能,有效提升日志解析准确率。
可选的,所述在线解析方法还包括:
将原始日志和日志分组模板对应的索引进行存储。这样存储后用户可以通过分组模板查询对应的特征模板和特征模板ID,用户也可以查询当前模板包括的所有原始日志。
如图4所示是本发明的一种具体实施方式,切分后的日志根据标记数进行第一次分类,具有相同标记数的分到同一类,以前述的7条日志为例,Raw log key 1和Raw logkey 4包括6个标记,分为一类;Raw log key 2和Raw log key 3包括5个标记,分为一类;Raw log key 5和Raw log key 6包括9个标记,分为一类;Raw log key 7标记个数与其余6条日志都不相同,单独为一类。然后再对具有相同标记数的日志进行第二次分类,第二次分类根据各日志的索引进行分类,具有相同索引的分到同一类,在本实施例中,索引采用切分后的日志的第一个标记。Raw log key 1和Raw log key 4索引均为${IPADDR}:${DATA},分为一类;Raw log key 2和Raw log key 3索引均为${IPADDR}:${DATA},分为一类;Raw logkey 5和Raw log key 6索引为Image分为一类。分类完成后根据相似度进行分组,根据各个分组的预设分组模板得到日志分组模板,然后将所述日志分组模板中相邻的通配符合并为一个通配符,得到第一日志分组模板;然后根据各个分组的预设特征模板计算编辑距离,根据所述编辑距离计算第一日志分组模板与对应的预设特征模板之间的相似度,若相似度大于或等于设定阈值,则将第一日志分组模板与对应的预设特征模板进行合并,得到公共特征模板,并将预设特征模板更新为所述公共特征模板,记录更新的预设特征模板的ID。
图5是本发明一种实施方式提供的针对无格式日志的在线解析系统框图如图5所示,所述在线解析系统应用所述的针对无格式日志的在线解析方法,所述在线解析系统包括:
日志预处理单元,用于对接收到的日志进行预处理,得到日志分组模板;
模板聚合单元,用于将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板。
进一步地,所述日志预处理单元包括:
变量替换模块,用于根据参数规则将日志中的参数变量替换为对应的字符串;
切分模块,用于将参数变量替换完成后的日志切分为多个标记;
分类模块,用于构建解析树对切分后的日志进行分类,确定日志所属的分类;
分组模块,用于用于根据相似度对每一分类中的日志进行分组;
日志分组模板生成模块,用于确定每一日志分组是否存在预设分组模板:若存在,比较该日志分组内的日志与该日志分组的预设分组模板位于相同位置的标记,若两个标记不相同,使用通配符代替预设分组模板相应位置的标记,得到日志分组模板;若不存在,则新建日志分组,将新建的日志分组内的日志作为该日志的日志分组模板和该日志分组的预设分组模板;
所述模板聚合单元包括:
模板处理模块,用于将所述日志分组模板中相邻的通配符合并为一个通配符,得到第一日志分组模板;
编辑距离计算模块,用于计算第一日志分组模板与对应的预设特征模板之间的编辑距离;
相似度计算模块,用于根据所述编辑距离计算第一日志分组模板与对应的预设特征模板之间相似度;
预设特征模板更新模块,用于判断所述第一日志分组模板是否存在对应的预设特征模板;若不存在,将所述第一日志分组模板新建为预设特征模板;
若存在且所述相似度大于或等于设定阈值,则将第一日志分组模板与对应的预设特征模板进行合并,得到公共特征模板,并将预设特征模板更新为所述公共特征模板;若存在且相似度小于设定阈值,则将所述第一日志分组模板新建为预设特征模板;记录新建或更新的预设特征模板的ID。
通过模板处理模块对日志分组模板进行处理将使用通配符代替的不同长度的参数处理来具有相同的长度,减小仅存在参数长度不同的日志分组模板分类解析错误的概率,同时通过将第一日志分组模板与预设特征模板进行合并,得到的公共特征模板作为新的预设特征模板,能够持续更新系统预设特征模板,相当于预设特征模板具有自学习功能,有效提升日志解析准确率。
可选的,所述在线解析系统还包括:
数据存储单元,用于将原始日志和日志分组模板对应的索引进行存储;
统计单元,用于对解析结果进行统计;
查询单元,用于根据设定的查询条件查询对应的日志信息。数据存储单元这样存储后用户可以通过查询单元设定分组模板为查询条件查询对应的特征模板和特征模板ID,用户也可以查询当前模板包括的所有原始日志。统计单元对解析结构进行统计后,用户通过查询每条日志的模板,可以将感兴趣的一些原始日志根据模板进行聚合提供给用户,将隶属同一特征模板的大量日志进行统计,获得这些不同模板日志的分布状况,以及统计情况,进行异常检测等。
另一方面,本发明提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行所述的针对无格式日志的在线解析方法。
本发明提供的针对无格式日志的在线解析方法解决了DRAIN算法针对相同日志模板产生的日志长度未必相同的问题,同时对原始日志进行流式解析效率高,提供原始日志和特征模板索引存储,可以通过原始日志索引到特征模板,也可以通过特征模板索引到原始日志。
本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。

Claims (8)

1.一种针对无格式日志的在线解析方法,其特征在于,所述方法包括:
日志预处理,对接收到的日志进行预处理,得到日志分组模板,包括:
根据参数规则将日志中的参数变量替换为对应的字符串;
将参数变量替换完成后的日志切分为多个标记;
构建解析树对切分后的日志进行分类;
对于每一分类,根据相似度对该分类的日志进行分组;
对于每一日志分组,确定该日志分组是否存在预设分组模板:
若存在,比较该日志分组内的日志与该日志分组的预设分组模板位于相同位置的标记,若两个标记不相同,使用通配符代替预设分组模板相应位置的标记,得到日志分组模板;
若不存在,则新建日志分组,将新建的日志分组内的日志作为该日志的日志分组模板和该日志分组的预设分组模板;
模板聚合,将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板,包括:
日志分组模板处理:将日志分组模板中相邻的通配符合并为一个通配符,得到第一日志分组模板;
判断所述第一日志分组模板是否存在对应的预设特征模板;若不存在,将所述第一日志分组模板新建为预设特征模板;
若存在,则计算第一日志分组模板与对应的预设特征模板之间的编辑距离;根据所述编辑距离计算第一日志分组模板与对应的预设特征模板之间的相似度;若所述相似度大于或等于设定阈值,则将第一日志分组模板与对应的预设特征模板进行合并,得到公共特征模板,并将预设特征模板更新为所述公共特征模板;若相似度小于设定阈值,则将所述第一日志分组模板新建为预设特征模板;
记录新建或更新的预设特征模板的ID。
2.根据权利要求1所述的针对无格式日志的在线解析方法,其特征在于,所述构建解析树,对切分后的日志进行分类,包括:
通过日志标记数和索引构建解析树,对切分后的日志进行分类。
3.根据权利要求1所述的针对无格式日志的在线解析方法,其特征在于,所述根据所述编辑距离计算第一日志分组模板与预设特征模板之间的相似度,包括:采用SimTpl=(n-LevDistance)/n计算相似度,
其中,LevDistance为所述编辑距离,SimTpl为所述相似度,n为所述第一日志分组模板字符数和预设特征模板字符数中的较大值。
4.根据权利要求2所述的针对无格式日志的在线解析方法,其特征在于,所述在线解析方法还包括:
将原始日志和日志分组模板对应的索引进行存储。
5.一种针对无格式日志的在线解析系统,所述在线解析系统应用权利要求1-4中任一项所述的针对无格式日志的在线解析方法,其特征在于,所述在线解析系统包括:
日志预处理单元,用于对接收到的日志进行预处理,得到日志分组模板;
模板聚合单元,用于将所述日志分组模板进行聚合分类,根据聚合分类结果更新日志对应的预设特征模板。
6.根据权利要求5所述的针对无格式日志的在线解析系统,其特征在于,所述日志预处理单元包括:
变量替换模块,用于根据参数规则将日志中的参数变量替换为对应的字符串;
切分模块,用于将参数变量替换完成后的日志切分为多个标记;
分类模块,用于构建解析树对切分后的日志进行分类;
分组模块,用于根据相似度对每一分类中的日志进行分组;
日志分组模板生成模块,用于确定每一日志分组是否存在预设分组模板:若存在,比较该日志分组内的日志与该日志分组的预设分组模板位于相同位置的标记,若两个标记不相同,使用通配符代替预设分组模板相应位置的标记,得到日志分组模板;若不存在,则新建日志分组,将新建的日志分组内的日志作为该日志的日志分组模板和该日志分组的预设分组模板;
所述模板聚合单元包括:
模板处理模块,用于将日志分组模板中相邻的通配符合并为一个通配符,得到第一日志分组模板;
编辑距离计算模块,用于计算第一日志分组模板与对应的预设特征模板之间的编辑距离;
相似度计算模块,用于根据所述编辑距离计算第一日志分组模板与对应的预设特征模板之间相似度;
预设特征模板更新模块,用于判断所述第一日志分组模板是否存在对应的预设特征模板;若不存在,将所述第一日志分组模板新建为预设特征模板;若存在且所述相似度大于或等于设定阈值,则将第一日志分组模板与对应的预设特征模板进行合并,得到公共特征模板,并将预设特征模板更新为所述公共特征模板;若存在且相似度小于设定阈值,则将所述第一日志分组模板新建为预设特征模板;记录新建或更新的预设特征模板的ID。
7.根据权利要求5所述的针对无格式日志的在线解析系统,其特征在于,所述在线解析系统还包括:
数据存储单元,用于将原始日志和日志分组模板对应的索引进行存储;
统计单元,用于对解析结果进行统计;
查询单元,用于根据设定的查询条件查询对应的日志信息。
8.一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请权利要求1-4中任一项所述的针对无格式日志的在线解析方法。
CN202110042680.3A 2021-01-13 2021-01-13 针对无格式日志的在线解析方法及系统 Active CN112732655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110042680.3A CN112732655B (zh) 2021-01-13 2021-01-13 针对无格式日志的在线解析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110042680.3A CN112732655B (zh) 2021-01-13 2021-01-13 针对无格式日志的在线解析方法及系统

Publications (2)

Publication Number Publication Date
CN112732655A CN112732655A (zh) 2021-04-30
CN112732655B true CN112732655B (zh) 2024-02-06

Family

ID=75591858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110042680.3A Active CN112732655B (zh) 2021-01-13 2021-01-13 针对无格式日志的在线解析方法及系统

Country Status (1)

Country Link
CN (1) CN112732655B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590421B (zh) * 2021-07-27 2024-04-26 招商银行股份有限公司 日志模板提取方法、程序产品及存储介质
CN115329748B (zh) * 2022-10-14 2023-01-10 北京优特捷信息技术有限公司 一种日志解析方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017087437A1 (en) * 2015-11-17 2017-05-26 Nec Laboratories America, Inc. Fast pattern discovery for log analytics
CN110888849A (zh) * 2019-11-06 2020-03-17 国网上海市电力公司 一种在线日志解析方法、系统及其电子终端设备
CN111565192A (zh) * 2020-05-08 2020-08-21 南开大学 基于可信度的内网安全威胁多模型协同防御方法
CN111581057A (zh) * 2020-05-08 2020-08-25 厦门服云信息科技有限公司 一种通用日志解析方法、终端设备及存储介质
CN111930903A (zh) * 2020-06-30 2020-11-13 山东师范大学 基于深度日志序列分析的系统异常检测方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017087437A1 (en) * 2015-11-17 2017-05-26 Nec Laboratories America, Inc. Fast pattern discovery for log analytics
CN110888849A (zh) * 2019-11-06 2020-03-17 国网上海市电力公司 一种在线日志解析方法、系统及其电子终端设备
CN111565192A (zh) * 2020-05-08 2020-08-21 南开大学 基于可信度的内网安全威胁多模型协同防御方法
CN111581057A (zh) * 2020-05-08 2020-08-25 厦门服云信息科技有限公司 一种通用日志解析方法、终端设备及存储介质
CN111930903A (zh) * 2020-06-30 2020-11-13 山东师范大学 基于深度日志序列分析的系统异常检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LSC-TGT:基于字符串聚类和模板生成树的在线日志解析方法;祝蓓;李静;方晓蓉;王亮;;小型微型计算机系统(第08期);全文 *

Also Published As

Publication number Publication date
CN112732655A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
EP3846048A1 (en) Online log analysis method, system, and electronic terminal device thereof
US7937344B2 (en) Machine data web
CN110351301B (zh) 一种http请求双层递进式异常检测方法
US8577155B2 (en) System and method for duplicate text recognition
CN112732655B (zh) 针对无格式日志的在线解析方法及系统
CN113254255B (zh) 一种云平台日志的分析方法、系统、设备及介质
CN112765603A (zh) 一种结合系统日志与起源图的异常溯源方法
CN107797916A (zh) Ddl语句审核方法和装置
CN111177360B (zh) 一种基于云上用户日志的自适应过滤方法及装置
CN112445912B (zh) 一种故障日志分类方法、系统、设备以及介质
CN110659175A (zh) 日志的主干提取方法、分类方法、设备及存储介质
CN114818643A (zh) 一种保留特定业务信息的日志模板提取方法
US9830326B2 (en) Identifying data offsets using binary masks
CN114996279A (zh) 一种sql脚本的优化方法及装置
CN111581057B (zh) 一种通用日志解析方法、终端设备及存储介质
CN111966339B (zh) 埋点参数的录入方法、装置、计算机设备和存储介质
CN117436440A (zh) 一种日志识别方法、系统、终端设备及存储介质
CN112199388A (zh) 陌电识别方法、装置、电子设备及存储介质
Pokharel et al. A hybrid approach for log signature generation
CN115758183A (zh) 日志异常检测模型的训练方法及装置
CN115796146A (zh) 一种文件对比方法及装置
CN114722960A (zh) 一种业务过程事件日志不完整轨迹检测方法与系统
CN113326688A (zh) 一种基于思想政治词语查重处理方法和装置
CN112597494A (zh) 一种用于恶意程序检测的行为白名单自动收集方法
CN113407656B (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