mcpField
L
log-analyzer

log-analyzer

github.com/zrt-ai-lab云与 DevOps29690 次安装14 周前更新
代码仓库

关于 log-analyzer

用于分析应用、数据库、Web 访问、追踪、告警和通用日志的 Python 技能。它以流式方式处理文件以控制内存占用,并生成包含实体、操作和发现的报告。

主要功能

  1. 01自动识别多种常见日志格式
  2. 02提取 20 多种实体类型
  3. 03检测敏感数据库和权限操作
  4. 04将事件关联为时间线和操作链
  5. 05生成 Markdown 报告及结构化 JSON

适用场景

  1. 01追查数据库变更的来源
  2. 02调查成组错误和异常活动
  3. 03检查访问日志中的请求模式
  4. 04从大型日志文件生成结构化发现

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zrt-ai-lab/opencode-skills --skill log-analyzer

安装后在 Claude Code 中输入/log-analyzer确认已加载。

附带文件README.mdscripts/preprocess.py

详细介绍

来自项目 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 AppERROR/WARN + 堆栈异常类型、堆栈、logger、时间
MySQL Binlogserver id、GTID、Table_map表操作、thread_id、server_id、数据变更
Nginx AccessIP + HTTP 方法 + 状态码请求IP、URL、状态码、耗时
Tracetrace_id、span_id链路追踪、调用关系、耗时
AlertCRITICAL/告警告警级别、来源、消息
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, TRUNCATEHIGH
数据修改UPDATE, ALTER, MODIFYMEDIUM
权限变更GRANT, REVOKE, chmodHIGH
认证操作LOGIN, LOGOUT, AUTHMEDIUM

智能洞察类型

类型说明
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 + 应用日志 + 审计日志 才能完整还原

评论

支持 Markdown