8.3. JSON ログの Elasticsearch ログストアへの転送
Elasticsearch ログストアの場合、JSON ログエントリーが異なるスキーマに従う場合、各 JSON スキーマを 1 つの出力定義にグループ化するように ClusterLogForwarder
カスタムリソース (CR) を設定します。これにより、Elasticsearch はスキーマごとに個別のインデックスを使用します。
異なるスキーマを同じインデックスに転送するとタイプの競合やカーディナリティーの問題を引き起こす可能性があるため、データを Elasticsearch ストアに転送する前にこの設定を実行する必要があります。
インデックスが多すぎることが原因のパフォーマンスの問題を回避するには、共通のスキーマに標準化して使用できるスキーマの数を保持することを検討してください。
手順
以下のスニペットを
ClusterLogForwarder
CR YAML ファイルに追加します。outputDefaults: - elasticsearch: structuredTypeKey: <log record field> structuredTypeName: <name> pipelines: - inputRefs: - application outputRefs: default parse: json
-
オプション: 上には、Elasticsearch の JSON ログデータの設定 で説明されているように、
structuredTypeKey
を使用してログレコードフィールドのいずれかを指定します。それ以外の場合は、この行を削除します。 オプション: Elasticsearch の JSON ログデータの設定 で前述しているように
structuredTypeName
を使用して<name>
を指定します。それ以外の場合は、この行を削除します。重要JSON ログを解析するには、
structuredTypeKey
またはstructuredTypeName
か、structuredTypeKey
とstructuredTypeName
の両方を設定する必要があります。-
inputRefs
の場合は、application
、infrastructure
またはaudit
などのパイプラインを使用して、転送する必要のあるログタイプを指定します。 -
parse: json
要素をパイプラインに追加します。 CR オブジェクトを作成します。
$ oc create -f <file-name>.yaml
Red Hat OpenShift Logging Operator は Fluentd Pod を再デプロイします。ただし、再デプロイが完了しない場合は、Fluentd Pod を削除して、強制的に再デプロイされるようにします。
$ oc delete pod --selector logging-infra=fluentd
関連情報