CN111950263A - 一种日志解析方法、系统及电子设备 - Google Patents

一种日志解析方法、系统及电子设备 Download PDF

Info

Publication number
CN111950263A
CN111950263A CN202010796591.3A CN202010796591A CN111950263A CN 111950263 A CN111950263 A CN 111950263A CN 202010796591 A CN202010796591 A CN 202010796591A CN 111950263 A CN111950263 A CN 111950263A
Authority
CN
China
Prior art keywords
log
template
mark
templates
node
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.)
Granted
Application number
CN202010796591.3A
Other languages
English (en)
Other versions
CN111950263B (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.)
Sun Yat Sen University
National Sun Yat Sen University
Original Assignee
National Sun Yat Sen University
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 National Sun Yat Sen University filed Critical National Sun Yat Sen University
Priority to CN202010796591.3A priority Critical patent/CN111950263B/zh
Publication of CN111950263A publication Critical patent/CN111950263A/zh
Application granted granted Critical
Publication of CN111950263B publication Critical patent/CN111950263B/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种日志解析方法、系统及电子设备,其中,方法包括:对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合;对所述记号集合进行词典过滤得到对应的单词集合;根据所述单词集合对所述日志进行聚类得到对应的日志集合;根据所述记号集合计算每个所述日志集合对应的最长公共子序列,根据所述最长公共子序列确定所述日志集合对应的日志模板;根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板。本发明提供的日志解析方法、系统及电子设备,基于词典过滤和前缀树对日志进行分析得到相应的日志模板,在不同数据集中表现稳定,提高了日志分析的可靠性及准确度,有利于对系统运行问题进行进一步分析。

Description

