Beats:运用 Filebeat 来对微服务 API 进行分析

Posted Elastic 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beats:运用 Filebeat 来对微服务 API 进行分析相关的知识,希望对你有一定的参考价值。

在之前的文章 “Logstash:使用 ELK 堆栈进行 API 分析”,我展示了如何使用 Logstash 的 http_poller input plugin 来对微服务的 API 数据进行分析。如果我们只是为了对微服务的数据采集使用 Logstash,感觉有些 Logstash 有些大材小用了,比较 Logstash 的部署还是蛮耗资源的。相比较而言,我们可以使用 Filebeat 的 HTTP JSON input 来对微服务的数据进行采集。我们知道 Beats 的架构是属于一种轻量级的部署。可以直接运用于客户端,或者需要采集的服务器中。

 

创建 Filebeat 配置文件

首先,我们创建一个如下的 Filebeat 配置文件:

filebeat.yml

filebeat.inputs:
# Fetch your public IP every minute.
- type: httpjson
  config_version: 2
  interval: 5s
  request.url: http://api.openweathermap.org/data/2.5/weather?q=London,uk&APPID=7dbe7341764f682c2242e744c4f167b0&units=metric
  processors:
    - decode_json_fields:
        fields: ["message"]
        target: "json"

output.elasticsearch:
    hosts: ["localhost:9200"]

在上面,我们的配资非常简单直接。我们使用 httpjson input 来读取一个 HTTP 的 JSON 负载,并使用 decode_json_fields 来对它进行解析。在上面我们使用了一个微服务的 API 接口:http://api.openweathermap.org/data/2.5/weather?q=London,uk&APPID=7dbe7341764f682c2242e744c4f167b0&units=metric。它可以得到一个城市的天气情况。

我们把上面的配置文件置于 Filebeat 的安装根目录中,并使用如下的命令来对它进行启动:

./filebeat -e

从上面,我们可以看到 Filebeat 每5秒会发送一个请求到微服务中得到天气的数据。

我们回到 Kibana 中 进行查看:

我们可以看到被采集的数据。它们的间隔是5秒:

展开数据,我们可以看到被采集的数据。我们可以针对温度,湿度,风向等等进行数据分析。

 

以上是关于Beats:运用 Filebeat 来对微服务 API 进行分析的主要内容,如果未能解决你的问题,请参考以下文章

Beats:运用 Logstash 来加工 Metricbeat 数据

Beats:运用 Logstash 来加工 Metricbeat 数据

Beats:使用 Filebeat 中的 HTTP JSON input 来摄入网络服务数据

Beats:使用 Filebeat 中的 HTTP JSON input 来摄入网络服务数据

Filebeat服务输出形式

Elastic 技术栈之 Filebeat