Drain论文概述
- [Drain: An Online Log Parsing Approach with Fixed Depth Tree](#Drain: An Online Log Parsing Approach with Fixed Depth Tree)
Drain: An Online Log Parsing Approach with Fixed Depth Tree
摘要
论文提出了一种名为 Drain 的在线日志解析方法,旨在解决由于日志量快速增长而导致的离线日志解析方法的效率问题。Drain 通过使用固定深度的解析树,并在树节点中编码特殊设计的规则,实现了日志的流式解析,并大大提高了解析效率和准确性。
介绍
现代云计算和服务导向架构(SOA)的普及使得日志分析在服务管理中变得至关重要。日志通常是唯一记录系统运行时信息的数据资源,然而,原始日志信息是非结构化的,需要解析成结构化事件以便进一步分析。现有大多数日志解析方法集中于离线批处理,而随着日志量的增加,这种方法变得越来越耗时。
方法
Drain 提出了一个固定深度的解析树,用于在线解析日志信息。具体步骤包括:
- 预处理:使用简单的正则表达式去除日志信息中的常见变量。
- 通过日志长度搜索:根据日志信息的长度选择解析树的路径。
- 通过前缀搜索:根据日志信息的前几个标记选择下一层节点。
- 相似性搜索:计算日志信息与日志事件模板的相似性,并选择最适合的日志组。
- 更新解析树:如果找到合适的日志组,则更新其信息;如果没有,则创建新的日志组并更新解析树。
实验
日志数据集:
- BGL:来自 BlueGene/L 超级计算机系统的日志数据集。
- HPC:高性能计算集群日志。
- HDFS:在 Amazon EC2 平台上的 203 节点集群中收集的 Hadoop 文件系统日志。
- Zookeeper:从实验室的 32 节点集群中收集的分布式系统协调日志。
- Proxifier:独立软件 Proxifier 的日志。
比较方法:
- LKE:一种离线日志解析方法,使用层次聚类和启发式规则。
- IPLoM:离线方法,通过三步层次分割生成模板。
- SHISO:在线解析器,使用预定义子节点数的树结构。
- Spell:在线解析方法,利用最长公共子序列加速解析过程。
评估指标:
- 准确性:使用 F1-score 评价解析方法的准确性。
- 效率:测量解析方法的运行时间。
准确性:
Drain 在四个数据集(BGL、HPC、HDFS、Zookeeper)上表现出最高的准确性,并且在 Proxifier 数据集上也表现出与最佳方法相当的准确性。其他方法的准确性结果如表格所示:
Data Set | LKE | IPLoM | SHISO | Spell | Drain |
---|---|---|---|---|---|
BGL | 0.67 | 0.99 | 0.87 | 0.98 | 0.99 |
HPC | 0.17 | 0.65 | 0.53 | 0.82 | 0.84 |
HDFS | 0.57 | 0.99 | 0.93 | 0.87 | 0.99 |
Zookeeper | 0.78 | 0.99 | 0.68 | 0.99 | 0.99 |
Proxifier | 0.85 | 0.85 | 0.85 | 0.87 | 0.86 |
效率:
Drain 在所有五个数据集上所需的运行时间最少,显著优于其他在线解析方法。运行时间结果如表格所示:
Dataset | LKE | IPLoM | SHISO | Spell | Drain | Improvement (%) |
---|---|---|---|---|---|---|
BGL | N/A | 140.57 | 10964.55 | 447.14 | 115.96 | 74.07% |
HPC | N/A | 12.74 | 582.14 | 47.28 | 8.76 | 81.47% |
HDFS | N/A | 333.03 | 6649.23 | 676.45 | 325.7 | 51.85% |
Zookeeper | N/A | 2.17 | 87.61 | 5.27 | 1.81 | 65.65% |
Proxifier | 8888.49 | 0.38 | 8.41 | 0.87 | 0.27 | 68.97% |
案例研究:实际异常检测任务
数据集:HDFS 日志数据集,用于异常检测任务。
流程:
- 日志解析:使用不同日志解析方法解析 HDFS 日志。
- 事件计数矩阵生成:将结构化日志信息转换为事件计数矩阵。
- PCA 异常检测:使用 PCA 进行异常检测。
结果:
Drain 在异常检测任务中表现优异,检测到 10720 个真实异常,仅有 278 个误报,几乎达到最优性能。结果如表格所示:
方法 | 解析准确性 | 报告异常 | 检测到的异常 | 误报 |
---|---|---|---|---|
IPLoM | 0.99 | 10998 | 10720 | 278 |
SHISO | 0.93 | 13050 | 11143 | 1907 |
Spell | 0.87 | 10949 | 10674 | 275 |
Drain | 0.99 | 10998 | 10720 | 278 |
Ground truth | 1.00 | 11473 | 11195 | 278 |
评价
论文在五个实际日志数据集上评估了 Drain 的性能,包括 BlueGene/L、HPC、HDFS、Zookeeper 和 Proxifier 数据集。实验结果显示,Drain 在四个数据集上表现出最高的准确性,在运行时间上相较于最先进的在线解析器提高了 51.85% 到 81.47%。
结论
Drain 是一种有效的在线日志解析方法,在准确性和效率上均优于现有的在线和离线日志解析方法。通过在实际应用中的评估,Drain 在异常检测任务中也表现出了良好的效果。