温馨提示×

linux zookeeper怎样监控运行

小樊
45
2026-10-25 01:52:26
栏目: 智能运维

在 Linux 上监控 ZooKeeper 的运行状态,通常可以从 进程/服务层面、ZooKeeper 自带命令、日志、JMX、第三方监控 几个维度来做。下面按实用程度给你一个完整方案。


一、基础进程与服务监控(最常用)

1. 查看 ZooKeeper 进程

ps -ef | grep zookeeper

或

jps | grep QuorumPeerMain

2. 使用 systemd(推荐)

如果是 systemd 管理的服务:

systemctl status zookeeper

设置开机自启:

systemctl enable zookeeper

查看日志:

journalctl -u zookeeper -f

二、ZooKeeper 自带命令监控(非常重要)

1. 四字命令(Four Letter Words)

ZooKeeper 提供了一些简单命令:

echo stat | nc localhost 2181

常见命令:

命令 作用
stat 查看节点状态和连接数
ruok 是否正常(imok 表示正常)
mntr 详细监控指标(推荐)
conf 配置信息
cons 客户端连接
envi JVM 环境

示例:

echo ruok | nc localhost 2181
# 返回 imok 表示正常

echo mntr | nc localhost 2181

⚠️ 注意:
mntr 需要在 zoo.cfg 中允许:

4lw.commands.whitelist=*

三、日志监控(问题排查关键)

1. 日志位置

默认:

$ZOOKEEPER_HOME/logs/

常见日志:

  • zookeeper.log
  • zookeeper.out

实时查看:

tail -f $ZOOKEEPER_HOME/logs/zookeeper.log

重点看:

  • ERROR
  • Leader election
  • Connection lost
  • OutOfMemory

四、JMX 监控(生产环境推荐)

1. 启用 JMX

在 zkServer.sh 或环境变量中加:

export JMXDISABLE=false
export JMXPORT=9999

或用:

-Dcom.sun.management.jmxremote

2. 查看指标

  • 使用 jconsole
  • 使用 VisualVM
  • 使用 Prometheus + JMX Exporter(生产推荐)

五、集群状态监控(多节点必看)

查看角色

echo stat | nc node1 2181
echo stat | nc node2 2181
echo stat | nc node3 2181

关注:

  • Mode: leader / follower
  • Zxid
  • Latency min/avg/max
  • Outstanding requests

六、生产级监控方案(推荐)

1. Prometheus + Grafana

  • jmx_exporter 暴露指标
  • Prometheus 采集
  • Grafana 展示

监控指标包括:

  • 请求延迟
  • 连接数
  • Leader 切换
  • Znode 数量

2. ZooKeeper Exporter

zookeeper-exporter

3. 告警建议

  • Leader 频繁切换
  • 请求延迟 > 200ms
  • 连接数异常增长
  • 节点掉线

七、简单健康检查脚本示例

#!/bin/bash
result=$(echo ruok | nc localhost 2181)
if [ "$result" != "imok" ]; then
  echo "ZooKeeper is DOWN"
  # 发送告警或重启
fi

总结(最推荐组合)

✅ 日常:ruok + mntr
✅ 排错:日志 + stat
✅ 生产:JMX + Prometheus + Grafana

如果你愿意,我可以:

  • 帮你写 完整监控脚本
  • 给你 Prometheus + ZooKeeper 配置示例
  • 针对 单机 / 集群 给具体方案

0 踩