一种日志解析方法、系统及电子设备
技术领域
本发明涉及日志分析技术领域,尤其是涉及一种日志解析方法、系统及电子设备。
背景技术
日志文件是分析软件运行时行为的重要数据源。在软件源码,日志打印语句通常类似于:logging.info(“node%d terminated by event%s”,node_id,event);,对应的运行时日志文本通常类似于:2020-04-23 17:01:11,778INFO node 1terminated by eventSHUTDOWN。其中,“node%d terminated by event%s”为日志的静态文本部分,又称为日志模板;而1和EVENT为日志的变量部分,每次打印日志都可能不同。这种将原始日志转换为静态文本和变量的过程称为日志文本解析。日志文本解析通常是日志分析的必要条件,日志文本解析可以将日志转化为日志模式和参数,日志模式可以看成系统运行中的事件,而日志变量可以看成系统运行时的状态。日志分析可以基于这些事件和状态来分析系统的运行问题,而不用基于非结构化的日志文本,从而大大提高了日志分析的效率和准确度。在此情况下,日志文本解析的准确度对日志分析的准确度有重要影响,因此,一个好的日志文本解析方法至关重要。
现有的日志文本解析方法通常包括:
(1)基于相似度的聚类:计算不同日志间的相似度。
(2)基于出现频率的聚类:很多日志模式通常在日志文件中出现多次,因此通过基于频率的方法合并相似度高的日志。
(3)基于搜索树的启发式算法:使用树数据结构将日志解析成多个模板。
现有的技术在不同数据集中表现不稳定,并且很可能解析出错误的日志模板,从而影响进一步的日志分析。
发明内容
本发明的目的是提供一种日志解析方法、系统及电子设备,以解决现有方法在不同数据集中表现不稳定,且可能解析出错误的日志模板的技术问题。
本发明的目的,可以通过如下技术方案实现:
一种日志解析方法,包括:
对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合;
对所述记号集合进行词典过滤得到对应的单词集合;
根据所述单词集合对所述日志进行聚类得到对应的日志集合;
根据所述记号集合计算每个所述日志集合对应的最长公共子序列,根据所述最长公共子序列确定所述日志集合对应的日志模板;
根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板。
可选地,得到所述日志对应的日志模板之后还包括:根据所述日志模板输出模板文件和日志信息文件。
可选地,对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合具体包括:输入日志文件,根据预定义的正则表达式获取每条日志的文本消息和元消息,根据特定的分隔符对所述文本消息进行划分得到对应的记号集合。
可选地,对所述记号集合进行词典过滤得到对应的单词集合之前还包括:对所述记号集合中的复合词记号进行分词操作。
可选地,根据所述最长公共子序列确定所述日志集合对应的日志模板具体包括:将所述最长公共子序列作为日志模板的静态部分,将日志集合中不属于所述最长公共子序列的部分作为变量部分,得到所述日志集合对应的日志模板。
可选地,得到所述日志集合对应的日志模板之后还包括:将所述日志模板中的变量部分替换为通配符。
可选地,根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板具体包括:将所述日志模板排序后依次插入到前缀树,当所述前缀树为空或待插入的日志模板与前缀树中已有的日志模板无法匹配时,将所述日志模板插入到所述前缀树;否则,删除所述日志模板。
本发明还提供了一种采用所述日志解析方法的日志解析系统,包括:
日志文件预处理模块,用于对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合;
单词集合生成模块,用于对所述记号集合进行词典过滤得到对应的单词集合;
日志集合生成模块,用于根据所述单词集合对所述日志进行聚类得到对应的日志集合;
日志模板生成模块,用于根据所述记号集合计算每个所述日志集合对应的最长公共子序列,根据所述最长公共子序列确定所述日志集合对应的日志模板;
日志模板聚类模块,用于根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板。
可选地,还包括:
输出模块,用于根据所述日志模板输出模板文件和日志信息文件。
本发明还提供了一种电子设备,包括:
处理器,存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述日志解析方法。
本发明提供了一种日志解析方法、系统及电子设备,其中,方法包括:对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合;对所述记号集合进行词典过滤得到对应的单词集合;根据所述单词集合对所述日志进行聚类得到对应的日志集合;根据所述记号集合计算每个所述日志集合对应的最长公共子序列,根据所述最长公共子序列确定所述日志集合对应的日志模板;根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板。
本发明提供的日志解析方法、系统及电子设备,带来的有益效果是:
本发明提供的日志解析方法,基于词典过滤和前缀树对日志进行分析得到相应的日志模板,在不同数据集中表现稳定,提高了日志分析的可靠性及准确度,有利于对系统运行问题进行进一步分析。
附图说明
图1为本发明一种日志解析方法的算法示意图;
图2为本发明一种日志解析系统的构成示意图。
具体实施方式
本发明实施例提供了一种日志解析方法、系统及电子设备,以解决现有方法在不同数据集中表现不稳定,且可能解析出错误的日志模板的技术问题。
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参阅图1,本发明一种日志解析方法的一个实施例,包括:
对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合;
对所述记号集合进行词典过滤得到对应的单词集合;
根据所述单词集合对所述日志进行聚类得到对应的日志集合;
根据所述记号集合计算每个所述日志集合对应的最长公共子序列,根据所述最长公共子序列确定所述日志集合对应的日志模板;
根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板。
现有的日志分析技术在不同数据集中表现不稳定,并且很可能解析出错误的日志模板,从而影响进一步的日志分析。本发明实施例通过分析发现日志模板通常是有意义的常用词,从而基于这个发现来提高日志分析的准确度。
本实施例的输入是日志文件,通常由不同的软件系统产生。输出分为两部分,一部分是日志的模板,另一部分是原始日志文件每条日志对应的模板、日志的变量、日志的元信息(如时间戳、日志级别、打印日志的组件等)。其中,日志的模板通常由类似正则表达式的形式给出,其中*代表通配符,可以匹配一个或多个符号。比如“node*terminated byevent*”可以匹配“node 1terminated by event SHUTDOWN”。
本实施例从整体来看分为五个步骤:
(1)预处理。将每条日志按照特定的符号分隔开成多个单词记号。
(2)按照单词集合聚合。过滤掉每条日志中的不在词典内的单词记号,将剩下的单词记号组成一个集合dword。所有dword相同的集合聚合在一起。这部分的输出是dword到日志集合的映射。
(3)模板生成阶段使用最长公共子序列的方法找出每个dword对应的日志集合内的最长公共子序列作为模板,不在最长公共子序列的部分作为通配符。这部分输出是dword到模板的映射。
(4)前缀树聚合。将模板按照单词级别进行字典序排序(其中通配符的字典序最小)。然后按序插入到前缀树中,如果一个在前缀树中完全匹配,那么将其对应的日志插入到被匹配的模板对应的日志中,否则在前缀树中生成一条新的模板。这部分的输出是模板到对应日志的映射。
(5)结果输出。将第(4)步得到的模板对应日志的映射输出为:
1)模板。模板就是这个映射的键的集合;
2)日志对应的模板及变量及一些元信息。这部分通过正则匹配的方式得到。
本实施例的具体步骤详细描述如下:
原始日志文件是非结构化的文本内容,比如2020-04-23 17:01:11,778INFO node1terminated by event SHUTDOWN,其中包含三个部分,2020-04-2317:01:11,778是时间戳,INFO是级别,node 1terminated by event SHUTDOWN是文本消息。其中,除了日志文本消息之外,都属于元信息。由于每条日志中都包含这些部分,且顺序是一致的,因此可以使用用户预定义的正则表达式将其匹配出来,从而得到文本消息和元信息两部分。之后的日志解析过程是应用于文本消息的,设日志消息的列表为L。
在获得日志文本消息L之后,第一步就是将消息分割为一串单词记号。分割符可以由用户自定义,默认的分割符为空格、逗号、分号、冒号、引号。同时,一些常见内容被默认为是变量部分,替换为通配符。常见的变量内容包括IP地址、HDFS中的blkID等,但是常见内容替换步骤不是必需的,如果添加这个步骤,可以提高准确度。最后,得到了日志及其对应的记号集合L1={log->tokenlist}。
基于日志中的模板部分大多为有意义的单词这个分析结果,本实施例将词典引入到了日志解析中。词典指的是常见的英语单词集合,本发明默认使用谷歌新闻语料作为数据集,选择出现次数最高的10万个单词作为单词集合。
本实施例使用词典集合过滤掉每条日志log[i]对应的记号集合tokenlist[i]中不在词典中的记号,剩下的记号定义为日志对应的dword[i]。在生成dword之前,还需要进行一个分词操作。由于软件组件中有许多根据camel case组合的词,比如NodeUser。本实施例使用一个外部python软件模块wordninja来进行分词操作,它会把NodeUser划分为node和user。比如machine is terminated by NodeUser qdw中,会过滤掉qdw,对应的dword为{machine,is,terminated,by,node,user}。
在获得日志对应的dword后,本发明使用dword作为键值来进行日志的聚类。也就是说,得到一个映射L2={dword->loglist}。相同的Dword指向所有对应的日志集合。
在获得dword到日志集合的映射后,本实施例使用最长公共子序列(LCS)的方法得到每个日志集合所对应的模板。子序列指的是一个记号串删除0个或多个记号得到的序列。假设记号为大写字母,那么记号串ABCD的子序列包括AC,ACD,ABCD等。一个记号串集合的最长公共子序列s指的是一个最长可能的序列,并且这个序列s是这个记号串中每个串的子序列。例如,记号串集合为{S1,S2,S3},那么{S1,S2,S3}的最长公共子序列是最长的s,使得s为S1的子序列,s为S2的子序列,s为S3的子序列。
最长公共子序列是一个非常著名的问题,在网络上很容易搜索到对应的解法,最常用的解法是使用动态规划的解法。本实施例中,需要对每个日志集合求最长公共子序列,使用的方法是先随机选取出一个日志,设它的记号串为S,并取一个别名为S1,再取一个日志记号串为S2,求S和S2的最长公共子序列,并将结果赋值给S1,依次地再取记号串S3,S4。。等,最后得到的S1为整个日志集合对应的记号串的最长公共子序列。S中存在于S1的部分被认为是静态模板部分,不存在于S1的部分被认为是变量部分,用通配符表示。
值得说明的是,本实施例将LCS算法作用于第一步得到的记号列表,而不是第二步过滤后的记号列表。本部分得到每个dword对应的日志集合的模板串,其中有静态模板部分,也有通配符表示的变量部分。得到的映射结果为L3={dword->loglist->template}。
由于上一步是基于dword的,在很多情况下,dword不同的日志可能事实上属于同一个日志模板,因此,继续使用基于前缀树的方法实现对日志模板进行进一步地聚类。前缀树存放着所有被插入的记号串。前缀树上的一次匹配表示某个记号串刚好可以和前缀树的某个记号串发生匹配。
本实施例中,首先对上一步得到的模板进行排序,排序是以记号为基本单位的,并且定义通配符的字典序最小,这种定义的原因是使得这样一种情况成立:一个记号串S和一个记号串的T的唯一区别在于T在S的某个记号位置为通配符,这样排序使得T能够先与S插入到前缀树中,从而使得S能匹配到T上。
本实施例根据排序好的顺序依次地向前缀树中查询记号串,如果发生匹配,那就将查询的记号串对应的日志集合合并到被匹配的记号串对应的日志记号上。如果没有发生匹配,就将这个日志模板记号串插入到前缀树中。最后得到的结果是日志模板对应的日志集合:L4={template->loglist}。
至此,本实施例已经得到日志解析的结果了,也就是最终的日志模板以及日志模板对应的日志集合。将日志集合中的日志与模板进行匹配,通配符的位置为变量,这样可以得到每个日志集合的变量。本实施例可以输出两个文件,一个是日志模板的集合,一个是每条日志对应的日志模板、变量及元信息,这些输出可以进一步用于进行多种日志分析任务。
本发明实施例通过分析得到日志模板通常是有意义的常用词,从而基于这个发现来提高日志分析的准确度。本发明实施例重点用于解决日志文本解析问题,这是日志分析中的关键步骤。本发明实施例提供的日志解析方法,基于词典过滤和前缀树对日志进行分析得到相应的日志模板,在不同数据集中表现稳定,提高了日志分析的可靠性及准确度,有利于对系统运行问题进行进一步分析。
本发明一种日志解析方法的另一个具体实施例为:
假设日志文件中中包括如下日志内容,其中这五条日志编号分别为L1,L2,L3,L4,L5:
2020-04-23 17:01:11,778INFO node 1terminated by NodeUser root;
2020-04-23 17:02:11,778INFO node 2terminated by NodeUser yaow;
2020-04-23 17:03:11,778INFO node 3terminated by NodeUser bwy;
2020-04-23 17:04:11,778INFO node 2is waiting node 2for reply;
2020-04-23 17:05:11,778INFO node 3is waiting node 1for reply;
首先定义正则表达式获取日志的各个部分,得到如表1所示:
表1
Timestamp level message
“2020-04-23 17:01:11,778” “INFO” “node 1terminated by NodeUser root”
“2020-04-23 17:02:11,778” “INFO” “node 2terminated by NodeUser yaow”
“2020-04-23 17:03:11,778” “INFO” “node 3terminated by NodeUser bwy”
“2020-04-23 17:04:11,778” “INFO” “node 3is waiting node 2for reply”
“2020-04-23 17:05:11,778” “INFO” “node 3is waiting node 1for reply”
其中,timestamp和level无需进一步处理,之后只需要解析message(日志的文本消息)这一列即可。
然后根据分隔符进行记号划分,得到对应的日志的记号列表为:
{node,1,terminated,by,NodeUser,root};
{node,2,terminated,by,NodeUser,yaow};
{node,3,terminated,by,NodeUser,bwy};
{node,2,is,waiting,node,2,for,reply};
{node,3,is,waiting,node,1,for,reply}。
“NodeUser”是复合词,因此需要进行分词,得到的记号列表为:
{node,1,terminated,by,node,user,root};
{node,2,terminated,by,node,user,yaow};
{node,3,terminated,by,node,user,bwy};
{node,2,is,waiting,node,2,for,reply};
{node,3,is,waiting,node,1,for,reply}。
由于阿拉伯数字不是英语单词,并且yaow和bwy是人名,因此肯定不在词典中,所有要过滤掉,对应的dword分别为:
{node,terminated,by,node,user,root};
{node,terminated,by,node,user};
{node,terminated,by,node,user};
{node,is,waiting,node,for,reply};
{node,is,waiting,node,for,reply}。
由于L2和L3的dword相同,且L4和L5的dword相同,设:
D1={node,terminated,by,node,user,root};
D2={node,terminated,by,node,user};
D3={node,is,waiting,node,for,reply}。
我们可以得到dword到日志的映射为:
D1->[L1];
D2->[L2,L3];
D3->[L4,L5]。
对于每个dword对应的日志列表求最长公共子序列,设Di对应日志列表的最长公共子序列为LCSi,则有:
LCS1={node,terminated,by,NodeUser,root};
LCS2={node,terminated,by,NodeUser};
LCS3={node,is,waiting,node,for,reply}。
因此,对应的模板为:
T1=node*terminated by NodeUser root;
T2=node*terminated by NodeUser*;
T3=node*is waiting node for reply。
其中*为通配符,可以匹配一个记号。
然后将其进行排序,其中*的顺序最低,排序结果为:
T3=node*is waiting node for reply;
T2=node*terminated by NodeUser*;
T1=node*terminated by NodeUser root。
然后按序插入到前缀树中,当插T3时,前缀树为空,无法匹配,因此直接插入即可,此时前缀树中有{T3}。当插T2时,T2无法匹配进T3,所以直接插入,此时前缀树中有{T3,T2}。当插T1时,T1可以匹配上T2,因此T1对应的日志所属的模板被设为了T2,并删除T1。
最后得到日志到模板的关系为:
T2->[L1,L2,L3];
T3->[L4,L5];
符合实际情况。
之后再将模板T2和T3输出到模板文件中,模板文件内容为:
TemplateId Template
T2 node*terminated by NodeUser*
T3 node*is waiting node for reply
日志信息文件为:
Figure BDA0002625865960000101
值得说明的是,本实施例中,预处理阶段用户可以基于领域知识定义一些常见的变量的正则表达式来匹配并转化为通配符;这部分不是必须的,但是通常会用来提高本发明实施例的可靠性及准确度。本实施例中使用python源pypi上的wordninja模块来进行分词,同样也可以使用其他分词工具。
请参阅图2,以下为本发明一种日志解析系统的一个实施例,包括:
日志文件预处理模块,用于对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合;
单词集合生成模块,用于对所述记号集合进行词典过滤得到对应的单词集合;
日志集合生成模块,用于根据所述单词集合对所述日志进行聚类得到对应的日志集合;
日志模板生成模块,用于根据所述记号集合计算每个所述日志集合对应的最长公共子序列,根据所述最长公共子序列确定所述日志集合对应的日志模板;
日志模板聚类模块,用于根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板。
本实施例中,还可以包括:
输出模块,用于根据所述日志模板输出模板文件和日志信息文件。
以下为本发明一种电子设备的一个实施例,包括:
处理器,存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述日志解析方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种日志解析方法,其特征在于,包括:
对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合;
对所述记号集合进行词典过滤得到对应的单词集合;
根据所述单词集合对所述日志进行聚类得到对应的日志集合;
根据所述记号集合计算每个所述日志集合对应的最长公共子序列,根据所述最长公共子序列确定所述日志集合对应的日志模板;
根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板。
2.根据权利要求1所述的日志解析方法,其特征在于,得到所述日志对应的日志模板之后还包括:根据所述日志模板输出模板文件和日志信息文件。
3.根据权利要求2所述的日志解析方法,其特征在于,对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合具体包括:输入日志文件,根据预定义的正则表达式获取每条日志的文本消息和元消息,根据特定的分隔符对所述文本消息进行划分得到对应的记号集合。
4.根据权利要求1或3所述的日志解析方法,其特征在于,对所述记号集合进行词典过滤得到对应的单词集合之前还包括:对所述记号集合中的复合词记号进行分词操作。
5.根据权利要求4所述的日志解析方法,其特征在于,根据所述最长公共子序列确定所述日志集合对应的日志模板具体包括:将所述最长公共子序列作为日志模板的静态部分,将日志集合中不属于所述最长公共子序列的部分作为变量部分,得到所述日志集合对应的日志模板。
6.根据权利要求5所述的日志解析方法,其特征在于,得到所述日志集合对应的日志模板之后还包括:将所述日志模板中的变量部分替换为通配符。
7.根据权利要求1-6任意一项所述的日志解析方法,其特征在于,根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板具体包括:将所述日志模板排序后依次插入到前缀树,当所述前缀树为空或待插入的日志模板与前缀树中已有的日志模板无法匹配时,将所述日志模板插入到所述前缀树;否则,删除所述日志模板。
8.一种采用如权利要求1~7所述的日志解析方法的日志解析系统,其特征在于,包括:
日志文件预处理模块,用于对获取的日志文件进行预处理,得到每条日志的文本消息对应的记号集合;
单词集合生成模块,用于对所述记号集合进行词典过滤得到对应的单词集合;
日志集合生成模块,用于根据所述单词集合对所述日志进行聚类得到对应的日志集合;
日志模板生成模块,用于根据所述记号集合计算每个所述日志集合对应的最长公共子序列,根据所述最长公共子序列确定所述日志集合对应的日志模板;
日志模板聚类模块,用于根据前缀树对所述日志模板进行聚类,得到所述日志对应的日志模板。
9.根据权利要求8所述的日志解析系统,其特征在于,还包括:
输出模块,用于根据所述日志模板输出模板文件和日志信息文件。
10.一种电子设备,其特征在于,包括:
处理器,存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1~7中任意一项日志解析方法。
CN202010796591.3A 2020-08-10 2020-08-10 一种日志解析方法、系统及电子设备 Active CN111950263B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010796591.3A CN111950263B (zh) 2020-08-10 2020-08-10 一种日志解析方法、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010796591.3A CN111950263B (zh) 2020-08-10 2020-08-10 一种日志解析方法、系统及电子设备

