metricbeat
使用 beat 监控服务性能指标是 ElasticStack 一个常见的使用场景。2.x 时代要求用户对每类常见都需要单独开发自己的 xxxbeat 工具,然后各自编译使用。于是 Elastic.co 公司最终干脆把这件事情统一成了 metricbeat。
目前 metricbeat 支持以下服务性能指标:
Apache
HAProxy
MongoDB
MySQL
Nginx
PostgreSQL
Redis
System
Zookeeper
配置示例
metricbeat.modules:
- module: system
metricsets:
- cpu
- filesystem
- memory
- network
- process
enabled: true
period: 10s
processes: ['.*']
cpu_ticks: false
- module: apache
metricsets: ["status"]
enabled: true
period: 1s
hosts: ["http://127.0.0.1"]Apache
Apache 模块支持 2.2.31 以上的 2.2 系列,或 2.4.16 以上的 2.4 系列版本。
使用该模块要求被监控的 Apache 服务器上安装配置有 mod_status 扩展。通过该扩展可以监控到的 status 数据示例如下:
模块携带有一个预一定好的仪表盘,效果如下: 
HAProxy
HAProxy 模块支持 HAProxy 服务器 1.6 版本。
使用该模块要求在 HAProxy 服务器配置的 global 或 default 区域写有如下配置:
模块可以采集两类信息:info 和 stat。
其中 info 的返回数据示例如下:
stat 的返回数据示例如下:
对这些 stat 数据名称有疑惑的,可以查阅 http://www.haproxy.org/download/1.6/doc/management.txt 文档。
MongoDB
该模块支持 MongoDB 2.8 及以上版本。
MySQL
该模块支持 MySQL 5.7.0 及以上版本。
Nginx
该模块支持 Nginx 1.9 及以上版本。并要求安装有 mod_stub_status 模块。
PostgreSQL
该模块支持 PostgreSQL 9 及以上版本。可以采集 activity,bgwriter 和 database 三类数据。
activity 示例数据如下:
bgwriter 示例数据如下:
database 示例数据如下:
Redis
该模块支持 Redis 3 及以上版本。可以采集 info 和 keyspace 两类数据。
info 示例数据如下:
keyspace 示例数据如下:
System
System 就是过去的 TopBeat,可以采集 core、cpu、diskio、filesystem、fsstat、load、memory、network 和 process 指标。这都是运维人员最熟悉的部分,就不再单独贴指标名称和示例了。
模块自带有一个预定义仪表盘,示例如下:

Zookeeper
该模块支持 Zookeeper 3.4.0 及以上版本。采集的 mntr 数据示例如下:
docker 中的采集方式
metricbeat 的 system 数据大多采集自 /proc。而 docker 中,每个容器的实际数据是放在 /hostfs 而不是 /proc 里的。所以如果要用 metricbeat 采集容器数据,需要先挂载好对应路径:
Last updated
Was this helpful?