About log-analyzer
A Python skill for analyzing application, database, web access, trace, alert, and general logs. It streams files to limit memory use and produces reports with extracted entities, operations, and findings.
Key features
- 01Identify several common log formats automatically
- 02Extract more than 20 entity types
- 03Detect sensitive database and permission operations
- 04Correlate events into timelines and operation chains
- 05Generate Markdown reports and structured JSON
Use cases
- 01Trace the source of database changes
- 02Investigate clustered errors and unusual activity
- 03Review access logs for request patterns
- 04Produce structured findings from large log files
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ zrt-ai-lab/ opencode-skills --skill log-analyzerAfter installing, type/log-analyzerin Claude Code to confirm it loaded.
Bundled filesREADME.mdscripts/preprocess.py
Details
From the project README日志分析器
基于 RAPHL(Recursive Analysis Pattern for Hierarchical Logs)的全维度智能日志分析技能。流式处理,内存占用低,100M+ 日志秒级分析。
核心能力
| 能力 | 说明 |
|---|---|
| 自动识别 | 自动识别日志类型:Java App / MySQL Binlog / Nginx / Trace / Alert |
| 实体提取 | IP、thread_id、trace_id、user_id、session_id、bucket、URL、表名等 20+ 种 |
| 操作分析 | DELETE/UPDATE/INSERT/DROP 等敏感操作检测 |
| 关联分析 | 时间线、因果链、操作链构建 |
| 智能洞察 | 自动生成分析结论、证据、建议 |
支持的日志类型
| 类型 | 识别特征 | 提取内容 |
|---|---|---|
| Java App | ERROR/WARN + 堆栈 | 异常类型、堆栈、logger、时间 |
| MySQL Binlog | server id、GTID、Table_map | 表操作、thread_id、server_id、数据变更 |
| Nginx Access | IP + HTTP 方法 + 状态码 | 请求IP、URL、状态码、耗时 |
| Trace | trace_id、span_id | 链路追踪、调用关系、耗时 |
| Alert | CRITICAL/告警 | 告警级别、来源、消息 |
| General | 通用 | 时间、IP、关键词 |
使用方法
python .opencode/skills/log-analyzer/scripts/preprocess.py <日志文件> -o ./log_analysis
输出文件
| 文件 | 内容 | 用途 |
|---|---|---|
summary.md | 完整分析报告 | 优先阅读 |
entities.md | 实体详情(IP、用户、表名等) | 追溯操作来源 |
operations.md | 操作详情 | 查看具体操作 |
insights.md | 智能洞察 | 问题定位和建议 |
analysis.json | 结构化数据 | 程序处理 |
实体提取清单
网络/连接类
- IP 地址、IP:Port、URL、MAC 地址
追踪/会话类
- trace_id、span_id、request_id、session_id、thread_id
用户/权限类
- user_id、ak(access_key)、bucket
数据库类
- database.table、server_id
性能/状态类
- duration(耗时)、http_status、error_code
敏感操作检测
| 类型 | 检测模式 | 风险级别 |
|---|---|---|
| 数据删除 | DELETE, DROP, TRUNCATE | HIGH |
| 数据修改 | UPDATE, ALTER, MODIFY | MEDIUM |
| 权限变更 | GRANT, REVOKE, chmod | HIGH |
| 认证操作 | LOGIN, LOGOUT, AUTH | MEDIUM |
智能洞察类型
| 类型 | 说明 |
|---|---|
| security | 大批量删除/修改、权限变更 |
| anomaly | 高频 IP、异常时间段操作 |
| error | 严重异常、错误聚类 |
| audit | 操作来源、用户行为 |
分析流程
Phase 1: 日志类型识别(采样前100行)
↓
Phase 2: 全量扫描提取(流式处理)
↓
Phase 3: 关联分析(时间排序、聚合统计)
↓
Phase 4: 智能洞察(异常检测、生成结论)
↓
Phase 5: 生成报告(Markdown + JSON)
技术特点
| 特点 | 说明 |
|---|---|
| 流式处理 | 逐行读取,100M 文件只占几 MB 内存 |
| 正则预编译 | 20+ 种实体模式预编译,匹配快 |
| 一次遍历 | 提取 + 统计 + 分类一次完成 |
| 类型适配 | 不同日志类型用专用解析器 |
注意事项
- Binlog 不记录客户端 IP:只有 server_id 和 thread_id,需结合 general_log 确认操作者
- 敏感信息脱敏:报告中注意不要暴露密码、密钥
- 结合多源日志:binlog + 应用日志 + 审计日志 才能完整还原
Comments
Markdown supported