ZooKeeper监控命令与指标
监控是保障集群稳定的关键手段。
四字命令监控
常用命令:
| 命令 | 功能 |
|---|---|
| stat | 服务器状态、角色、连接数 |
| mntr | 详细监控指标 |
| ruok | 健康检查(返回imok) |
| cons | 客户端连接详情 |
| dump | 临时节点与会话 |
| srvr | 服务器详细信息 |
| wchs | Watcher统计 |
使用方式:
Bash
# 使用nc命令发送
echo stat | nc localhost 2181
# 使用telnet
telnet localhost 2181
stat
stat输出示例:
properties
Mode: follower <- 节点角色
Zxid: 0x100000005 <- 最新事务ID
Connections: 10 <- 连接数
Outstanding: 0 <- 待处理请求
Znode count: 100 <- 节点总数
mntr输出示例:
Bash
zk_version 3.8.0
zk_server_state follower
zk_avg_latency 5
zk_max_latency 100
zk_min_latency 1
zk_packets_received 10000
zk_packets_sent 10000
zk_num_alive_connections 10
zk_znode_count 100
cons连接详情:
YAML
/192.168.1.100:12345[0]
queued=0,recved=10,sent=5
命令白名单配置:
text
# zoo.cfg
4lw.commands.whitelist=stat,ruok,cons,mntr,srvr
提示:mntr输出适合监控系统解析使用。
JMX监控指标
关键指标:
| 指标 | 说明 |
|---|---|
| PacketsReceived | 收到的包数量 |
| PacketsSent | 发送的包数量 |
| AvgRequestLatency | 平均请求延迟 |
| MaxRequestLatency | 最大请求延迟 |
| NumAliveConnections | 活跃连接数 |
| WatchCount | Watcher数量 |
| ZnodeCount | ZNode数量 |
| OutstandingRequests | 待处理请求 |
JMX配置:
text
# 启动参数添加
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
监控方式:
| 工具 | 说明 |
|---|---|
| JConsole | JDK自带JMX客户端 |
| VisualVM | JDK监控工具 |
| Prometheus JMX Exporter | Prometheus集成 |
JMX Exporter配置:
text
# prometheus配置
startDelaySeconds: 0
hostPort: localhost:9999
rules:
- pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id.*><>(.*)"
name: "zk_$1"
告警规则示例:
text
Leader切换 > 3次/小时 → 告警
平均延迟 > 100ms → 告警
连接数 > maxClientCnxns×0.8 → 告警
注意:生产环境建议使用Prometheus集成监控。
要点总结
- stat查看角色、ZXID、连接数
- mntr输出详细监控指标
- ruok快速健康检查
- JMX提供详细性能指标
- AvgRequestLatency、NumAliveConnections是关键指标
- Prometheus JMX Exporter集成监控系统
- 配置告警规则及时发现异常
📝 发现内容有误?点击此处直接编辑