Publications (2)

Publication Number Publication Date
CN111950263A true CN111950263A (zh) 2020-11-17
CN111950263B CN111950263B (zh) 2022-02-08

Family

ID=73332031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010796591.3A Active CN111950263B (zh) 2020-08-10 2020-08-10 一种日志解析方法、系统及电子设备

Country Status (1)

Country Link
CN (1) CN111950263B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632020A (zh) * 2020-12-25 2021-04-09 中国电子科技集团公司第三十研究所 基于spark大数据平台的日志信息类型提取方法、挖掘方法
CN113055171A (zh) * 2021-03-30 2021-06-29 西安电子科技大学 基于的区块链的日志安全解析及存储方法
CN114595136A (zh) * 2022-05-09 2022-06-07 云智慧(北京)科技有限公司 一种日志解析方法、装置及设备
CN117407242A (zh) * 2023-10-10 2024-01-16 浙江大学 基于大语言模型的低成本、零样本的在线日志解析方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109543023A (zh) * 2018-09-29 2019-03-29 中国石油化工股份有限公司石油勘探开发研究院 基于trie和LCS算法的文献分类方法和系统
CN111400500A (zh) * 2020-03-25 2020-07-10 上海擎创信息技术有限公司 一种基于LCS的Chameleon实时日志聚类方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109543023A (zh) * 2018-09-29 2019-03-29 中国石油化工股份有限公司石油勘探开发研究院 基于trie和LCS算法的文献分类方法和系统
CN111400500A (zh) * 2020-03-25 2020-07-10 上海擎创信息技术有限公司 一种基于LCS的Chameleon实时日志聚类方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MIN DU ET AL.: "Spell: Streaming Parsing of System Event Logs", 《2016 IEEE 16TH INTERNATIONAL CONFERENCE ON DATA MINING》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632020A (zh) * 2020-12-25 2021-04-09 中国电子科技集团公司第三十研究所 基于spark大数据平台的日志信息类型提取方法、挖掘方法
CN112632020B (zh) * 2020-12-25 2022-03-18 中国电子科技集团公司第三十研究所 基于spark大数据平台的日志信息类型提取方法、挖掘方法
CN113055171A (zh) * 2021-03-30 2021-06-29 西安电子科技大学 基于的区块链的日志安全解析及存储方法
CN114595136A (zh) * 2022-05-09 2022-06-07 云智慧(北京)科技有限公司 一种日志解析方法、装置及设备
CN117407242A (zh) * 2023-10-10 2024-01-16 浙江大学 基于大语言模型的低成本、零样本的在线日志解析方法
CN117407242B (zh) * 2023-10-10 2024-04-05 浙江大学 基于大语言模型的低成本、零样本的在线日志解析方法

