MetricBeat 为 Elastic 公司提供的一个用于 Metric 数据采集的工具。其预设了许多 metric 数据源,可以导入 Elasticsearch 进行展示分析。蚂蚁云搜也提供了对 MetricBeat 的支持。
接入方法
接入方法与 Filebeat 类似,主要步骤如下:
创建表
说明:表名支持自定义,本文以 metricbeat_log
为例。
- 导出 Metricbeat 模板。
- MacOS 系统,运行以下命令:
./metricbeat export template > metricbeat.template.json
- 其他环境,参见 导出 Metricbeat 模板。
- 打开导出的
metricbeat.template.json
文件,增加"settings.keep_days":7
配置。
- 通过 API 创建表,以 Shell 脚本为例,运行以下命令:
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
表。
修改配置文件
- 关闭模板
setup.template.enabled: false
。 - 填写 Elasticsearch 配置:
- hosts:即控制台上的 API 去掉 http(https) 前缀
- protocol:即控制台中 API 的前缀(http 或 https)
- username:等同于控制台上的用户名
- password:等同于控制台上的密码
- index:即刚刚创建的表名,本文为
metricbeat_log
。
- (可选)配置 Kibana 图表:
- host:即控制台域名地址,必须加上 80 端口号,不然默认会添加 5601 端口,造成错误。
- protocol:即控制台的 scheme(http 或 https)
- path:即
/kibana
- username:等同于控制台上的用户名
- password:等同于控制台上的密码
- setup.dashboards.index:即刚刚创建的表名,本文为
metricbeat_log
。
完整示例如下:
# 关闭模板
setup.template.enabled: false
# 设置 elasticsearch 输出地址
output.elasticsearch:
# 控制台上的 api 地址去掉 http(https) 前缀
hosts: ["api.search.alipay.com"]
# 控制台上的 api 的 http(https) 前缀
protocol: "https"
# 控制台上的 用户名
username: "example"
# 控制台上的 密码
password: "example_password"
# 上文创建的 index
index: "metricbeat_log"
# 可选,配置 kibana 地址
setup.kibana:
# 控制台域名地址,一定要加上80端口号,不然默认会添加5601端口,造成错误
host: "zsearch.antcloud.et15.alipay.net:80"
# 控制台的scheme (http或https)
protocol: "http"
# 固定参数
path: /kibana
# 控制台上的 用户名
username: "example"
# 控制台上的 密码
password: "example_password"
# 可选,配置图表
# 如果为 true,则每次启动均会重新写入 dashboard(会造成自行修改部分被覆盖),如果为 false ,则需 `./metricbeat setup --dashboards` 手动导入
setup.dashboards.enabled: true
# 如需要用 dashboard 图表一定要配置此选项,不然所有图表均找不到缩影,此处配置为上文创建的 index
setup.dashboards.index: "metricbeat_log"
注意事项
- MetricBeat 提供了许多现成的 module,使用
./metricbeat modules enable
启动,然后修改 module 配置即可开始使用。 - Module 列表,可参见 官方文档。
使用示例
下面以在 Mac 系统上收集 Docker 数据为例,简单介绍如何接入使用 MetricBeat。
操作步骤如下:
- 按照上文接入方法,创建修改
metricbeat_log
表,导入完成 dashboard。 - 运行以下命令,启动 docker 的 module
./metricbeat modules enable docker
- 编辑
/modules.d/docker.yml
配置文件。 - 展开监控指标
metricsets
。 - 修改 hosts 为自己的 docker.sock。如果是标准 Docker for Mac 则无需修改,用默认地址即可。
- 运行以下命令启动 MetricBeat 服务:
./metricbeat -e
- 稍等 15s 后,即可在 Kibana > Dashboard > [Metricbeat Docker] Overview 中查看当前数据。