MetricBeat 为 Elastic 公司提供的一个用于 Metric 数据采集的工具。其预设了许多 metric 数据源,可以导入 Elasticsearch 进行展示分析。蚂蚁云搜也提供了对 MetricBeat 的支持。

接入方法

接入方法与 Filebeat 类似,主要步骤如下:

  1. 创建表
  2. 修改配置

创建表

说明:表名支持自定义,本文以 metricbeat_log 为例。

  1. 导出 Metricbeat 模板。
  • MacOS 系统,运行以下命令:
  1. ./metricbeat export template > metricbeat.template.json
  • 其他环境,参见 导出 Metricbeat 模板。
  1. 打开导出的 metricbeat.template.json 文件,增加 "settings.keep_days":7 配置。

MetricBeat - 图1

  1. 通过 API 创建表,以 Shell 脚本为例,运行以下命令:
  1. curl -XPUT -u $username:$password -H "Content-Type: application/json" "$api/metricbeat_log" -d @metricbeat.template.json

说明

  • 其中 username、password 与 api,可以在 ZSearch 控制台应用详情页获得。
  • 返回 "acknowledged":true 即为成功。
  • 运行成功后,即可在 应用详情页 > 索引列表 中看到 metricbeat_log 表。MetricBeat - 图2

修改配置文件

  1. 关闭模板 setup.template.enabled: false
  2. 填写 Elasticsearch 配置:
  • hosts:即控制台上的 API 去掉 http(https) 前缀
  • protocol:即控制台中 API 的前缀(http 或 https)
  • username:等同于控制台上的用户名
  • password:等同于控制台上的密码
  • index:即刚刚创建的表名,本文为 metricbeat_log
  1. (可选)配置 Kibana 图表:
  • host:即控制台域名地址,必须加上 80 端口号,不然默认会添加 5601 端口,造成错误。
  • protocol:即控制台的 scheme(http 或 https)
  • path:即 /kibana
  • username:等同于控制台上的用户名
  • password:等同于控制台上的密码
  • setup.dashboards.index:即刚刚创建的表名,本文为 metricbeat_log

完整示例如下:

  1. # 关闭模板
  2. setup.template.enabled: false
  3. # 设置 elasticsearch 输出地址
  4. output.elasticsearch:
  5. # 控制台上的 api 地址去掉 http(https) 前缀
  6. hosts: ["api.search.alipay.com"]
  7. # 控制台上的 api 的 http(https) 前缀
  8. protocol: "https"
  9. # 控制台上的 用户名
  10. username: "example"
  11. # 控制台上的 密码
  12. password: "example_password"
  13. # 上文创建的 index
  14. index: "metricbeat_log"
  15. # 可选,配置 kibana 地址
  16. setup.kibana:
  17. # 控制台域名地址,一定要加上80端口号,不然默认会添加5601端口,造成错误
  18. host: "zsearch.antcloud.et15.alipay.net:80"
  19. # 控制台的scheme (http或https)
  20. protocol: "http"
  21. # 固定参数
  22. path: /kibana
  23. # 控制台上的 用户名
  24. username: "example"
  25. # 控制台上的 密码
  26. password: "example_password"
  27. # 可选,配置图表
  28. # 如果为 true,则每次启动均会重新写入 dashboard(会造成自行修改部分被覆盖),如果为 false ,则需 `./metricbeat setup --dashboards` 手动导入
  29. setup.dashboards.enabled: true
  30. # 如需要用 dashboard 图表一定要配置此选项,不然所有图表均找不到缩影,此处配置为上文创建的 index
  31. setup.dashboards.index: "metricbeat_log"

注意事项

  • MetricBeat 提供了许多现成的 module,使用 ./metricbeat modules enable 启动,然后修改 module 配置即可开始使用。
  • Module 列表,可参见 官方文档

使用示例

下面以在 Mac 系统上收集 Docker 数据为例,简单介绍如何接入使用 MetricBeat。

操作步骤如下:

  1. 按照上文接入方法,创建修改 metricbeat_log 表,导入完成 dashboard。
  2. 运行以下命令,启动 docker 的 module
./metricbeat modules enable docker
  1. 编辑 /modules.d/docker.yml 配置文件。
  2. 展开监控指标 metricsets
  3. 修改 hosts 为自己的 docker.sock。如果是标准 Docker for Mac 则无需修改,用默认地址即可。MetricBeat - 图3
  4. 运行以下命令启动 MetricBeat 服务:
./metricbeat -e
  1. 稍等 15s 后,即可在 Kibana > Dashboard > [Metricbeat Docker] Overview 中查看当前数据。MetricBeat - 图4