mcpField
L
log-error-digest

log-error-digest

github.com/zebbernクラウド・DevOps4.7k40 回インストール1 日前に更新
リポジトリ

log-error-digest について

log-error-digestは、ログファイルを分析するコマンドラインスキルです。類似エラーの分類、頻度集計、時間分布のレポートにより、アプリケーションやNginxのログ調査を支援します。

主な機能

  1. 01エラーメッセージの正規化と分類
  2. 02種類別の頻度・重大度集計
  3. 03時間別・日付別の分布表示
  4. 04JSON、syslog、Nginx形式の自動判定
  5. 05レベル・期間での絞り込みとJSON出力

活用シーン

  1. 01ログ内の反復するエラー原因の特定
  2. 02エラーが増える時間帯の把握
  3. 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、数値など)を正規化して類似するエラーメッセージをグループ化し、根本原因を特定します
  • 頻度統計:エラーの種類ごとに発生回数を集計し、重大度順に並べます
  • 時間分布:時間別および日付別のエラー分布を表示し、エラーが最も多い時間帯の特定に役立ちます

対応するログ形式

形式説明自動検出
JSON1 行に 1 つの JSON オブジェクトがあり、timestamp/level/message フィールドを含みます{ で始まる
syslogRFC 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/nginxauto
--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 レポートをエクスポートできます。

コメント