您的位置:首页 > 理论基础 > 计算机网络

Logstash:HTTP 过滤器介绍

2020-08-10 12:46 351 查看

在我们使用 Logstash 的时候,我们有时有没有想到去使用 REST 调用请求另外一个微服务呢?这样我们可以得到更多的数据了。在 Elastic 的官方发布中,我们可以在地址 https://www.elastic.co/guide/en/logstash/current/filter-plugins.html 找到目前所有的过滤器。在这里面有一个叫做 http 的过滤器

在今天的文章中,我将使用一个例子来展示如何使用这个 http 的过滤器。

 

我将使用如下的 REST API 接口来做展示:

[code]http://api.map.baidu.com/telematics/v3/weather?location=beijing&output=json&ak=DdzwVcsGMoYpeg5xQlAFrXQt

如上所示,它是一个百度天气的接口。在上面我们把 beijing 换成其他的城市,我们就可以得到那个城市的天气情况。

根据以上的接口,我们创建如下的 Logstash 的配置文件:

http.conf

[code]input {
generator {
message => "beijing"
count => 1
}
}

filter {
http {
body_format => "json"
follow_redirects => false
url => "http://api.map.baidu.com/telematics/v3/weather?location=%{[message]}&output=json&ak=DdzwVcsGMoYpeg5xQlAFrXQt"
verb => "GET"
headers => [ "Content-Type", "application/json" ]
target_body => "weather"
}
}

output {
stdout {
codec => rubydebug
}
}

在上面,我们使用 generator 来生产一个事件。我们使用 http 过滤器来发送请求。

使用 Logstash 来运行上面的配置文件:

[code] ./bin/logstash -f http.conf

 显示的结果是:

我们接下来可以使用任何其它的 filter 来对这个数据做更进一步的加工。这里就不再详述了。

另外,在社区里,我也看到了一个类似功能的插件 https://github.com/lucashenning/logstash-filter-rest。它也可以完成类似的工作。如果你想试一下的话,请按照上面的步骤进行操作,由于这个插件不是来自 Elastic 的,你需要进行单独的安装。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: