ネットワーク方向プロセッサ
ソースIPアドレス、宛先IPアドレス、および内部ネットワークのリストに基づいてネットワークの方向を計算します。
ネットワーク方向プロセッサは、デフォルトでElastic Common Schema (ECS)フィールドからIPアドレスを読み取ります。ECSを使用する場合は、internal_networks
オプションのみを指定する必要があります。
名前 | 必須 | デフォルト | 説明 |
---|---|---|---|
source_ip |
いいえ | source.ip |
ソースIPアドレスを含むフィールド。 |
destination_ip |
いいえ | destination.ip |
宛先IPアドレスを含むフィールド。 |
target_field |
いいえ | network.direction |
ネットワーク方向の出力フィールド。 |
internal_networks |
はい * | 内部ネットワークのリスト。IPv4およびIPv6アドレスとCIDR表記の範囲をサポートします。また、以下にリストされている名前付き範囲もサポートします。これらはテンプレートスニペットを使用して構築できます。* internal_networks またはinternal_networks_field のいずれか1つのみを指定する必要があります。 |
|
internal_networks_field |
いいえ | 指定されたドキュメントのinternal_networks 設定を読み取るためのフィールド。 |
|
ignore_missing |
いいえ | true |
true および必要なフィールドが欠落している場合、 |
プロセッサは静かに終了し、ドキュメントを変更しません。 |
| description
| いいえ | - | プロセッサの説明。プロセッサの目的や設定を説明するのに役立ちます。 |
| if
| いいえ | - | 条件付きでプロセッサを実行します。条件付きでプロセッサを実行するを参照してください。 |
| ignore_failure
| いいえ | false
| プロセッサの失敗を無視します。パイプラインの失敗を処理するを参照してください。 |
| on_failure
| いいえ | - | プロセッサの失敗を処理します。パイプラインの失敗を処理するを参照してください。 |
| tag
| いいえ | - | プロセッサの識別子。デバッグやメトリクスに役立ちます。 |
## サポートされている名前付きネットワーク範囲
`````internal_networks`````オプションでサポートされている名前付き範囲は次のとおりです:
- `````loopback````` - `````127.0.0.0/8`````または`````::1/128`````の範囲内のループバックアドレスに一致します。
- `````unicast`````または`````global_unicast````` - RFC 1122、RFC 4632、およびRFC 4291で定義されたグローバルユニキャストアドレスに一致します。ただし、IPv4ブロードキャストアドレス(`````255.255.255.255`````)は除きます。これにはプライベートアドレス範囲が含まれます。
- `````multicast````` - マルチキャストアドレスに一致します。
- `````interface_local_multicast````` - IPv6インターフェースローカルマルチキャストアドレスに一致します。
- `````link_local_unicast````` - リンクローカルユニキャストアドレスに一致します。
- `````link_local_multicast````` - リンクローカルマルチキャストアドレスに一致します。
- `````private````` - RFC 1918 (IPv4)およびRFC 4193 (IPv6)で定義されたプライベートアドレス範囲に一致します。
- `````public````` - ループバック、未指定、IPv4ブロードキャスト、リンクローカルユニキャスト、リンクローカルマルチキャスト、インターフェースローカルマルチキャスト、またはプライベートでないアドレスに一致します。
- `````unspecified````` - 未指定のアドレスに一致します(IPv4アドレス"0.0.0.0"またはIPv6アドレス"::")。
## 例
次の例は、ネットワーク方向プロセッサの使用を示しています:
#### Python
``````python
resp = client.ingest.simulate(
pipeline={
"processors": [
{
"network_direction": {
"internal_networks": [
"private"
]
}
}
]
},
docs=[
{
"_source": {
"source": {
"ip": "128.232.110.120"
},
"destination": {
"ip": "192.168.1.1"
}
}
}
],
)
print(resp)
`
Ruby
response = client.ingest.simulate(
body: {
pipeline: {
processors: [
{
network_direction: {
internal_networks: [
'private'
]
}
}
]
},
docs: [
{
_source: {
source: {
ip: '128.232.110.120'
},
destination: {
ip: '192.168.1.1'
}
}
}
]
}
)
puts response
Js
const response = await client.ingest.simulate({
pipeline: {
processors: [
{
network_direction: {
internal_networks: ["private"],
},
},
],
},
docs: [
{
_source: {
source: {
ip: "128.232.110.120",
},
destination: {
ip: "192.168.1.1",
},
},
},
],
});
console.log(response);
コンソール
POST _ingest/pipeline/_simulate
{
"pipeline": {
"processors": [
{
"network_direction": {
"internal_networks": ["private"]
}
}
]
},
"docs": [
{
"_source": {
"source": {
"ip": "128.232.110.120"
},
"destination": {
"ip": "192.168.1.1"
}
}
}
]
}
コンソール-結果
{
"docs": [
{
"doc": {
...
"_source": {
"destination": {
"ip": "192.168.1.1"
},
"source": {
"ip": "128.232.110.120"
},
"network": {
"direction": "inbound"
}
}
}
}
]
}