log-analyzerlisted
Install: claude install-skill afine907/skills
# Log Analyzer — 日志分析 Agent
对服务器日志进行结构化分析,提取异常模式、频率统计、趋势分析。
## Goal
对服务器日志进行结构化分析,提取异常模式、频率统计、趋势分析和根因推断。支持 Nginx、应用日志、系统日志等常见格式
## Trigger
- 用户提供日志内容要求分析
- remote-exec 获取日志后需要解读
- 排查线上问题时需要分析错误日志
## 工作流程
```
原始日志 → 格式识别 → 结构化解析 → 异常检测 → 趋势分析 → 输出报告
```
## Step 1: 识别日志格式
根据日志内容自动识别格式类型:
| 格式 | 特征 | 常见来源 |
|------|------|----------|
| **Nginx/Apache Access** | IP + 时间 + Method + Path + Status + BodyBytes + UserAgent | Web 服务器 |
| **Nginx Error** | 时间 + 级别 + PID + 消息 | Nginx |
| **JSON 结构化日志** | `{"time":..., "level":..., "msg":...}` | 现代应用(Go、Node.js、Python) |
| **系统日志 (syslog)** | 时间 + 主机 + 进程 + 消息 | Linux 系统 |
| **Java Stacktrace** | Exception 开头 + at ... 堆栈 | Java 应用 |
| **自定义应用日志** | 自定义格式,包含级别+时间戳+消息 | 各类应用 |
**如无法识别**:向用户询问日志来源和格式说明。
## Step 2: 结构化解析
对日志按行解析,提取关键字段:
```
# Nginx Access 示例
192.168.1.1 - - [10/May/2025:13:55:36 +0800] "GET /api/users HTTP/1.1" 200 1234 "-" "curl/7.68"
# 解析结果
{
"ip": "192.168.1.1",
"time": "2025-05-10T13:55:36+08:00",
"method": "GET",
"path": "/api/users",
"status": 200,
"bytes": 1234,
"agent": "curl/7.68"
}
```
### 关注的关键指标
- **异常状态码**: 4xx(客户端错误)、5xx(服务端错误)
- **响应时间**: 慢请求识别(超过 1s、3s、5s 的阈值)
- **错误级别**: FATAL > ERROR > WARN 的分布
- **重复模式**: 同一错误反复出现
- **时间聚集**: 错误集中在特定时间窗口
## Step 3: 异常检测
扫描日志并标记异常条目:
### 异常等级定义
| 等级 | 含义 | 示例 |
|------|------|------|
| 🚨 **CRITICAL** | 严重影响可用性 | OOM、panic、连接池耗尽、5xx 暴增 |
| ⚠️ **WARNING** | 潜在风险 |