Also Published As

Publication number Publication date
CN111950263B (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
CN111950263B (zh) 一种日志解析方法、系统及电子设备
US8630989B2 (en) Systems and methods for information extraction using contextual pattern discovery
US8756207B2 (en) Systems and methods for identifying potential duplicate entries in a database
CN110929125B (zh) 搜索召回方法、装置、设备及其存储介质
US10318617B2 (en) Methods and apparatus for extraction of content from an email or email threads for use in providing implicit profile attributes and content for recommendation engines
US20180075013A1 (en) Method and system for automating training of named entity recognition in natural language processing
US9208140B2 (en) Rule based apparatus for modifying word annotations
US11568142B2 (en) Extraction of tokens and relationship between tokens from documents to form an entity relationship map
US8316041B1 (en) Generation and processing of numerical identifiers
CN111708805A (zh) 数据查询方法、装置、电子设备及存储介质
WO2002021324A1 (en) Method and apparatus for summarizing multiple documents using a subsumption model
US20090327269A1 (en) Pattern generation
Soori et al. Text similarity based on data compression in Arabic
CN113032371A (zh) 数据库语法分析方法、装置和计算机设备
US11321529B2 (en) Date and date-range extractor
CN110472031A (zh) 一种正则表达式获得方法、装置、电子设备及存储介质
CN111492364B (zh) 数据标注方法、装置及存储介质
CN116822491A (zh) 日志解析方法及装置、设备、存储介质
Mashtalir et al. Data preprocessing and tokenization techniques for technical Ukrainian texts
KR101909538B1 (ko) 단문 분류 시스템 및 방법
CN112287676A (zh) 新词发现方法、装置、电子设备及介质
WO2020017037A1 (ja) ログ分析装置、ログ分析方法、プログラム
Mande et al. Regular Expression Rule-Based Algorithm for Multiple Documents Key Information Extraction
US11593439B1 (en) Identifying similar documents in a file repository using unique document signatures
CN111930607B (zh) 一种组合Web服务变更测试用例生成方法及系统

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