1 简介
本文根据2017年《Drain: An Online Log Parsing Approach with Fixed Depth Tree》翻译总结的。
从文章标题可以看出来Drain是一个在线实时日志解析方法,其采用的是固定长度的树模型。
一个经典的日志分析方法首先是处理非结构化的初始日志信息,然后应用数据挖掘模型提取系统行为信息。
传统的通过规则解析的方法费时费力,而且日志量越来越大,越难处理。
Drain是自动处理的,在准确率和速度上都有提升,尤其是速度上。Drain将非结构化日志信息转化成结构化的日志信息。
Drain 示例如下:
2 方法说明
如上图,Drain解析步骤如下:
- 日志预处理,如解析出ip、数字模块等。如图1的“blk [0-9]+”。
- 根据日志信息长度搜索,如上图的“Length:4“.
- 根据日志前面的单词搜索,如图1 “Receive”. 如果含数字的单词,就用*表示。
- 根据单词相似性搜索。是最后一个leaf Node 的处理。比较日志信息和log event的相似,如相似放到同一个log group里。每个log group包括两部分,log event和log IDs。 log event是模板,描述在这个group的日志信息。log IDs记录这个group里的日志信息的IDs。
- 更新解析树。如果在第4步有找到合适的log group,那么就将日志中的log id添加到log group中。同时需要的话,也会更新log event。如果没找到合适的log group,就新增一个。
3 实验结果
从下表可以看出来Drain的准确率很好。
下表说明Drain的速度很好。