ルーティングプロセッサ
reroute
プロセッサは、ドキュメントを別のターゲットインデックスまたはデータストリームにルーティングすることを可能にします。主に2つのモードがあります:
destination
オプションを設定すると、ターゲットが明示的に指定され、dataset
および namespace
オプションは設定できません。
destination
オプションが設定されていない場合、このプロセッサはデータストリームモードになります。このモードでは、reroute
プロセッサは データストリーム命名規則 に従うデータストリームでのみ使用できます。非準拠の名前を持つデータストリームでこのプロセッサを使用しようとすると、例外が発生します。
データストリームの名前は、<type>-<dataset>-<namespace>
の3つの部分で構成されています。詳細については、データストリーム命名規則 のドキュメントを参照してください。
このプロセッサは、静的値またはドキュメントからのフィールド参照の両方を使用して、新しいターゲットの dataset
および namespace
コンポーネントを決定できます。詳細については、表38、「ルーティングオプション」 を参照してください。
reroute
プロセッサを使用してデータストリームの type
を変更することはできません。
reroute
プロセッサが実行された後、現在のパイプラインの他のすべてのプロセッサはスキップされ、最終パイプラインも含まれます。現在のパイプラインが パイプライン のコンテキストで実行されている場合、呼び出し元のパイプラインもスキップされます。これは、パイプライン内で最大1つの reroute
プロセッサが実行されることを意味し、if、else-if、else-if、… 条件に似た相互排他的なルーティング条件を定義できます。
ルーティングプロセッサは、data_stream.<type|dataset|namespace>
フィールドが新しいターゲットに従って設定されることを保証します。ドキュメントに event.dataset
値が含まれている場合、それは data_stream.dataset
と同じ値に更新されます。
クライアントは最終ターゲットへの権限を持っている必要があることに注意してください。そうでない場合、ドキュメントは次のようなセキュリティ例外で拒否されます:
Js
{"type":"security_exception","reason":"action [indices:admin/auto_create] is unauthorized for API key id [8-dt9H8BqGblnY2uSI--] of user [elastic/fleet-server] on indices [logs-foo-default], this action is granted by the index privileges [auto_configure,create_index,manage,all]"}
名前 | 必須 | デフォルト | 説明 |
---|---|---|---|
destination |
いいえ | - | ターゲットの静的値。dataset または namespace オプションが設定されている場合は設定できません。 |
dataset |
いいえ | {{data_stream.dataset}} |
データストリーム名のデータセット部分のフィールド参照または静的値。インデックス名 の基準に加えて、- を含むことはできず、100文字を超えてはなりません。例の値は nginx.access と nginx.error です。 |
フィールド参照は、{{double}}
または {{{triple}}}
中括弧で示されるマスタッシュのような構文をサポートします。フィールド参照を解決する際、プロセッサは無効な文字を _
に置き換えます。すべてのフィールド参照が null
、欠落、または非文字列値に解決される場合、インデックス名の <dataset>
部分をフォールバックとして使用します。 |
| namespace
| いいえ | {{data_stream.namespace}}
| データストリーム名のネームスペース部分のフィールド参照または静的値。インデックス名 の基準に従って許可される文字を参照してください。100文字を超えてはなりません。
フィールド参照は、{{double}}
または {{{triple}}}
中括弧で示されるマスタッシュのような構文をサポートします。フィールド参照を解決する際、プロセッサは無効な文字を _
に置き換えます。すべてのフィールド参照が null
、欠落、または非文字列値に解決される場合、インデックス名の <namespace>
部分をフォールバックとして使用します。 |
| description
| いいえ | - | プロセッサの説明。プロセッサの目的や設定を説明するのに役立ちます。 |
| if
| いいえ | - | プロセッサを条件付きで実行します。条件付きでプロセッサを実行する を参照してください。 |
| ignore_failure
| いいえ | false
| プロセッサの失敗を無視します。パイプラインの失敗を処理する を参照してください。 |
| on_failure
| いいえ | - | プロセッサの失敗を処理します。パイプラインの失敗を処理する を参照してください。 |
| tag
| いいえ | - | プロセッサの識別子。デバッグやメトリクスに役立ちます。 |
if
オプションは、ドキュメントが新しいターゲットにルーティングされる条件を定義するために使用できます。
Js
{
"reroute": {
"tag": "nginx",
"if" : "ctx?.log?.file?.path?.contains('nginx')",
"dataset": "nginx"
}
}
データセットおよびネームスペースオプションは、単一の値またはフォールバックとして使用される値のリストを含むことができます。フィールド参照が null
に評価され、ドキュメントに存在しない場合、次の値またはフィールド参照が使用されます。フィールド参照が非 String
値に評価される場合、プロセッサは失敗します。
次の例では、プロセッサは最初に service.name
フィールドの値を解決して dataset
の値を決定しようとします。そのフィールドが null
に解決されるか、欠落しているか、非文字列値である場合、リストの次の要素を試みます。この場合、これは静的値 "generic
です。namespace
オプションは、単一の静的値で構成されています。
Js
{
"reroute": {
"dataset": [
"{{service.name}}",
"generic"
],
"namespace": "default"
}
}