当前位置: 首页 > 专利查询>湖南大学专利>正文

一种面向日志局部性特征的快速日志解析方法与系统技术方案

技术编号:37350386 阅读:19 留言:0更新日期:2023-04-22 21:49
本发明专利技术公开了一种面向日志局部性特征的快速日志解析方法,其将日志数据集切分为模板提取数据集和日志匹配数据集,对于模板提取数据集:按照日志长度将模板提取数据集中的日志消息切分为不同的日志组,对日志组中的日志消息执行适用于日志数据的多序列最长公共子序列算法提取该日志组的公共单词,判断公共单词的个数是否符合阈值,大于或等于阈值时,为该日志组生成日志模板,将模板加入到模板库中并更新缓存。本发明专利技术通过将计算机日志切分到日志组中,对多条日志消息执行适用于日志数据的多序列最长公共子序列算法,一次性提取多条日志消息的公共单词来获取模板,并使用基于缓存的就近匹配算法为每条日志消息匹配模板,提高了日志解析效率和精度。日志解析效率和精度。日志解析效率和精度。

【技术实现步骤摘要】
一种面向日志局部性特征的快速日志解析方法与系统


[0001]本专利技术属于计算机日志解析
,更具体地,涉及一种面向日志局部性特征的快速日志解析方法与系统。

技术介绍

[0002]随着超级计算机、分布式系统、云服务、以及物联网等技术的发展,计算机日志呈现出爆炸式增长的势态,这使得基于人工的传统日志解析不再适用。此外,不同拥有者和不同系统产生的计算机日志格式多种多样,并且这些多样的计算机日志往往产生于同一个架构中,例如拥有众多使用者的云服务平台,拥有众多节点的超级计算机或者分布式系统,以及拥有众多设备的物联网系统,这也使得基于预定义规则的脚本工具式日志解析不再适用。
[0003]现有的日志解析方法主要包括:利用频繁项挖掘技术,对计算机日志进行遍历识别频繁项,并根据频繁项及频繁项位置将计算机日志进行分组,并提取最终的日志模板的离线算法,以及以聚类为中心思想,建立日志相似性公式来衡量不同计算机日志语句的相似性并进行聚类的方法,以及基于最长公共子序列(Longest Common Subsequence,简称LCS)进行计算机日志相似度判断,对计算机日志进行分类的方法。
[0004]然而,上述几种现有的日志解析方法都存在一些不可忽略的缺陷:第一,由于其未能充分利用计算机日志数据集本身的数据特性,而只是局限在计算机日志两两对比的模式中,导致解析效率较低;第二,现有日志解析方法并没有充分挖掘日志消息与模板之间的关联性,导致解析精度不够高。

技术实现思路

