log-analyzer について
アプリケーション、データベース、Webアクセス、トレース、アラートなどのログを分析する Python スキルです。ストリーミング処理でメモリ使用量を抑え、抽出したエンティティや操作、分析結果をレポートにまとめます。
主な機能
- 01複数の一般的なログ形式を自動判別
- 0220 種類以上のエンティティ抽出
- 03データベースや権限に関する操作の検出
- 04イベントをタイムラインや操作チェーンに関連付け
- 05Markdown レポートと構造化 JSON の生成
活用シーン
- 01データベース変更の発生元の追跡
- 02エラーの集中や不審な活動の調査
- 03アクセスログのリクエスト傾向の確認
- 04大容量ログからの構造化された分析結果の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zrt-ai-lab/ opencode-skills --skill log-analyzerインストール後、Claude Code で/log-analyzerを入力して読み込まれたか確認します。
同梱ファイルREADME.mdscripts/preprocess.py
詳細
ログアナライザー
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)
技術的な特徴
| 特徴 | 説明 |
|---|---|
| ストリーミング処理 | 1 行ずつ読み込み、100M のファイルでもメモリ使用量は数 MB です |
| 正規表現の事前コンパイル | 20 種類以上のエンティティパターンを事前コンパイルし、高速にマッチングします |
| 1 回の走査 | 抽出、集計、分類を 1 回で完了します |
| 種類別の対応 | ログの種類ごとに専用のパーサーを使用します |
注意事項
- Binlog にはクライアント IP が記録されません:server_id と thread_id のみが記録されるため、操作者の確認には general_log と組み合わせる必要があります
- 機密情報のマスキング:レポートでパスワードやキーを公開しないように注意してください
- 複数のログソースを組み合わせる:完全に再現するには、binlog + アプリケーションログ + 監査ログが必要です
コメント
Markdown 対応