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 的,你需要进行单独的安装。
相关文章推荐
- HttpClient 教程1 (基础介绍)
- Apache HTTP Server 与 Tomcat 的三种连接方式介绍
- 写给后端程序员的HTTP缓存原理介绍
- HTTP 处理程序介绍
- meta标签中的http-equiv属性使用介绍
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
- DOM与JQuery选择器、过滤器的介绍
- Apache HTTP Server 与 Tomcat 的三种连接方式介绍
- HTTP 应答报文介绍
- HTTP调试工具:Fiddler的使用方法介绍
- Apache HTTP Server 与 Tomcat 的三种连接方式介绍
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
- Servlet过滤器介绍之原理分析
- Logstash学习系列之插件介绍
- RequestMapping_HiddenHttpMethodFilter 过滤器
- HTTP协议版本介绍以及使用Wireshark工具针对HTTP进行抓包分析详解
- 微服务框架Finagle介绍 Part2: 在Finagle中开发基于Http协议的应用
- Apache HTTP Server 与 Tomcat 的三种连接方式介绍
- HTTP BASIC认证,抢先认证介绍和 HttpClient 4.1.1 实例
- Logstash 介绍