ログファイル解析器

生のログファイルはタイムスタンプ、レベル情報、および自由テキストメッセージが連続して記録されたデータです。Nginxのアクセスログ、Apacheのエラーログ、syslogダンプファイル、またはLaravelチャネルファイルを貼り付けると、パーサーがそれらを構造化された行に分割します。ISO日付範囲、重大度(DEBUGからEMERGENCYまで)、クライアントIP、またはメッセージに対する正規表現に基づいてフィルターを適用でき、インシデント期間中に実際に何が発生したかを明確に確認できるようにヒット項目が強調表示されます。

ログファイルを解析する方法

  1. 1

    ログ内容を貼り付けます

    生のログテキストを貼り付けます。一般的な形式(combined、common、syslog、JSON-lines)は自動的に検出されます。

  2. 2

    日付フィルターを設定します

    開始/終了タイムスタンプを使用してインシデントウィンドウを拡大します。

  3. 3

    レベルまたはIPでフィルターする

    重大度レベルにチェックを入れるか、IPアドレスを入力するか、メッセージに一致する正規表現パターンを入力してください。

  4. 4

    テーブルを読みます

    各行にはタイムスタンプ、レベル、ソースおよびメッセージが表示され、対応するセグメントが強調されています。

パーサーが認識する書式

フォーマット サンプル 情報源
Nginxコンバインド 1.2.3.4 - - [18/Apr/2026:10:00:00 +0000] "GET / HTTP/1.1" 200 1234 ウェブアクセスログ
Apache Common 上記と同様で、RefererおよびUser-Agentを除く クラシックなLAMPスタック
Syslog RFC 5424 <34>1 2026-04-18T10:00:00Z host app - ID47 - msg Linuxシステムデーモン
Laravel デイリー [2026-04-18 10:00:00] production.ERROR: message Laravelログチャネル
JSON行 {"ts":"...","level":"ERROR","msg":"..."} 構造化ロガー、Loki、ELK

標準ログレベル

最も音量が大きいものから最も静かなものまでリスト化されています。ほとんどのアプリはsyslog/PSR-3の順序に従っています:

  1. EMERGENCY – システムは使用できません。
  2. ALERT – 緊急対応が必要です。
  3. CRITICAL、クリティカルな状態(例:データベースがダウンしている)。
  4. ERROR、調査が必要なランタイムエラーです。
  5. WARNING、例外的な状態であり、エラーではありません。
  6. NOTICE、正常だが重要なイベント。
  7. INFO、一般的な運用に関するメッセージ。
  8. DEBUG、低レベルの診断で、本番環境ではノイズになります。

フィルターのヒント

  • まず日付で絞り込みます。 ほとんどの本番ログは非常に大規模です。インシデントウィンドウに絞り込むことで、他のすべてのフィルターの処理速度が向上します。
  • メッセージには正規表現を使用します。 timeout|connection refused|5\d\dを検索すると、ほとんどのネットワーク障害を一度で把握できます。
  • 1つのIPだけを抽出します。 不審なクライアントを調査する際は、他のすべてを除外し、そのクライアントのリクエストを時系列で読み込みます。
  • クローラーを除外します。 botcrawlspiderなどのUser-Agentのサブストリングは、分析目的の調査で生じるほとんどのノイズを除去します。

パフォーマンスに関する注記

  • パーサーはクライアント側で実行されるため、各行はユーザーの端末に留まります。これは、100MB以上の非常に大容量のファイルがブラウザの動作を遅くする可能性があることも意味します。そのため、まずsplit -lでファイルを分割するか、サーバー側のツールでストリーミング処理することをおすすめします。

よくある質問

いいえ、解析およびフィルタリングはブラウザ内で行われます。貼り付けるログはデバイスから一度も外部に送信されません。これはIPアドレス、トークン、または個人識別情報(PII)を含むファイルの場合に特に重要です。

はい、空白またはat ...で始まる行は前のログエントリに接続されるため、完全な例外スタックも1行に保持されます。

メッセージ列に対してregexフィルターを使用します。構造化されたJSONログでは、すべてのキーがメッセージ内のプレーンテキストとして検索可能です。

直接ではありません。まずgunzipまたはファイル処理ツールを使用してデータを解凍し、生のテキストを貼り付けてください。パーサーは圧縮されていないログ行を期待しています。

厳密な制限はありませんが、10MBを超える場合はフィルタリングの速度が低下する可能性があります。大規模なアーカイブの場合は、まずサーバーでgrepを実行し、フィルター処理後の出力をここに貼り付けてください。

関連ツール

このツールは他の言語でも利用できます