SuperAPI AI 工具集

log-error-digest

部署与运维

查看项目

更新于 10-16 02:43

技能介绍

log-error-digest 是一个面向日志文件排查的命令行工具,用于分析日志中的错误、识别错误高峰期,并生成错误聚类、频率统计与时间分布报告。项目以 Python 脚本形式提供,入口为 scripts/analyze_logs.py。

主要能力

  1. 错误聚类:将相似的错误消息归为一类。其做法是归一化消息中的动态部分(如 IP、UUID、数字等),从而把同一类根因引发的错误合并统计。

  2. 频率统计:按错误类型统计出现次数,并按严重程度排序。

  3. 时间分布:按小时和按日期展示错误分布,帮助定位错误高峰时段。

支持的日志格式

工具支持自动识别以下格式:

  • JSON:每行一个 JSON 对象,包含 timestamp/level/message 字段,自动识别依据为行以 { 开头。
  • syslog:RFC 3164 格式,例如 Jan 1 12:00:00 host proc[pid]: msg,自动识别依据为行以月份名称开头。
  • Nginx:访问日志或错误日志格式,自动识别依据为行以 IP 或日期/路径模式开头。

使用方式

基本命令:

python scripts/analyze_logs.py <log_file_path> [options]

参数说明:

  • log_file:日志文件路径,必填。
  • --format:日志格式,可选 auto/json/syslog/nginx,默认 auto。
  • --top:显示前 N 个错误聚类,默认 20。
  • --output:将结果导出为 JSON 文件,默认仅输出到终端。
  • --level:按日志级别过滤,例如 ERROR、WARN,默认不限制级别。
  • --since:仅分析该时间之后的日志(ISO 格式),默认无限制。
  • --until:仅分析该时间之前的日志(ISO 格式),默认无限制。

示例

自动检测格式并分析整个日志文件: python scripts/analyze_logs.py /var/log/app.log

指定 Nginx 格式,仅显示前 10 个错误: python scripts/analyze_logs.py /var/log/nginx/error.log --format nginx --top 10

仅过滤 ERROR 级别并导出 JSON 报告: python scripts/analyze_logs.py app.log --level ERROR --output report.json

分析指定时间范围内的日志: python scripts/analyze_logs.py app.log --since 2024-01-01T00:00:00 --until 2024-01-02T00:00:00

输出形式

终端输出包含以下内容:

  • 概览:检测到的格式、总行数、已解析行数(解析失败数)、匹配条目数、错误数、时间范围。
  • Top 错误聚类:按出现次数排序,并显示每个聚类的首次出现时间和最后出现时间。列表中会标注聚类总数。
  • 按小时的时间分布:以柱状条和计数展示各小时的错误数量。
  • 按日期的时间分布:以柱状条和计数展示各日期的错误数量。

JSON 输出:使用 --output 参数可导出结构化 JSON 报告,便于后续处理或与监控系统集成。

其他信息

文档未提供关于安装步骤、运行环境依赖、授权许可、价格或平台支持的说明,这些内容暂未提供。