第12章 JSON ロギングの有効化
ログ転送 API を設定して、構造化されたオブジェクトに対して JSON 文字列を解析できます。
12.1. JSON ログの解析
JSON ログなどのログは、通常 message
フィールド内の文字列として表されます。これにより、JSON ドキュメント内の特定のフィールドをクエリーすることが困難になります。OpenShift Logging のログ転送 API を使用すると、JSON ログを構造化オブジェクトに解析し、それらを OpenShift Logging が管理する Elasticsearch またはログ転送 API でサポートされる他のサードパーティーシステムに転送できます。
以下の構造化された JSON ログエントリーがあると想定して、これがどのように機能するか説明します。
構造化された JSON ログエントリーの例
{"level":"info","name":"fred","home":"bedrock"}
通常、ClusterLogForwarder
カスタムリソース (CR) は、そのログエントリーを message
フィールドに転送します。message
フィールドには、以下の例のように JSON ログエントリーと同等の JSON 引用符で囲まれた文字列が含まれます。
message
フィールドの例
{"message":"{\"level\":\"info\",\"name\":\"fred\",\"home\":\"bedrock\"", "more fields..."}
JSON ログの解析を有効にするには、以下の例のように、parse: json
を ClusterLogForwarder
CR のパイプラインに追加します。
parse: json
を示すスニペット例
pipelines: - inputRefs: [ application ] outputRefs: myFluentd parse: json
parse: json
を使用して JSON ログの解析を有効にすると、以下の例のように CR は 構造化
フィールドに JSON-structured ログエントリーをコピーします。元の message
フィールドは変更されません。
構造化された JSON ログエントリーを含む 構造化された
出力例
{"structured": { "level": "info", "name": "fred", "home": "bedrock" }, "more fields..."}
ログエントリーに有効な構造化された JSON が含まれていない場合に、構造化された
フィールドはなくなります。
特定のロギングプラットフォームの JSON ログの解析を有効にするには、ログのサードパーティーシステムへの転送 を参照してください。