log-error-digest について
log-error-digestは、ログファイルを分析するコマンドラインスキルです。類似エラーの分類、頻度集計、時間分布のレポートにより、アプリケーションやNginxのログ調査を支援します。
主な機能
- 01エラーメッセージの正規化と分類
- 02種類別の頻度・重大度集計
- 03時間別・日付別の分布表示
- 04JSON、syslog、Nginx形式の自動判定
- 05レベル・期間での絞り込みとJSON出力
活用シーン
- 01ログ内の反復するエラー原因の特定
- 02エラーが増える時間帯の把握
- 03ERRORログの抽出とJSONレポート作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zebbern/ claude-code-guide --skill log-error-digestインストール後、Claude Code で/log-error-digestを入力して読み込まれたか確認します。
同梱ファイルLICENSEscripts/analyze_logs.py
詳細
ログエラーの要約
ログファイルを自動分析し、エラーのクラスタリング、頻度統計、時間分布レポートを作成します。
特長
- エラーのクラスタリング:動的な部分(IP、UUID、数値など)を正規化して類似するエラーメッセージをグループ化し、根本原因を特定します
- 頻度統計:エラーの種類ごとに発生回数を集計し、重大度順に並べます
- 時間分布:時間別および日付別のエラー分布を表示し、エラーが最も多い時間帯の特定に役立ちます
対応するログ形式
| 形式 | 説明 | 自動検出 |
|---|---|---|
| JSON | 1 行に 1 つの JSON オブジェクトがあり、timestamp/level/message フィールドを含みます | { で始まる |
| syslog | RFC 3164 形式。例:Jan 1 12:00:00 host proc[pid]: msg | 月名で始まる |
| Nginx | アクセスログまたはエラーログの形式 | IP または日付/パスのパターンで始まる |
使用方法
python scripts/analyze_logs.py <log_file_path> [options]
パラメーター
| パラメーター | 説明 | デフォルト |
|---|---|---|
log_file | ログファイルへのパス(必須) | - |
--format | ログ形式:auto/json/syslog/nginx | auto |
--top | 上位 N 件のエラークラスタを表示します | 20 |
--output | 結果を JSON ファイルにエクスポートします | ターミナル出力のみ |
--level | ログレベルでフィルターします(例:ERROR、WARN) | すべてのレベル |
--since | この時刻以降のログのみを分析します(ISO 形式) | 制限なし |
--until | この時刻より前のログのみを分析します(ISO 形式) | 制限なし |
例
# Auto-detect format and analyze the entire log file
python scripts/analyze_logs.py /var/log/app.log
# Specify Nginx format, show only Top 10 errors
python scripts/analyze_logs.py /var/log/nginx/error.log --format nginx --top 10
# Filter ERROR level only, export JSON report
python scripts/analyze_logs.py app.log --level ERROR --output report.json
# Analyze logs within a specific time range
python scripts/analyze_logs.py app.log --since 2024-01-01T00:00:00 --until 2024-01-02T00:00:00
出力
ターミナル出力
=======================================================
Log Analysis Report
=======================================================
📊 Overview
Detected format: json
Total lines: 15,234
Parsed: 15,100 (parse failures: 134)
Matched entries: 12,800
Errors: 2,341
Time range: 2024-01-01 00:03:12 ~ 2024-01-01 23:58:45
🔴 Top Error Clusters (47 total)
#1 [×523 ] Connection refused to database at 10.0.1.5:5432
First seen: 2024-01-01T00:15:30 Last seen: 2024-01-01T23:45:12
#2 [×312 ] Timeout waiting for response from user-service after 30000ms
First seen: 2024-01-01T02:10:00 Last seen: 2024-01-01T22:30:45
#3 [×198 ] File not found: /data/uploads/img_99421.png
First seen: 2024-01-01T08:00:00 Last seen: 2024-01-01T20:15:33
...
⏰ Time Distribution (by hour)
00:00 █████░░░░░░░░░░░░░░░ 42
01:00 ██░░░░░░░░░░░░░░░░░░ 18
...
14:00 ████████████████████ 523
...
📅 Time Distribution (by date)
2024-01-01 ████████████████████ 2,341
JSON 出力
--output パラメーターを使用すると、後続の処理や監視システムとの連携に使える、構造化された JSON レポートをエクスポートできます。
コメント
Markdown 対応