110 lines
3.7 KiB
Markdown
110 lines
3.7 KiB
Markdown
---
|
||
name: log-analyzer
|
||
description: 全维度日志分析技能。自动识别日志类型(Java应用/MySQL Binlog/Nginx/Trace/告警),提取关键实体(IP、thread_id、trace_id、用户、表名等),进行根因定位、告警分析、异常洞察。支持100M+大文件。触发词:分析日志、日志排查、根因定位、告警分析、异常分析。
|
||
---
|
||
|
||
# 日志分析器
|
||
|
||
基于 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、关键词 |
|
||
|
||
## 使用方法
|
||
|
||
```bash
|
||
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+ 种实体模式预编译,匹配快 |
|
||
| 一次遍历 | 提取 + 统计 + 分类一次完成 |
|
||
| 类型适配 | 不同日志类型用专用解析器 |
|
||
|
||
## 注意事项
|
||
|
||
1. **Binlog 不记录客户端 IP**:只有 server_id 和 thread_id,需结合 general_log 确认操作者
|
||
2. **敏感信息脱敏**:报告中注意不要暴露密码、密钥
|
||
3. **结合多源日志**:binlog + 应用日志 + 审计日志 才能完整还原
|