Logstash:通过使用 Logstash 的 DNS 查找来丰富数据

Posted 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logstash:通过使用 Logstash 的 DNS 查找来丰富数据相关的知识,希望对你有一定的参考价值。

我今天看了一篇文章 “Elasticsearch Data Enrichment with Logstash: A Few Security Examples”。它里面有介绍 Logstash 的DNS 过滤器。感觉是一个很不错的过滤器。但是使用起来不是很直接明了。你可以在 Elastic 测官方网站 DNS filter plugin 来详细查看它的使用方法。

在今天的文章中,我将以极其简单的例子来进行展示。这样让大家看得更明白一点。

首先,我们来创建一个叫做 logstash.conf 的配资文件:

logstash.conf

input {
    stdin {}
}

filter {
    mutate {
        add_field => { "domain_lookup" => "%{message}" }
    }

    dns {
        reverse => "domain_lookup"
        action => "replace"
        nameserver => {
            address => ["8.8.8.8", "8.8.4.4", "114.114.114.114", "192.168.0.1" ]
        }   
    }
}

output {   
    stdout {
        codec => rubydebug 
    }
}

在上面,我们使用 stdin 来输入。它将生成一个叫做 message 的字段。我们接着使用  mutate 过滤器来添加一个叫做 domain_lookup 的字段。它的内容是和 message 是一样的。我们最终使用 DNS filter 来对 IP 地址进行解析。在上面的 nameserver 中,我们使用了最为常见的 8.8.8.8,8.8.4.4 服务器来进行解析。

我们使用如下的方式来进行运行:

./bin/logstash -f logstash.conf

我们接着输入 IP 地址 8.8.8.8:

 我们可以看到 dns.google 代替了之前的 message 里的内容 8.8.8.8。

我们接着来输入一个叫做 202.108.22.5 的 IP 地址:

 我们可以看到它是百度的 IP 地址。

当然我们也可以输入其它的 IP 地址:

 最后,我来试试我本地的 Mac IP 地址:

 

参考:

【1】Dns filter plugin | Logstash Reference [7.14] | Elastic

以上是关于Logstash:通过使用 Logstash 的 DNS 查找来丰富数据的主要内容,如果未能解决你的问题,请参考以下文章

filebeat-2-通过kafka队列链接logstash

LogStash,使日志管理更简单

如何使用filebeat读取json文件并通过logstash发送到elasticsearch

es 无日志,logstash 报错

Logstash实践

ET005 通过 metadata 使logstash配置更简洁