一、集群环境
root@zk-node01:~# /opt/zookeeper/bin/zkServer.sh version
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Apache ZooKeeper, version 3.8.4 2024-02-12 22:16 UTC
root@zk-node01:~# /opt/zookeeper/bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
root@zk-node02:~# /opt/zookeeper/bin/zkServer.sh version
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Apache ZooKeeper, version 3.8.4 2024-02-12 22:16 UTC
root@zk-node02:~# /opt/zookeeper/bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
二、修改zoo.cfg配置
2.1修改所有节点的配置文件
在所有节点的zoo.cfg文件末尾添加以下内容
# 启用 Prometheus 指标导出
metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
# 暴露 JVM 指标
metricsProvider.exportJvmInfo=true
# 设置指标暴露端口(默认 7000)
metricsProvider.httpPort=7000
2.2重启所有节点
root@zk-node01:~# /opt/zookeeper/bin/zkServer.sh restart
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
三、prometheus配置
3.1修改prometheus.yml文件
修改prometheus.yml文件,添加如下内容
scrape_configs:
- job_name: 'zookeeper'
static_configs:
- targets:
- '10.0.49.215:7000' # 节点1地址
- '10.0.49.216:7000' # 节点2地址
- '10.0.49.217:7000' # 节点3地址
metrics_path: /metrics
验证:
root@zk-monitor:~/zk_monitor/prometheus# cat prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'zookeeper'
static_configs:
- targets:
- '10.0.49.215:7000' # 节点1地址
- '10.0.49.216:7000' # 节点2地址
- '10.0.49.217:7000' # 节点3地址
metrics_path: /metrics
3.2重启prometheus
docker restart prometheus
验证
四、grafana仪表盘配置
4.1添加数据源
登录 Grafana → Configuration → Data Sources
选择 Prometheus,填写 Prometheus 服务地址(如 http://10.0.49.218:9090)
4.2导入官方仪表板
进入 Create → Import
输入仪表板 ID: 10465(ZooKeeper 官方模板)
选择刚添加的 Prometheus 数据源
4.3关键监控指标
仪表板将自动展示:
集群健康:Leader 状态、节点存活
请求统计:读写延迟、请求量
ZNode 追踪:节点数量、Watcher 计数
JVM 指标:堆内存、GC 时间(需开启 exportJvmInfo)