【日志解析】【频率分析】ULP:基于正则表达式和本地频率分析进行日志模板提取

文章提出了一种有效解析大型日志文件的方法,侧重于预处理、日志事件的相似性分组和局部频率分析来生成日志模板。通过简化正则表达式处理静态和动态内容,无需领域知识,提高了准确性与效率。在LogPai基准上进行了评估并与其他解析工具对比。
摘要由CSDN通过智能技术生成

An Effective Approach for Parsing Large Log Files

1 论文出处

会议:International Conference on Software Maintenance and Evolution(ICSME)

级别:CCF-B

时间:2022

2 背景

2.1 背景介绍

  日志文件包括大量关于软件系统执行的信息,用于帮助处理不同的软件工程活动,生成的日志事件主要由两部分组成:日志头和日志消息。解析日志消息需要自动区分静态文本和动态变量,一种方法是使用正则表达式,而典型的工业日志文件可能包含数百个日志模板,许多方法基于频率分析来实现,比如Drain和Logram,这些工具将频率分析应用于整个日志文件,这使得很难在静态和动态标记之间找到明确的界限。

2.2 针对问题
  • 使用多个日志库会导致正则表达式的不断更新。
  • 依赖于领域知识很难区分日志的动态变量和静态内容。
  • 将频率分析应用于属于同一组的日志事件,而不是针对整个日志数据集。
2.3 创新点
  • 基于字符串匹配和本地频率分析对日志进行解析,不需要先前的领域知识或使用复杂的机器学习技术。
  • 设计通用的正则表达式来进行日志预处理。

3 主要设计思路

3.1 预处理

  通过简单的正则表达式识别出日志的头部信息,包括时间戳、进程ID、日志级别和日志记录功能,以及一些简单的动态变量比如IP地址和MAC地址,并且运行用户自定义正则表达式识别领域变量。

3.2 日志事件分组

  根据两个日志事件所包含的标记数量与最有可能是静态标记的标记数量来衡量两个日志事件的相似性,首先通过空格分割来确定标记个数,之后识别出只包含字母的标记,最后将日志事件转变为一个由字母标记和标记总数组成的字符串来进行匹配。

3.3 通过频率分析生成日志模板

  通过计算每个标记在属于同一组的日志事件中出现的次数,来分析每一组日志事件中出现的标记。

1) PacketResponder 1 for block blk_38865049064139660 terminating
2) PacketResponder 0 for block blk_-6952295868487656571 terminating
3) PacketResponder 2 for block blk_8229193803249955061 terminating
4) PacketResponder 2 for block blk_-6670958622368987959 terminating
5) PacketResponder 2 for block blk_572492839287299681 terminating
1) PacketResponder <*> for block <*> terminating
2) BLOCK* NameSystem.addStoredBlock: blockMap updated: <*> is added to <*> size 67108864
3) Received block <*> of size 67108864 from <*>

4 实验设计

  评估了ULP在解析LogPai基准的10个日志数据集时的准确性和效率,并与目前已有的解析方法对比。

4.1 准确性
4.2 效率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小天才才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值