网络方向处理器编辑

根据源 IP 地址、目标 IP 地址和内部网络列表计算网络方向。

网络方向处理器默认从 Elastic 通用模式 (ECS) 字段读取 IP 地址。如果使用 ECS,则只需指定 internal_networks 选项。

表 32. 网络方向选项

名称 必填 默认值 说明

source_ip

source.ip

包含源 IP 地址的字段。

destination_ip

destination.ip

包含目标 IP 地址的字段。

target_field

network.direction

网络方向的输出字段。

internal_networks

是 *

内部网络列表。支持 CIDR 表示法的 IPv4 和 IPv6 地址和范围。还支持下面列出的命名范围。可以使用 模板片段 构造这些范围。* 必须仅指定 internal_networksinternal_networks_field 之一。

internal_networks_field

给定文档上的一个字段,用于从中读取 internal_networks 配置。

ignore_missing

true

如果为 true 并且缺少任何必填字段,则处理器将静默退出,而不修改文档。

description

-

处理器的说明。用于描述处理器的用途或其配置。

if

-

有条件地执行处理器。请参阅 有条件地运行处理器

ignore_failure

false

忽略处理器的故障。请参阅 处理管道故障

on_failure

-

处理处理器的故障。请参阅 处理管道故障

tag

-

处理器的标识符。用于调试和指标。

必须指定 internal_networksinternal_networks_field 之一。如果指定了 internal_networks_field,则它遵循 ignore_missing 指定的行为。

支持的命名网络范围编辑

internal_networks 选项支持的命名范围为

  • loopback - 匹配 127.0.0.0/8::1/128 范围内的回环地址。
  • unicastglobal_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 地址“::”)。
示例编辑

以下示例说明了网络方向处理器的用法

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
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"
          }
        }
      }
    }
  ]
}