是否存在可压缩含重复条目的时序日志命令行过滤工具?
寻找一款通用时序日志冗余压缩过滤工具
日志文件里经常充斥着重复条目,尤其是嵌入式应用的日志,这类重复内容甚至能占满整个日志流或文件。时序格式的日志不仅会导致文件体积臃肿,还让异常值和长期尺度下的有效变化难以被识别——把全量日志从嵌入式设备传到云端去分析,很多时候根本不划算。
我一直在找一款通用命令行过滤工具,它需要能通过移除冗余条目来压缩时序日志文本,同时支持流式输入和静态文件输入,而且得能在嵌入式Linux设备和普通笔记本上都跑起来。目前我还没找到符合要求的工具,想确认一下是否有现成的这类工具存在。
这款工具的核心逻辑应该是这样的:
- 非重复内容直接输出
- 重复内容会被压缩处理:也就是把周期序列中第一个和最后一个实例之间的大部分(甚至全部)中间实例排除掉
具体来说,工具应该用以下内容替代冗余输出:
- 序列的首个实例
- (可选)序列被判定为重复前的额外几个实例
- 内容开始重复的标识信息
- 序列的最后一个实例
- 时间间隔统计数据:包括最小值(min)、最大值(max)、众数(mode)、标准差(standard deviation)
- 缺失条目统计数据:包括缺失数量、缺失百分比
另外,工具最好能支持一些可配置参数,比如:
- 是读取日志文本自带的timestamp,还是使用输入时的系统时间
- 自定义timestamp的格式
- 判定为周期序列的最大间隔时间阈值
- 判定为周期序列的最大绝对和/或相对抖动阈值
- 判定为周期序列的最小重复次数要求
- 当重复条目还没被判定为周期序列的一部分时,是直接抑制输出还是延迟输出
- 是否需要报告持续序列的统计信息,以及报告的时间间隔
- 报告序列完成前允许的最大缺失重复次数
这个工具可以用来处理syslog、journalctl、candump、tcpdump等工具生成的重复日志和文本输出。
我已经着手开发这类工具了,但还是希望能找到现成的工具来借鉴,甚至可以贡献代码。准备这个问题的时候,我查了50多款日志管理工具,都没发现具备这个功能的。The Log File Navigator看起来最接近我的需求,可以作为一个不错的开发起点。
内容的提问来源于stack exchange,提问作者Jeffrey Urban
相关产品推荐
相关产品推荐

