一、集群环境

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)

 

五、参考文档

ZooKeeper:因为协调分布式系统就像管理动物园 - ZooKeeper 协调服务

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