DNS 反向查找

编辑

dns 处理器执行 IP 地址的反向 DNS 查找。它根据响应中包含的生存时间 (TTL) 值缓存接收到的响应。它还会缓存查找期间发生的失败。此处理器的每个实例都维护其自己的独立缓存。

该处理器使用自己的 DNS 解析器向名称服务器发送请求,而不使用操作系统的解析器。它不读取 /etc/hosts 中包含的任何值。

如果您的网络延迟较高或上游名称服务器速度较慢,则此处理器可能会显著降低管道的吞吐量。缓存有助于提高性能,但如果正在解析的地址具有较高的基数,则由于高未命中率,缓存优势会降低。

例如,如果每次 DNS 查找需要 2 毫秒,则您可以实现的最大吞吐量为每秒 500 个事件(1000 毫秒 / 2 毫秒)。如果您的缓存命中率很高,则吞吐量可能会更高。

示例

编辑

这是一个最小配置示例,用于解析两个字段中包含的 IP 地址。

  - dns:
      type: reverse
      fields:
        source.ip: source.hostname
        destination.ip: destination.hostname

此示例显示所有配置选项。

  - dns:
    type: reverse
    action: append
    transport: tls
    fields:
      server.ip: server.hostname
      client.ip: client.hostname
    success_cache:
      capacity.initial: 1000
      capacity.max: 10000
      min_ttl: 1m
    failure_cache:
      capacity.initial: 1000
      capacity.max: 10000
      ttl: 1m
    nameservers: ['192.0.2.1', '203.0.113.1']
    timeout: 500ms
    tag_on_failure: [_dns_reverse_lookup_failed]

配置设置

编辑

Elastic Agent 处理器在 ingest 管道之前执行,这意味着您的处理器配置不能引用由 ingest 管道或 Logstash 创建的字段。有关更多限制,请参阅 使用处理器有哪些限制?

名称 必需 默认值 描述

type

要执行的 DNS 查找类型。唯一支持的类型是 reverse,它查询 PTR 记录。

action

append

定义当目标字段已存在于事件中时处理器的行为。选项为 appendreplace

fields

源字段名称到目标字段名称的映射。源字段的值用于 DNS 查询,结果将写入目标字段。

success_cache.capacity.initial

1000

分配给成功缓存以容纳的初始项目数。初始化时,处理器将为该数量的项目分配内存。

success_cache.capacity.max

10000

成功缓存可以容纳的最大项目数。当达到最大容量时,将驱逐一个随机项目。

success_cache.min_ttl

1m

成功 DNS 响应的最小替代缓存 TTL 的持续时间。确保可以缓存 TTL=0 的成功反向 DNS 响应。有效的时间单位为“ns”、“us”(或“µs”)、“ms”、“s”、“m”、“h”。

failure_cache.capacity.initial

1000

分配给失败缓存以容纳的初始项目数。初始化时,处理器将为该数量的项目分配内存。

failure_cache.capacity.max

10000

失败缓存可以容纳的最大项目数。当达到最大容量时,将驱逐一个随机项目。

failure_cache.ttl

1m

缓存失败的持续时间。有效的时间单位为“ns”、“us”(或“µs”)、“ms”、“s”、“m”、“h”。

nameservers

是(在 Windows 上)

要查询的名称服务器列表。如果有多个服务器,则解析器会按照列出的顺序查询它们。如果未指定任何服务器,则它会在初始化时读取 /etc/resolv.conf 中列出的名称服务器。在 Windows 上,您必须始终提供至少一个名称服务器。

timeout

500ms

DNS 查询超时后的持续时间。这是每次 DNS 请求的超时时间,因此如果您有两个名称服务器,则总超时时间将是此值的 2 倍。有效的时间单位为“ns”、“us”(或“µs”)、“ms”、“s”、“m”、“h”。

tag_on_failure

false

当任何查找失败时添加到事件的标签列表。即使多次查找失败,标签也只会添加一次。默认情况下,失败时不会添加任何标签。

transport

udp

应使用的传输连接类型:tls (DNS over TLS) 或 udp