[0005]针对现有技术的以上缺陷或改进需求,本专利技术提供了一种面向日志局部性特征的快速日志解析方法与系统,其目的在于,解决现有日志解析方法解析效率低,解析精度低的技术问题。
[0006]为实现上述目的,按照本专利技术的一个方面,提供了一种面向日志局部性特征的快速日志解析方法,包括以下步骤:
[0007](1)获取计算机的多个日志消息所构成的日志数据集,对获取到的日志数据集按照比例进行划分,以得到模板提取数据集和日志匹配数据集;
[0008](2)按照模板提取数据集中各个日志消息的日志长度将步骤(1)得到的模板提取数据集划分成多个日志组;
[0009](3)设置计数器i=1;
[0010](4)判断i是否大于步骤(2)得到的日志组的个数,如果是则进入步骤(14),否则获取第i个日志组,使用多序列最长公共子序列算法MLCS对第i个日志组进行处理,以得到第i个日志组对应的公共单词,并转入步骤(5);
[0011](5)判断步骤(4)得到的第i个日志组对应的公共单词的个数是否大于或等于阈
值,如果是则进入步骤(6),否则转入步骤(8);
[0012](6)为第i个日志组生成模板,并根据生成的模板更新模板库与缓存,然后进入步骤(7);
[0013](7)设置i=i+1,并返回步骤(4);
[0014](8)使用基于随机位置最小单词种类的日志切分算法对当前日志组进行处理,以得到多个子日志组;
[0015](9)设置计数器j=1;
[0016](10)判断j是否大于步骤(8)得到的子日志组的个数,如果是则返回步骤(7),否则获取第j个子日志组,使用适用于日志数据的多序列最长公共子序列算法对第j个子日志组进行处理,以得到第j个子日志组对应的公共单词,并转入步骤(11);
[0017](11)判断步骤(10)得到的第j个子日志组对应的公共单词的个数是否大于或等于阈值,如果是则进入步骤(12),否则返回步骤(8);
[0018](12)为第j个子日志组生成模板并更新模板库与缓存,然后进入步骤(13);
[0019](13)设置j=j+1,并返回步骤(10);
[0020](14)使用基于缓存的就近匹配算法为步骤(1)得到的日志匹配数据集中的每条日志消息匹配模板,并更新模板库与缓存。
[0021]优选地,步骤(4)中对日志组进行处理,以得到日志组对应的公共单词这一过程包括以下子步骤:
[0022](4

1)初始化公共单词集合CTokens(其初始为空字符串数组),用于表示公共单词集合;
[0023](4

2)设置计数器p=1;
[0024](4

3)判断p是否大于第i个日志组中每条日志消息的日志长度L,如果是则过程结束,否则转入步骤(4

4);
[0025](4

4)设置计数器q=2;
[0026](4

5)判断q是否大于第i个日志组中日志消息的数量N,如果是则说明第i个日志组中所有日志消息中的第p个单词都相同,然后进入步骤(4

7),否则转入步骤(4

6);
[0027](4

6)判断第i个日志组中第q条日志消息中的第p个单词是否等于第i个日志组中第1条日志消息中的第p个单词,如果是则进入步骤(4

8),否则转入步骤(4

9)
[0028](4

7)将第i个日志组中所有日志消息中的第p个单词加入到公共单词集合CTokens中,并进入步骤(4

9);
[0029](4

8)设置q=q+1,并返回步骤(4

5);
[0030](4

9)设置p=p+1,并返回步骤(4

3)。
[0031]优选地,步骤(5)中阈值Threshold的计算公式为:
[0032][0033]优选地,步骤(6)包括以下子步骤:
[0034](6

1)为第i个日志组生成模板TPL1;
[0035](6

2)设置计数器p=1;
[0036](6

3)判断p是否大于缓存大小,如果是则进入步骤(6

7),否则,取出缓存中的第p个元素cache
p
,并取出模板库中的第cache
p
个模板TPL2,判断步骤(6

1)得到的模板TPL1与模板TPL2的模板长度是否相同,如果是则进入步骤(6

4),否则,转入步骤(6

6);
[0037](6

4)判断模板TPL1与模板TPL2的模板内容是否相同,如果是则说明模板TPL1与模板TPL2匹配成功,进入步骤(6

5),否则转入步骤(6

6);
[0038](6

5)将模板TPL1的模板日志IDs加入到模板TPL2的模板日志IDs中,将模板TPL2的索引号cache
p
移动到缓存的第一个位置,过程结束;
[0039](6
...

【技术保护点】

【技术特征摘要】
1.一种面向日志局部性特征的快速日志解析方法,其特征在于,包括以下步骤:(1)获取计算机的多个日志消息所构成的日志数据集,对获取到的日志数据集按照比例进行划分,以得到模板提取数据集和日志匹配数据集;(2)按照模板提取数据集中各个日志消息的日志长度将步骤(1)得到的模板提取数据集划分成多个日志组;(3)设置计数器i=1;(4)判断i是否大于步骤(2)得到的日志组的个数,如果是则进入步骤(14),否则获取第i个日志组,使用多序列最长公共子序列算法MLCS对第i个日志组进行处理,以得到第i个日志组对应的公共单词,并转入步骤(5);(5)判断步骤(4)得到的第i个日志组对应的公共单词的个数是否大于或等于阈值,如果是则进入步骤(6),否则转入步骤(8);(6)为第i个日志组生成模板,并根据生成的模板更新模板库与缓存,然后进入步骤(7);(7)设置i=i+1,并返回步骤(4);(8)使用基于随机位置最小单词种类的日志切分算法对当前日志组进行处理,以得到多个子日志组;(9)设置计数器j=1;(10)判断j是否大于步骤(8)得到的子日志组的个数,如果是则返回步骤(7),否则获取第j个子日志组,使用适用于日志数据的多序列最长公共子序列算法对第j个子日志组进行处理,以得到第j个子日志组对应的公共单词,并转入步骤(11);(11)判断步骤(10)得到的第j个子日志组对应的公共单词的个数是否大于或等于阈值,如果是则进入步骤(12),否则返回步骤(8);(12)为第j个子日志组生成模板并更新模板库与缓存,然后进入步骤(13);(13)设置j=j+1,并返回步骤(10);(14)使用基于缓存的就近匹配算法为步骤(1)得到的日志匹配数据集中的每条日志消息匹配模板,并更新模板库与缓存。2.根据权利要求1所述的面向日志局部性特征的快速日志解析方法,其特征在于,步骤(4)中对日志组进行处理,以得到日志组对应的公共单词这一过程包括以下子步骤:(4

1)初始化公共单词集合CTokens(其初始为空字符串数组),用于表示公共单词集合;(4

2)设置计数器p=1;(4

3)判断p是否大于第i个日志组中每条日志消息的日志长度L,如果是则过程结束,否则转入步骤(4

4);(4

4)设置计数器q=2;(4

5)判断q是否大于第i个日志组中日志消息的数量N,如果是则说明第i个日志组中所有日志消息中的第p个单词都相同,然后进入步骤(4

7),否则转入步骤(4

6);(4

6)判断第i个日志组中第q条日志消息中的第p个单词是否等于第i个日志组中第1条日志消息中的第p个单词,如果是则进入步骤(4

8),否则转入步骤(4

9)(4

7)将第i个日志组中所有日志消息中的第p个单词加入到公共单词集合CTokens中,
并进入步骤(4

9);(4

8)设置q=q+1,并返回步骤(4

5);(4

9)设置p=p+1,并返回步骤(4

3)。3.根据权利要求1或2所述的面向日志局部性特征的快速日志解析方法,其特征在于,步骤(5)中阈值Threshold的计算公式为:4.根据权利要求1至3中任意一项所述的面向日志局部性特征的快速日志解析方法,其特征在于,步骤(6)包括以下子步骤:(6

1)为第i个日志组生成模板TPL1;(6

2)设置计数器p=1;(6

3)判断p是否大于缓存大小,如果是则进入步骤(6

7),否则,取出缓存中的第p个元素cache
p
,并取出模板库中的第cache
p
个模板TPL2,判断步骤(6

1)得到的模板TPL1与模板TPL2的模板长度是否相同,如果是则进入步骤(6

4),否则,转入步骤(6

6);(6

4)判断模板TPL1与模板TPL2的模板内容是否相同,如果是则说明模板TPL1与模板TPL2匹配成功,进入步骤(6

5),否则转入步骤(6

6);(6

5)将模板TPL1的模板日志IDs加入到模板TPL2的模板日志IDs中,将模板TPL2的索引号cache
p
移动到缓存的第一个位置,过程结束;(6

6)设置p=p+1,并返回步骤(6

3);(6

7)设置计数器q=1;(6

8)判断q是否大于模板库中的模板数,如果是,则进入步骤(6

13),否则取出模板库中的第q个模板TPL3,转入步骤(6

9);(6

9)判断模板TPL1与模板TPL3的模板长度是否相同,如果是则进入步骤(6

10),否则,转入步骤(6

12);(6

10)判断模板TPL1与模板TPL3的模板内容是否相同,如果是则说明模板TPL1与模板TPL3匹配成功,进入步骤(6

11),否则转入步骤(6

12);(6

11)将模板TPL1的模板日志IDs加入到模板TPL3的模板日志IDs中,将模板TPL3的索引号加到缓存的第一个位置,过程结束;(6

12)设置q=q+1,并返回步骤(6

8);(6

13)将模板TPL1加入到模板库中,将模板TPL1在模板库中的索引号加到缓存的第一个位置,过程结束。5.根据权利要求4所述的面向日志局部性特征的快速日志解析方法,其特征在于,步骤(6

1)中为第i个日志组生成模板这一过程包括以下子步骤:(6
‑1‑
1)创建模板TPL,初始化模板TPL的模板长度为第i个日志组中每一条日志消息的日志长度L,初始化模板TPL的模板内容为大小为L的空字符串数组,初始化模板TPL的模板常量位置为空数组,初始化模板TPL的模板日志IDs为空数组;(6
‑1‑
2)获取第i个日志组中的第一条日志消息log1;
(6
‑1‑
3)设置计数器q=1;(6
‑1‑
4)判断q是否大于L,如果是则进入步骤(6
‑1‑
6),否则判断log1的第q个单词是否存在于第i个日志组的公共单词集合中,如果是则将步骤(6
‑1‑
1)创建的模板TPL的模板内容的第q个元素设置为log1的第q个单词,并将q加入到常量位置中,否则,将模板TPL的模板内容的第q个元素设置为通配符“<*>”,然后进入步骤(6
‑1‑
5);(6
‑1‑
5)设置q=q+1,并返回步骤(6
‑1‑
4);(6
‑1‑
6)将第i个日志组中所有日志消息的日志ID加入到模板TPL的日志IDs中,过程结束。6.根据权利要求1所述的面向日志局部性特征的快速日志解析方法,其特征在于,步骤(8)包括以下子步骤:(8

1)初始化空数组Tss,用于保存不同位置上的单词种类;(8

2)生成元素值大小为1至L的随机数数组RA;(8

3)设置计数器p=1;(8

4)判断p是否大于当前日志组中每条日志消息的日志长度L,如果是转入步骤(8

16),否则进入步骤(8

5);(8

5)取出数组RA中第p个元素RA
p
;(8

6)设置字典类型的空变量tokenType,其键用于存储单词,键值用于存储当前日志组中第RA
p
个单词与键相同的日志消息的索引号;(8

7)设置计数器q=1;(8

8)判断q是否大于当前日志组中的日志消息数量N,如果是则进入步骤(8

13),否则转入步骤(8

9);(8

9)取出第q条日志消息的第RA
p
个单词tokenRA
p
,判断单词tokenRA
p
是否存在于字典tokenType的键中,如果是则进入步骤(8

10),否则转入步骤(8

11);(8

10)将q加入到字典tokenType中键为单词tokenRA
p
的字典元素的键值数组中,进入步骤(8

12);(8

11)在字典tokenType中创建键为单词tokenRA
p
,键值为q的新元素,进入步骤(8

12);(8

12)设置q=q+1,返回步骤(8

8);(8

13)判断字典变量tokenType的键值对个数是否大于1且小于日志长度L,如果是则进入步骤(...

【专利技术属性】
技术研发人员:马琛迎谢鲲何施茗文吉刚李肯立
申请(专利权)人:湖南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1