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 处理器在摄取管道之前执行,这意味着您的处理器配置不能引用由摄取管道或 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