log-analyzer

Installation
SKILL.md

📋 log-analyzer — 日志分析助手

触发条件

当用户要求以下操作时激活此技能:

  • 分析应用日志文件(.log, .txt, journalctl 输出等)
  • 排查线上问题和异常
  • 从日志中提取统计信息
  • 生成日志分析报告

工作流程

1. 日志格式识别

自动检测日志格式:

  • 结构化: JSON logs, Logfmt
  • 常见格式: Nginx/Apache access log, Spring Boot, Django, Rails
  • 系统日志: syslog, journalctl, Windows Event Log
  • 自定义格式: 根据正则提取字段

2. 日志预处理

  • 按时间范围过滤(如「最近 1 小时」「今天」)
  • 按日志级别筛选(ERROR, WARN, INFO, DEBUG)
  • 按来源/模块/服务过滤
  • 去重和聚合相似错误

3. 异常模式检测

  • 错误聚类: 将相似错误归为一组,避免重复分析
  • 频率分析: 识别高频错误和突发异常
  • 时间关联: 发现错误是否与特定事件(部署、流量高峰)相关
  • 因果链追踪: 从根因错误到最终表现

4. 关键信息提取

  • 错误堆栈分析(定位源码位置)
  • HTTP 状态码分布(4xx/5xx 比例)
  • 响应时间统计(P50/P95/P99)
  • 内存/CPU 异常指标

5. 生成分析报告

## 📊 日志分析报告

### 概览
- 时间范围: 2024-01-15 10:00 ~ 12:00
- 总日志量: 12,847 条
- 错误数: 234 (1.8%)
- 警告数: 567 (4.4%)

### Top 5 异常
| 排名 | 错误类型 | 次数 | 首次出现 | 最近出现 |
|------|---------|------|---------|---------|
| 1 | NullPointerException | 89 | 10:15 | 11:42 |
| 2 | ConnectionTimeout | 67 | 10:23 | 11:58 |

### 根因分析
最可能的原因:数据库连接池耗尽(线索:连续出现 ConnectionTimeout 后跟大量 NullPointerException)

### 建议
1. 检查数据库连接池配置(当前可能 maxActive 太小)
2. 排查是否存在连接泄漏
3. 添加连接池监控告警

支持的日志来源

  • 文件系统日志(*.log)
  • Docker/Kubernetes 容器日志
  • journalctl 系统日志
  • AWS CloudWatch / GCP Logging
  • ELK Stack (Elasticsearch 查询结果)
  • 应用直接输出的文本

注意事项

  • 敏感信息脱敏(密码、token、手机号等)
  • 大文件分块处理,避免内存溢出
  • 时区统一处理
  • 不要臆造日志中不存在的信息
Related skills
Installs
7
GitHub Stars
52
First Seen
Apr 23, 2026