CN112882997A - 一种基于N-gram与频繁模式挖掘的系统日志解析方法 - Google Patents
一种基于N-gram与频繁模式挖掘的系统日志解析方法 Download PDFInfo
- Publication number
- CN112882997A CN112882997A CN202110195563.0A CN202110195563A CN112882997A CN 112882997 A CN112882997 A CN 112882997A CN 202110195563 A CN202110195563 A CN 202110195563A CN 112882997 A CN112882997 A CN 112882997A
- Authority
- CN
- China
- Prior art keywords
- message
- token
- gram
- log
- sequence number
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提出了一种基于N‑gram与频繁模式挖掘的系统日志解析方法。本发明将多行日志消息依次根据空格分解为单个的单词;计算任意两行日志消息之间的N‑gram距离;本发明通过算出N分别取值1,2,3时,任意两行日志消息之间的1‑gram距离、2‑gram距离和3‑gram距离,计算任意两行日志消息的相似匹配值,当匹配值高于设定阈值的日志消息归为一类;设置频繁模式挖掘算法的频繁单词项集的长度以及频繁模式挖掘算法的频繁单词项集的支持度;对每一类别中的所有日志消息使用频繁模式挖掘算法,挖掘出每一类中符合参数设定的候选频繁单词项集,并生成该类的日志模板。本发明在保证分类准确性的前提下,减少计算机处理的时间,节约了计算资源,提高了分类效率。
Description
技术领域
本发明属于系统日志解析领域,尤其涉及一种基于N-gram与频繁模式挖掘的系统日志解析方法。
背景技术
现代计算机系统随着需求的日益增加而变得复杂。这种复杂性成为了部署和管理计算机系统的重要限制因素。能够及时发出警报并缓解问题带来的影响已成为许多系统的基本要求。目前在线自动检测系统异常是异常检测领域中研究的热门话题。这些研究往往以大数据为基础分析,理解软件系统的运行行为和逻辑。而系统日志通常是记录软件系统状态的唯一数据来源。它包含了系统运行状态、用户模式、软件执行路径等重要的信息。通过分析,理解日志消息可以帮助运维人员更好的维护计算机系统的稳定性,安全性和可持续性。
当前系统日志可用于检测程序执行异常,监视网络故障,发现程序漏洞等异常检测应用中。有些研究也将系统日志应用于发现和诊断性能问题。这些应用和研究需要依赖海量的、具有规则化的系统日志数据。但是系统日志本身是由固定部分与参数部分组成,属于非结构化数据。所以如何将原始的系统日志解析成结构化的日志数据是日志分析研究与应用中首要,也是最重要的一步。
由于当前计算机行业的飞速发展,每天都有海量的系统日志产生,依靠人工将系统日志有非结构化形式转变为结构化形式是一项不可能完成的任务,所以能高效解析日志的自动日志解析器成为了日志分析中不可或缺的一项工具。现有的自动日志解析方法包括使用正则表达式,查询源代码获得日志表述,利用数据挖掘方法单纯使用日志的字符信息进行解析,例如使用聚类或迭代分割等数据挖掘方法。使用正则表达式进日志解析需要专业的领域知识,而不同的计算机系统日志格式,表述方式等内容各不相同,所以使用正则表达式方法来解析系统日志不能推广为一种通用的解析方法。许多计算机软件的源代码并没有开源,所以查询源代码获得日志表述的方法也不太现实。
发明内容
针对上述研究背景和问题,本发明的技术方案为一种基于N-gram与频繁模式挖掘的系统日志解析方法,包括以下步骤:
步骤1:将多行日志消息依次根据空格分解为单个的单词。
步骤2:计算任意两行日志消息之间的N-gram距离;
步骤3:通过步骤2算出N分别取值1,2,3时,任意两行日志消息之间的1-gram距离、2-gram距离和3-gram距离,任意两行日志消息的相似匹配值,当匹配值高于设定阈值的日志消息归为一类;
步骤4:设置频繁模式挖掘算法的频繁单词项集的长度即m、频繁模式挖掘算法的频繁单词项集的支持度即α。
步骤5:对每一类别Ck+n中的所有日志消息使用频繁模式挖掘算法,挖掘出每一类Ck+n中符合参数设定的候选频繁单词项集;
作为优选,步骤1所述日志消息为:
messagei,i∈[1,M]
其中,messagei为序号为i日志消息,M为日志消息的数量;
步骤1所述单词序列为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
其中,tokeni,j序号为i日志消息的单词序列中第j个单词,Li为序号为i的日志消息的单词序列中单词的数量;
作为优选,步骤2所述计算任意两行日志消息之间的N-gram距离为:
N-Gram(messagei,messagej)=|GN(smessagei)|+|GN(tmessagej)|-2×GN(messagei)∩GN(messagej)
其中,1≤i≤j≤M,M为日志消息的数量。N为人为设定的数值,设定的数值分别为1,2,3。i,j为日志消息序号,N-Gram(messagei,messagej)表示序号为i的日志消息与序号为j日志消息之间的N-gram特征距离,messagei表示序号为i的日志消息,messagej表示序号为j日志消息;GN(messagei)表示序号为i的日志消息提取的N-gram特征集。|GN(messagei)|表示GN(messagei)特征集中特征的数量;GN(messagej)表示序号为i的日志消息提取的N-gram特征集,|GN(messagej)|表示GN(messagej)特征集中特征的数量;|GN(messagei)∩GN(messagej)|表示序号为i的日志消息与序号为j的N-gram特征集特征相同的数量;
所述N-gram特征集为:
N为人为设定的数值,设定的数值分别为1,2,3。N-gram特征表示日志消息的单词从第一个单词开始,连续N个单词组成一个特征。直到特征中包含最后一个单词为止。N-gram特征集表示由日志消息特征组成的集合。
所述GN(messagei)为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
当N设置为1时,1-gram特征集为:
{{‘tokeni,1’},{‘tokeni,2’},{‘tokeni,3’},…,{‘tokeni,Li’}}
1-gram特征集中特征的数量为Li,即|G1(messagei)|=Li。
当N设置为2时,2-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’},{‘tokeni,2’,‘tokeni,3’},…,{‘tokeni,Li-1’,‘tokeni,Li’}}。
2-gram特征集中特征的数量为Li-1,即|G2(messagei)|=Li-1。
当n设置为3时,3-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’,‘tokeni,3’},{‘tokeni,2’,‘tokeni,3’,‘tokeni,4’},···,{‘tokeni,Li-2’‘tokeni,Li-1’,‘tokeni,Li’}}。
3-gram特征集中特征数量为Li-2,即|G3(messagei)|=Li-2。
所述序号为i的日志消息与序号为j的N-gram特征集特征相同的数量为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
messagej={tokenj,1,tokenj,2,...,tokenj,Li}
当N=1时,messagei的1-gram特征集为:
{{‘tokeni,1’},{‘tokeni,2’},{‘tokeni,3’},…,{‘tokeni,Li’}}
messagej的1-gram特征集为
{{‘tokenj,1’},{‘tokenj,2’},{‘tokenj,3’},…,{‘tokenj,Li’}}
比较两个1-gram特征集中的特征。记录相同特征的个数,记为|G1(messagei)∩G1(messagej)|。
当N=2时,messagei的2-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’},{‘tokeni,2’,‘tokeni,3’},…,{‘tokeni,Li-1’,‘tokeni,Li’}}
messagej的2-gram特征集为
{{‘tokenj,1’,‘tokenj,2’},{‘tokenj,2’,‘tokenj,3’},…,{‘tokenj,Li-i’,‘tokenj,Li’}}。比较两个2-gram特征集中的特征。记录相同特征的个数,记为|G2(messagei)∩G2(messagej)|。
当N=3时,messagei的3-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’,‘tokeni,3’},{‘tokeni,2’,‘tokeni,3’,‘tokeni,4’},···,{‘tokeni,Li-2’‘tokeni,Li-1’,‘tokeni,Li’}}
messagej的3-gram特征集为
{‘tokenj,1’,‘tokenj,2’,‘tokenj,3’},{‘tokenj,2’,‘tokenj,3’,‘tokenj,4’},···,{‘tokenj,Li-2’‘tokenj,Li-1’,‘tokenj,Li’}。
比较两个3-gram特征集中的特征。记录相同特征的个数,记为|G3(messagei)∩G3(messagej)|。
所述序号为i的日志消息与序号为j日志消息之间的N-gram特征距离为:
当N=1时,
1-Gram(messagei,messagej)
=|G1(smessagei)|+|G1(tmessagej)|-2×G1(messagei)
∩G1(messagej)
当N=2时,
2-Gram(messagei,messagej)
=|G2(smessagei)|+|G2(tmessagej)|-2×G2(messagei)
∩G2(messagej)
当N=3时,
3-Gram(messagei,messagej)
=|G3(smessagei)|+|G3(tmessagej)|-2×G3(messagei)
∩G3(messagej)
作为优选,步骤3所述计算messagei,messagej相似匹配值为:
1-Gram(messagei,messagej)是序号为i的日志消息与序号为j的日志消息1-gram距离。2-Gram(messagei,messagej)则是序号为i的日志消息与序号为j的日志消息2-gram距离。3-Gram(messagei,messagej)是序号为i的日志消息与序号为j的日志消息3-gram距离。max(len(messagei),len(messagej))是序号为i的日志消息与序号为j的日志消息长度较长的长度值。
当matchS(messagei,messagej)≥0.5时,若messagei已有归属类别Ck,则messagej被分类到类别Ck中;若messagei和messagej未被分类,则新增一个类别Ck+n,将messagei与messagej归类到新增类别Ck+n中。
当matchS(messagei,messagej)<0.5时,messagei,messagej属于不同类别。若messagei已有归属类别Ck,messagej未被分类,则新增一个类别Ck+n,将messagej归类到新增类别Ck+n中。
步骤3将一直进行下去,直到每一条日志消息都有其归属类别Ck+n。
所述类别Ck和Ck+n为:
Ck表示分类过程中分出的第一个类别;Ck+n表示分类过程中分出的第n个类别。其中,1≤n≤L,其中L为所有日志消息分类的类别数量。
其中,m为步骤1中设定的频繁单词项集长度阈值,1≤d≤m;
本发明优点在于,利用步骤1的N-gram距离特征与步骤3的相似度匹配公式可以对日志消息进行粗粒度的分类。由于无需对日志消息进行迭代处理,所以该分类过程可以在保证分类准确性的前提下,减少计算机处理的时间,节约了计算资源,提高了分类效率;利用步骤4设置的2个参数阈值和步骤5中使用的频繁模式挖掘算法,在粗分类的日志消息中可以更快更准确的提取出每一类中的日志消息模板。
附图说明
图1:是本发明方法流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
为实现本发明所述目的采用的技术方案是一种基于N-gram与频繁模式挖掘的系统日志解析方法,包括以下步骤:
步骤1:将多行日志消息依次根据空格分解为单个的单词。
步骤1所述日志消息为:
messagei,i∈[1,M]
其中,messagei为序号为i日志消息,M为日志消息的数量;
步骤1所述单词序列为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
其中,tokeni,j序号为i日志消息的单词序列中第j个单词,Li为序号为i的日志消息的单词序列中单词的数量;具体实施例如下:
原始日志消息:
1Input split:hdfs://hostname/2kSOSP.log:21876+7292
2Input split:hdfs://hostname/2kSOSP.log:14584+7292
3Input split:hdfs://hostname/2kSOSP.log:0+7292
4Input split:hdfs://hostname/2kSOSP.log:7292+7292
5Input split:hdfs://hostname/2kSOSP.log:29168+7292
6Input split:hdfs://hostname/2kSOSP.log:14584+7292
7Input split:hdfs://hostname/2kSOSP.log:0+7292
8Found block rdd_42_20locally
9Found block rdd_42_22locally
10Found block rdd_42_23locally
11Found block rdd_42_24locally
经过步骤1处理后的日志消息:
1{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:21876+7292’}
2{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:14584+7292’}
3{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:0+7292’}
4{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:7292+7292’}
5{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:29168+7292’}
6{‘Found’,‘block’,‘rdd_4220’,‘locally’}
7{‘Found’,‘block’,‘rdd_4222’,‘locally’}
8{‘Found’,‘block’,‘rdd_4223’,‘locally’}
9{‘Found’,‘block’,‘rdd_4224’,‘locally’}
步骤2:计算任意两行日志消息之间的N-gram距离;
步骤2所述计算任意两行日志消息之间的N-gram距离为:
N-Gram(messagei,messagej)=|GN(smessagei)|+|GN(tmessagej)|-2×GN(messagei)∩GN(messagej)
其中,1≤i≤j≤M,M为日志消息的数量。N为人为设定的数值,设定的数值分别为1,2,3。i,j为日志消息序号,N-Gram(messagei,messagej)表示序号为i的日志消息与序号为j日志消息之间的N-gram特征距离,messagei表示序号为i的日志消息,messagej表示序号为j日志消息;GN(messagei)表示序号为i的日志消息提取的N-gram特征集。|GN(messagei)|表示GN(messagei)特征集中特征的数量;GN(messagej)表示序号为i的日志消息提取的N-gram特征集,|GN(messagej)|表示GN(messagej)特征集中特征的数量;|GN(messagei)∩GN(messagej)|表示序号为i的日志消息与序号为j的N-gram特征集特征相同的数量;
所述N-gram特征集为:
N为人为设定的数值,设定的数值分别为1,2,3。N-gram特征表示日志消息的单词从第一个单词开始,连续N个单词组成一个特征。直到特征中包含最后一个单词为止。N-gram特征集表示由日志消息特征组成的集合。
所述GN(messagei)为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
当N设置为1时,1-gram特征集为:
{{‘tokeni,1’},{‘tokeni,2’},{‘tokeni,3’},…,{‘tokeni,Li’}}
1-gram特征集中特征的数量为Li,即|G1(messagei)|=Li。
当N设置为2时,2-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’},{‘tokeni,2’,‘tokeni,3’},…,{‘tokeni,Li-1’,‘tokeni,Li’}}。
2-gram特征集中特征的数量为Li-1,即|G2(messagei)|=Li-1。
当n设置为3时,3-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’,‘tokeni,3’},{‘tokeni,2’,‘tokeni,3’,‘tokeni,4’},···,{‘tokeni,Li-2’‘tokeni,Li-1’,‘tokeni,Li’}}。
3-gram特征集中特征数量为Li-2,即|G3(messagei)|=Li-2。
所述序号为i的日志消息与序号为j的N-gram特征集特征相同的数量为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
messagej={tokenj,1,tokenj,2,...,tokenj,Li}
当N=1时,messagei的1-gram特征集为:
{{‘tokeni,1’},{‘tokeni,2’},{‘tokeni,3’},…,{‘tokeni,Li’}}
messagej的1-gram特征集为
{{‘tokenj,1’},{‘tokenj,2’},{‘tokenj,3’},…,{‘tokenj,Li’}}
比较两个1-gram特征集中的特征。记录相同特征的个数,记为|G1(messagei)∩G1(messagej)|。
当N=2时,messagei的2-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’},{‘tokeni,2’,‘tokeni,3’},…,{‘tokeni,Li-1’,‘tokeni,Li’}}
messagej的2-gram特征集为
{{‘tokenj,1’,‘tokenj,2’},{‘tokenj,2’,‘tokenj,3’},…,{‘tokenj,Li-1’,‘tokenj,Li’}}。比较两个2-gram特征集中的特征。记录相同特征的个数,记为|G2(messagei)∩G2(messagej)|。
当N=3时,messagei的3-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’,‘tokeni,3’},{‘tokeni,2’,‘tokeni,3’,‘tokeni,4’},…,{‘tokeni,Li-2’‘tokeni,Li-1’,‘tokeni,Li’}}
messagej的3-gram特征集为
{‘tokenj,1’,‘tokenj,2’,‘tokenj,3’},{‘tokenj,2’,‘tokenj,3’,‘tokenj,4’},…,{‘tokenj,Li-2’‘tokenj,Li-1’,‘tokenj,Li’}。
比较两个3-gram特征集中的特征。记录相同特征的个数,记为|G3(messagei)∩G3(messagej)|。
所述序号为i的日志消息与序号为j日志消息之间的N-gram特征距离为:
当N=1时,
1-Gram(messagei,messagej)
=|G1(smessagei)|+|G1(tmessagej)|-2×G1(messagei)
∩G1(messagej)
当N=2时,
2-Gram(messagei,messagej)
=|G2(smessagei)|+|G2(tmessagej)|-2×G2(messagei)
∩G2(messagej)
当N=3时,
3-Gram(messagei,messagej)
=|G3(smessagei)|+|G3(tmessagej)|-2×G3(messagei)
∩G3(messagej)
具体实施例如下:
待比较的日志消息:
1{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:21876+7292’}
2{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:14584+7292’}
6{‘Found’,‘block’,‘rdd_42_20’,‘locally’}
序号为1的日志消息中N-gram特征:
1-gram={‘Input’},{‘split:’},{‘hdfs://hostname/2kSOSP.log:21876+7292’}
2-gram={‘Input’,‘split:’},{‘split:’,‘hdfs://hostname/2kSOSP.log:21876+7292’}
3-gram={‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:21876+7292’}
序号为2的日志消息中N-gram特征:
1-gram={‘Input’},{‘split:’},{‘hdfs://hostname/2kSOSP.log:14584+7292’}
2-gram={‘Input’,‘split:’},{‘split:’,‘hdfs://hostname/2kSOSP.log:14584+7292’}
3-gram={‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:14584+7292’}
序号为6的日志消息中N-gram特征:
1-gram={‘Found’},{‘block’},{‘rdd_42_20’},{‘locally’}
2-gram={‘Found’,‘block’},{‘block’,‘rdd_42_20’},{‘rdd_42_20’,‘locally’}
3-gram={‘Found’,‘block’,‘rdd_42_20’},{‘block’,‘rdd_42_20’,‘locally’}
应用步骤2中提出的N-gram距离公式可知:
1-Gram(1,2)=2;2-Gram(1,2)=2;3-Gram(1,2)=2
1-Gram(1,6)=7;2-Gram(1,6)=5;3-Gram(1,6)=3
1-Gram(2,6)=7;2-Gram(2,6)=5;3-Gram(2,6)=3
步骤3:通过步骤2算出的N-Gram(messagei,messagej),N分别取值1,2,3,计算messagei,messagej相似匹配值,当匹配值高于设定阈值0.5的日志消息归为一类;
步骤3所述计算messagei,messagej相似匹配值为:
2-Gram(messagei,messagej)是序号为i的日志消息与序号为j的日志消息1-gram距离。2-Gram(messagei,messagej)则是序号为i的日志消息与序号为j的日志消息2-gram距离。3-Gram(messagei,messagej)是序号为i的日志消息与序号为j的日志消息3-gram距离。max(len(messagei),len(messagej))是序号为i的日志消息与序号为j的日志消息长度较长的长度值。
当matchS(messagei,messagej)≥0.5时,若messagei已有归属类别Ck,则messagej被分类到类别Ck中;若messagei和messagej未被分类,则新增一个类别Ck+n,将messagei与messagej归类到新增类别Ck+n中。
当matchS(messagei,messagej)<0.5时,messagei,messagej属于不同类别。若messagei已有归属类别Ck,messagej未被分类,则新增一个类别Ck+n,将messagej归类到新增类别Ck+n中。
步骤3将一直进行下去,直到每一条日志消息都有其归属类别Ck+n。
所述类别Ck和Ck+n为:
Ck表示分类过程中分出的第一个类别;Ck+n表示分类过程中分出的第n个类别。其中,1≤n≤L,其中L为所有日志消息分类的类别数量。
具体实施例如下:
由步骤2中的实施例计算出来的N-Gram(1,2),N-Gram(1,6)以及N-Gram(2,6),
通过相似匹配公式可知:
matchS(1,2)=3/6=0.5;matchS(1,6)=4/15=0.27;matchS(2,6)=0.27
匹配阈值设置为0.5,那么序号为1的日志消息与序号为2的日志消息被匹配到一类中,记作类别1。序号为6的日志消息单独划分为一类,记作类别2
步骤4:设置频繁模式挖掘算法的频繁单词项集的长度即m,m取值为4、频繁模式挖掘算法的频繁单词项集的支持度即α,α取值为3。
步骤5:对每一类别Ck+n中的所有日志消息使用频繁模式挖掘算法,挖掘出每一类Ck+n中符合参数设定的候选频繁单词项集;
其中,m为步骤1中设定的频繁单词项集长度阈值,1≤d≤m;
具体实施例如下:
类别1:
1{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:21876+7292’}
2{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:14584+7292’}
3{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:0+7292’}
4{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:7292+7292’}
5{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:29168+7292’}
6{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:14584+7292’}
7{‘Input’,‘split:’,‘hdfs://hostname/2kSOSP.log:0+7292’}
类别2:
8{‘Found’,‘block’,‘rdd_42_20’,‘locally’}
9{‘Found’,‘block’,‘rdd_42_22’,‘locally’}
10{‘Found’,‘block’,‘rdd_42_23’,‘locally’}
11{‘Found’,‘block’,‘rdd_42_24’,‘locally’}
对类别1使用频繁模式挖掘算法:
表1.日志消息ID序列
表2.使用基于1-gram频繁模式挖掘算法后结果
单词项集 | 支持度 |
‘Input’ | 7 |
‘split:’ | 7 |
‘hdfs://hostname/2kSOSP.log:21876+7292’ | 1 |
‘hdfs://hostname/2kSOSP.log:14584+7292’ | 2 |
‘hdfs://hostname/2kSOSP.log:0+7292’ | 2 |
‘hdfs://hostname/2kSOSP.log:7292+7292’ | 1 |
‘hdfs://hostname/2kSOSP.log:29168+7292’ | 1 |
表3.根据阈值进行过滤后结果
单词项 | 支持度 |
‘Input’ | 7 |
‘split:’ | 7 |
‘hdfs://hostname/2kSOSP.log:0+7292’ | 2 |
‘hdfs://hostname/2kSOSP.log:14584+7292’ | 2 |
表4.使用基于2-gram频繁模式挖掘算法后结果
表5.根据阈值过滤后结果
单词项集 | 支持度 |
‘Input’,‘split:’ | 7 |
生成该日志模板消息:
对类别2使用频繁模式挖掘算法:
表6.日志消息ID序列
表7.使用基于1-gram频繁模式挖掘算法后结果
单词项集 | 支持度 |
‘Found’ | 4 |
‘block’ | 4 |
‘rdd_42_20’ | 1 |
‘rdd_42_22’ | 1 |
‘rdd_42_23’ | 1 |
‘rdd_42_24’ | 1 |
‘locally’ | 4 |
表8.根据阈值进行过滤后结果
单词项 | 支持度 |
‘Found’ | 4 |
‘block’ | 4 |
‘locally’ | 4 |
表9.使用基于2-gram频繁模式挖掘算法后结果
单词项集 | 支持度 |
‘Found’,‘block’ | 4 |
‘block’,‘locally’ | 4 |
‘Found’,‘locally’ | 4 |
表10.根据阈值过滤后结果
单词项集 | 支持度 |
‘Found’,‘block’ | 4 |
‘block’,‘locally’ | 4 |
‘Found’,‘locally’ | 4 |
表11.使用基于3-gram频繁模式挖掘算法后结果
单词项集 | 支持度 |
‘Found’,‘block’,‘locally’ | 4 |
生成该日志模板消息:“Foundblock*locally”。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (5)
1.一种基于N-gram与频繁模式挖掘的系统日志解析方法,其特征在于,包括以下步骤:
步骤1:将多行日志消息依次根据空格分解为单个的单词;
步骤2:计算任意两行日志消息之间的N-gram距离;
步骤3:通过步骤2算出N分别取值1,2,3时,任意两行日志消息之间的1-gram距离、2-gram距离和3-gram距离,任意两行日志消息的相似匹配值,当匹配值高于设定阈值的日志消息归为一类;
步骤4:设置频繁模式挖掘算法的频繁单词项集的长度即m、频繁模式挖掘算法的频繁单词项集的支持度即d;
步骤5:对每一类别Ck+n中的所有日志消息使用频繁模式挖掘算法,挖掘出每一类Ck+n中符合参数设定的候选频繁单词项集。
2.根据权利要求1所述的基于N-gram与频繁模式挖掘的系统日志解析方法,其特征在于,
步骤1所述日志消息为:
messagei,i∈[1,M]
其中,messagei为序号为i日志消息,M为日志消息的数量;
步骤1所述单词序列为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
其中,tokeni,j序号为i日志消息的单词序列中第j个单词,Li为序号为i的日志消息的单词序列中单词的数量。
3.根据权利要求1所述的基于N-gram与频繁模式挖掘的系统日志解析方法,其特征在于,
步骤2所述计算任意两行日志消息之间的N-gram距离为:
N-Gram(messagei,messagej)=|GN(smessagei)|+|GN(tmessagej)|-2×GN(messagei)∩GN(messagej)
其中,1≤i≤j≤M,M为日志消息的数量;N为人为设定的数值,设定的数值分别为1,2,3;i,j为日志消息序号,N-Gram(messagei,messagej)表示序号为i的日志消息与序号为j日志消息之间的N-gram特征距离,messagei表示序号为i的日志消息,messagej表示序号为j日志消息;GN(messagei)表示序号为i的日志消息提取的N-gram特征集;|GN(messagei)|表示GN(messagei)特征集中特征的数量;GN(messagej)表示序号为i的日志消息提取的N-gram特征集,|GN(messagej)|表示GN(messagej)特征集中特征的数量;|GN(messagei)∩GN(ressagej)|表示序号为i的日志消息与序号为j的N-gram特征集特征相同的数量;
所述N-gram特征集为:
N为人为设定的数值,设定的数值分别为1,2,3;N-gram特征表示日志消息的单词从第一个单词开始,连续N个单词组成一个特征;直到特征中包含最后一个单词为止;N-gram特征集表示由日志消息特征组成的集合;
所述GN(messagei)为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
当N设置为1时,1-gram特征集为:
{{‘tokeni,1’},{‘tokeni,2’},{‘tokeni,3’},…,{‘tokeni,Li’}}
1-gram特征集中特征的数量为Li,即|G1(messagei)|=Li;
当N设置为2时,2-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’},{‘tokeni,2’,‘tokeni,3’},…,{‘tokeni,Li-1’,‘tokeni,Li’}};
2-gram特征集中特征的数量为Li-1,即|G2(messagei)|=Li-1;
当n设置为3时,3-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’,‘tokeni,3’},{‘tokeni,2’,‘tokeni,3’,‘tokeni,4’},···,{‘tokeni,Li-2’‘tokeni,Li-1’,‘tokeni,Li’}};
3-gram特征集中特征数量为Li-2,即|G3(messagei)|=Li-2;
所述序号为i的日志消息与序号为j的N-gram特征集特征相同的数量为:
messagei={tokeni,1,tokeni,2,...,tokeni,Li}
messagej={tokenj,1,tokenj,2,...,tokenj,Li}
当N=1时,messagei的1-gram特征集为:
{{‘tokeni,1’},{‘tokeni,2’},{‘tokeni,3’},…,{‘tokeni,Li’}}
messagej的1-gram特征集为
{{‘tokenj,1’},{‘tokenj,2’},{‘tokenj,3’},…,{‘tokenj,Li’}}
比较两个1-gram特征集中的特征;记录相同特征的个数,记为|G1(messagei)∩G1(messagej)|;
当N=2时,messagei的2-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’},{‘tokeni,2’,‘tokeni,3’},…,{‘tokeni,Li-1’,‘tokeni,Li’}}
messagej的2-gram特征集为
{{‘tokenj,1’,‘tokenj,2’},{‘tokenj,2’,‘tokenj,3’},…,{‘tokenj,Li-1’,‘tokenj,Li’}};比较两个2-gram特征集中的特征;记录相同特征的个数,记为|G2(messagei)∩G2(messagej)|;
当N=3时,messagei的3-gram特征集为:
{{‘tokeni,1’,‘tokeni,2’,‘tokeni,3’},{‘tokeni,2’,‘tokeni,3’,‘tokeni,4’},···,{‘tokeni,Li-2’‘tokeni,Li-1’,‘tokeni,Li’}}
messagej的3-gram特征集为
{‘tokenj,1’,‘tokenj,2’,‘tokenj,3’},{‘tokenj,2’,‘tokenj,3’,‘tokenj,4’},···,{‘tokenj,Li-2’‘tokenj,Li-1’,‘tokenj,Li’};
比较两个3-gram特征集中的特征;记录相同特征的个数,记为|G3(messagei)∩G3(messagej)|;
所述序号为i的日志消息与序号为j日志消息之间的N-gram特征距离为:
当N=1时,
1-Gram(messagei,messagej)=|G1(smessagei)|+|G1(tmessagej)|-2×G1(messagei)∩G1(messagej)
当N=2时,
2-Gram(messagei,messagej)=|G2(smessagei)|+|G2(tmessagej)|-2×G2(messagei)∩G2(messagej)
当N=3时,
3-Gram(messagei,messagej)=|G3(smessagei)|+|G3(tmessagej)|-2×G3(messagei)∩G3(messagej)。
4.根据权利要求1所述的基于N-gram与频繁模式挖掘的系统日志解析方法,其特征在于,
步骤3所述计算messagei,messagej相似匹配值为:
1-Gram(messagei,messagej)是序号为i的日志消息与序号为j的日志消息1-gram距离;2-Gram(messagei,messagej)则是序号为i的日志消息与序号为j的日志消息2-gram距离;3-Gram(messagei,messagej)是序号为i的日志消息与序号为j的日志消息3-gram距离;max(len(messagei),len(messagej))是序号为i的日志消息与序号为j的日志消息长度较长的长度值;
当matchS(messagei,messagej)≥0.5时,若messagei已有归属类别Ck,则messagej被分类到类别Ck中;若messagei和messagej未被分类,则新增一个类别Ck+n,将messagei与messagej归类到新增类别Ck+n中;
当matchS(messagei,messagej)<0.5时,messagei,messagej属于不同类别;若messagei已有归属类别Ck,messagej未被分类,则新增一个类别Ck+n,将messagej归类到新增类别Ck+n中;
步骤3将一直进行下去,直到每一条日志消息都有其归属类别Ck+n;
所述类别Ck和Ck+n为:
Ck表示分类过程中分出的第一个类别;Ck+n表示分类过程中分出的第n个类别;其中,1≤n≤L,其中L为所有日志消息分类的类别数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110195563.0A CN112882997B (zh) | 2021-02-19 | 2021-02-19 | 一种基于N-gram与频繁模式挖掘的系统日志解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110195563.0A CN112882997B (zh) | 2021-02-19 | 2021-02-19 | 一种基于N-gram与频繁模式挖掘的系统日志解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112882997A true CN112882997A (zh) | 2021-06-01 |
CN112882997B CN112882997B (zh) | 2022-06-07 |
Family
ID=76056702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110195563.0A Active CN112882997B (zh) | 2021-02-19 | 2021-02-19 | 一种基于N-gram与频繁模式挖掘的系统日志解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112882997B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114595136A (zh) * | 2022-05-09 | 2022-06-07 | 云智慧(北京)科技有限公司 | 一种日志解析方法、装置及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823823A (zh) * | 2013-07-08 | 2014-05-28 | 电子科技大学 | 基于频繁项集挖掘算法的反规范化策略选择方法 |
US20160275946A1 (en) * | 2015-03-20 | 2016-09-22 | Google Inc. | Speech recognition using log-linear model |
US20160378435A1 (en) * | 2015-06-25 | 2016-12-29 | Ca, Inc. | Automatic Discovery of Comparable Features Based on N-gram Analysis |
CN107562824A (zh) * | 2017-08-21 | 2018-01-09 | 昆明理工大学 | 一种文本相似度检测方法 |
CN107835087A (zh) * | 2017-09-14 | 2018-03-23 | 北京科东电力控制系统有限责任公司 | 一种基于频繁模式挖掘的安全设备告警规则自动提取方法 |
US20180203757A1 (en) * | 2017-01-16 | 2018-07-19 | Hitachi, Ltd. | Log message grouping apparatus, log message grouping system, and log message grouping method |
CN108874952A (zh) * | 2018-05-31 | 2018-11-23 | 福建师范大学 | 一种基于分布式日志的最大频繁序列模式挖掘方法 |
CN110888849A (zh) * | 2019-11-06 | 2020-03-17 | 国网上海市电力公司 | 一种在线日志解析方法、系统及其电子终端设备 |
-
2021
- 2021-02-19 CN CN202110195563.0A patent/CN112882997B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823823A (zh) * | 2013-07-08 | 2014-05-28 | 电子科技大学 | 基于频繁项集挖掘算法的反规范化策略选择方法 |
US20160275946A1 (en) * | 2015-03-20 | 2016-09-22 | Google Inc. | Speech recognition using log-linear model |
US20160378435A1 (en) * | 2015-06-25 | 2016-12-29 | Ca, Inc. | Automatic Discovery of Comparable Features Based on N-gram Analysis |
US20180203757A1 (en) * | 2017-01-16 | 2018-07-19 | Hitachi, Ltd. | Log message grouping apparatus, log message grouping system, and log message grouping method |
CN107562824A (zh) * | 2017-08-21 | 2018-01-09 | 昆明理工大学 | 一种文本相似度检测方法 |
CN107835087A (zh) * | 2017-09-14 | 2018-03-23 | 北京科东电力控制系统有限责任公司 | 一种基于频繁模式挖掘的安全设备告警规则自动提取方法 |
CN108874952A (zh) * | 2018-05-31 | 2018-11-23 | 福建师范大学 | 一种基于分布式日志的最大频繁序列模式挖掘方法 |
CN110888849A (zh) * | 2019-11-06 | 2020-03-17 | 国网上海市电力公司 | 一种在线日志解析方法、系统及其电子终端设备 |
Non-Patent Citations (2)
Title |
---|
王冰明: "A log-based anomaly detection method with the NW ensemble rules", 《2020 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY AND SECURITY》, 11 December 2020 (2020-12-11) * |
王卫华,应时: "一种基于日志聚类的多类型故障预测方法", 《计算机工程》, vol. 44, no. 7, 15 July 2018 (2018-07-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114595136A (zh) * | 2022-05-09 | 2022-06-07 | 云智慧(北京)科技有限公司 | 一种日志解析方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112882997B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175158B (zh) | 一种基于向量化的日志模板提取方法和系统 | |
Wang et al. | Loguad: log unsupervised anomaly detection based on word2vec | |
CN110716868B (zh) | 异常程序行为检测方法、装置 | |
Hariharakrishnan et al. | Survey of pre-processing techniques for mining big data | |
CN114818643A (zh) | 一种保留特定业务信息的日志模板提取方法 | |
CN112882997B (zh) | 一种基于N-gram与频繁模式挖掘的系统日志解析方法 | |
Duan et al. | A Generative Adversarial Networks for Log Anomaly Detection. | |
CN110347827B (zh) | 面向异构文本运维数据的事件提取方法 | |
CN116186759A (zh) | 一种面向隐私计算的敏感数据识别与脱敏方法 | |
Thaler et al. | Unsupervised signature extraction from forensic logs | |
CN112445775A (zh) | 一种光刻机的故障分析方法、装置、设备和存储介质 | |
CN113723555A (zh) | 异常数据的检测方法及装置、存储介质、终端 | |
KR101985961B1 (ko) | 국가연구개발과제 유사도 정량화 시스템 및 이를 이용한 국가연구개발과제 협업 제안 방법 | |
CN115048345A (zh) | 异常日志检测方法、装置、电子设备和存储介质 | |
JP6190341B2 (ja) | データ生成装置、データ生成方法、及びプログラム | |
CN109522915B (zh) | 病毒文件聚类方法、装置及可读介质 | |
Ju et al. | Detection of malicious code using the direct hashing and pruning and support vector machine | |
Feng et al. | A novel semantic user operation restoration from massive web URL log | |
CN117112791B (zh) | 一种未知日志分类决策系统、方法、装置及可读存储介质 | |
Shaffiei et al. | Role of Text Mining in Extracting Valuable Information from Text Data | |
CN113515637B (zh) | 危险废物种类缺失申报的识别方法、装置、计算机设备 | |
JARAMILLO-VALBUENA et al. | Performance evaluation of different clustering algorithms for data streams | |
Liu et al. | LogCAD: An Efficient and Robust Model for Log-Based Conformal Anomaly Detection | |
US20220366341A1 (en) | System and method for managing dataset quality in a computing environment | |
CN114037004A (zh) | 一种基于行为序列的ip网络攻击群体分类方法 |
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 |