界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

log-diagnostic

log-diagnostic

【效率与协作】分析日志文件的错误模式,支持JSON、syslog、Nginx等常见格式,自动检测并输出错误聚类、频率统计和时间分布报告,用于排查问题、定位高发时段。当用户上传.log文件并要求排查错误、分析错误分布、定位高发时段,或提及错误统计、日志分析等关键词时触发。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: log-diagnostic description: "分析日志文件的错误模式,支持JSON、syslog、Nginx等常见格式,自动检测并输出错误聚类、频率统计和时间分布报告,用于排查问题、定位高发时段。当用户上传.log文件并要求排查错误、分析错误分布、定位高发时段,或提及错误统计、日志分析等关键词时触发。" license: MIT type: tool tags: [logs, analysis, devops, monitoring]

Log Analyzer

对日志文件进行自动化分析,提供错误聚类、频率统计和时间分布报告。

功能

  • 错误聚类:将相似的错误消息归类,消除噪声(IP、UUID、数字等动态部分),识别根本问题
  • 频率统计:按错误类型统计出现次数,按严重程度排序
  • 时间分布:展示错误在各小时和各日期的分布,帮助定位高发时段

支持的日志格式

格式说明自动检测
JSON每行一个 JSON 对象,含 timestamp/level/message 等字段以 { 开头
syslogRFC 3164 格式,如 Jan 1 12:00:00 host proc[pid]: msg月份名开头
Nginxaccess log 或 error log 格式IP 开头或日期路径格式

使用方式

python scripts/analyze_logs.py <日志文件路径> [选项]

参数

参数说明默认值
log_file日志文件路径(必填)-
--format指定日志格式:auto/json/syslog/nginxauto
--top显示 Top N 错误聚类20
--output输出结果到 JSON 文件仅终端输出
--level过滤日志级别(如 ERROR、WARN)所有级别
--since只分析此时间之后的日志(ISO 格式)不限
--until只分析此时间之前的日志(ISO 格式)不限

示例

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

# 指定 Nginx 格式,只看 Top 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

输出说明

终端输出

=======================================================
              日志分析报告
=======================================================

📊 概览
  检测格式: json
  总行数:   15,234
  已解析:   15,100 (解析失败: 134)
  匹配条目: 12,800
  错误数:   2,341
  时间范围: 2024-01-01 00:03:12 ~ 2024-01-01 23:58:45

🔴 Top 错误聚类 (共 47 类)
  #1   [×523  ] Connection refused to database at 10.0.1.5:5432
       首次: 2024-01-01T00:15:30  末次: 2024-01-01T23:45:12
  #2   [×312  ] Timeout waiting for response from user-service after 30000ms
       首次: 2024-01-01T02:10:00  末次: 2024-01-01T22:30:45
  #3   [×198  ] File not found: /data/uploads/img_99421.png
       首次: 2024-01-01T08:00:00  末次: 2024-01-01T20:15:33
  ...

⏰ 时间分布 (按小时)
  00:00  █████░░░░░░░░░░░░░░░  42
  01:00  ██░░░░░░░░░░░░░░░░░░  18
  ...
  14:00  ████████████████████  523
  ...

📅 时间分布 (按日期)
  2024-01-01  ████████████████████  2,341

JSON 输出

使用 --output 参数可导出结构化 JSON 报告,方便后续处理或接入监控系统。

我的收藏