JSON構造化ログの解析
Winston、Bunyan、Pino、Logrusなどのモダンなロギングライブラリで使用されるJSON形式の構造化ログエントリを自動フィールド抽出で解析します。
JSON
詳細な説明
JSON構造化ロギング
JSON構造化ログはアプリケーションロギングのモダンな標準です。自由形式のテキストの代わりに、各ログエントリが明確に定義されたフィールドを持つJSONオブジェクトになります。これによりログは機械可読、検索可能になり、ELK、Datadog、Splunkなどのログ管理システムへの取り込みが容易になります。
一般的なJSONログフィールド
異なるロギングライブラリはやや異なるフィールド名を使用しますが、パーサーは一般的なバリエーションをすべて処理します:
| 用途 | フィールド名 |
|---|---|
| タイムスタンプ | timestamp、time、ts、@timestamp、date |
| 重要度 | level、severity、loglevel、log_level |
| ソース | logger、source、service、module、component |
| メッセージ | message、msg、text、log |
ログエントリの例
Winston (Node.js):
{"level":"info","message":"Server started on port 3000","timestamp":"2024-01-15T10:30:00.000Z","service":"api-gateway"}
Pino (Node.js):
{"level":30,"time":1705312200000,"msg":"Request completed","pid":12345,"hostname":"web-01","req":{"method":"GET","url":"/api/health"},"res":{"statusCode":200},"responseTime":12}
追加フィールド
標準ログフィールドとして認識されないJSONキーは追加フィールドとして抽出され、折りたたみセクションに表示されます。リクエストID、実行時間、ユーザーID、エラースタックトレースなどのコンテキスト固有のデータをキャプチャします。
ユースケース
マイクロサービスアーキテクチャのアプリケーションログ分析、相関IDを使用した分散システム問題のデバッグ、ログエントリに埋め込まれたサービスヘルスメトリクスの監視、集中ログ管理プラットフォームへの取り込み準備。