LogStash - 本地 DNS 查找
LogStash - Local DNS lookup
我是 LogStash 的新手,我无法解决一些简单的问题。
我需要添加从本地 DNS 服务器获取的 DNS 信息来管理内部 IP 的锁定。
我的本地 DNS 服务器有一个 IP,例如 10.1.0.20
我需要阅读 source.ip 和 destination.ip 并使用 DNS 数据添加新信息。
官方文档说:
filter {
dns {
reverse => [ "source_host", "field_with_address" ]
resolve => [ "field_with_fqdn" ]
action => "replace"
}
}
但不清楚我必须将数据放在哪里。
我想要这样的输出:
"source" =>
{
...
"address" : "192.168.1.29",
"dns_info" : "Desktop123"
...
}
...
不幸的是,DNS 过滤器会尝试 就地 解析地址或名称,而不是添加字段...因此您需要跳过这些步骤。假设您有一个带有 source.ip
字段的文档...
filter {
mutate {
copy => { "[source][ip]" => "[source][fqdn]" }
}
dns {
reverse => "[source][fqdn]"
action => "replace"
add_field => { "[@metadata][dns_source]" => "success" }
}
if ![@metadata][dns_source] {
mutate { remove_field => "[source][fqdn]" }
}
}
这很丑陋,但我不知道有什么更好的方法,因为 DNS 过滤器插件没有 target
设置。
我认为这回答了你问题的关键;官方文档中详细介绍了其他内容,例如指定名称服务器或设置缓存时间。
我是 LogStash 的新手,我无法解决一些简单的问题。
我需要添加从本地 DNS 服务器获取的 DNS 信息来管理内部 IP 的锁定。
我的本地 DNS 服务器有一个 IP,例如 10.1.0.20
我需要阅读 source.ip 和 destination.ip 并使用 DNS 数据添加新信息。
官方文档说:
filter {
dns {
reverse => [ "source_host", "field_with_address" ]
resolve => [ "field_with_fqdn" ]
action => "replace"
}
}
但不清楚我必须将数据放在哪里。
我想要这样的输出:
"source" =>
{
...
"address" : "192.168.1.29",
"dns_info" : "Desktop123"
...
}
...
不幸的是,DNS 过滤器会尝试 就地 解析地址或名称,而不是添加字段...因此您需要跳过这些步骤。假设您有一个带有 source.ip
字段的文档...
filter {
mutate {
copy => { "[source][ip]" => "[source][fqdn]" }
}
dns {
reverse => "[source][fqdn]"
action => "replace"
add_field => { "[@metadata][dns_source]" => "success" }
}
if ![@metadata][dns_source] {
mutate { remove_field => "[source][fqdn]" }
}
}
这很丑陋,但我不知道有什么更好的方法,因为 DNS 过滤器插件没有 target
设置。
我认为这回答了你问题的关键;官方文档中详细介绍了其他内容,例如指定名称服务器或设置缓存时间。