首页/数据/Redis 进阶速查/集群监控指标要点

集群监控指标要点

监控清单:cluster_state、槽未覆盖数、节点 flags、主从复制偏移、单节点内存与延迟、MOVED/ASK 频率、总线消息统计。

Redis 进阶速查数据更新于 2026-10-13

集群监控分三层

集群监控要同时看三层:集群整体状态、逐节点的资源与复制指标、以及重定向与总线消息这类集群特有信号。只盯一层容易漏判,例如集群状态显示正常,但某个分片的主从都打满内存,业务照样会报错。

基本信息

整体状态CLUSTER INFO 的 cluster_state 与槽统计
逐节点CLUSTER NODES、INFO 的 memory 与 replication 段
集群特有总线消息统计、节点间链路缓冲计数
客户端侧重定向次数与连接池重连次数需自行采集

监控清单

  • 集群状态:cluster_state 是否为 ok
  • 槽覆盖:已分配槽是否为 16384,失败槽数是否为 0
  • 节点健康:flags 里有没有失败、握手中、断连标记
  • 复制健康:主从偏移差与确认延迟
  • 资源水位:单节点内存与上限的比值、CPU、网络吞吐
  • 集群特有:总线消息量、节点间链路缓冲溢出计数
  • 客户端:重定向频率、连接池重连次数

采集示例

采集示例
redis-cli -p 7000 CLUSTER INFO                               # 集群整体状态
redis-cli -p 7000 CLUSTER NODES | grep -E 'fail|handshake'   # 异常节点
redis-cli -p 7000 INFO replication | grep -E 'master_link_status|lag'   # 复制健康
redis-cli -p 7000 INFO memory | grep -E 'used_memory:|maxmemory:'       # 内存水位
redis-cli -p 7000 INFO stats | grep -E 'sync_full|sync_partial'         # 全量同步次数
redis-cli -p 7000 CLUSTER INFO | grep -E 'messages|buffer'              # 总线与链路缓冲

指标读法

指标含义异常信号
cluster_state集群可用状态变为失败通常意味着有槽没有归属
cluster_slots_assigned已分配槽数量小于 16384 说明有槽没人负责
cluster_slots_fail处于失败状态的槽数量大于 0 表示这些槽不可服务
cluster_known_nodes / cluster_size已知节点数与主节点数与拓扑记录不符说明有节点丢失
cluster_stats_messages_*节点间总线消息统计突增可能与网络抖动或消息风暴有关
sync_full触发全量同步的次数持续增长说明部分同步失败,多为积压缓冲不足
内存与上限比值单节点内存水位接近上限会触发淘汰甚至写入失败
重定向次数不在服务端的 INFO 里,需要由客户端库或代理层统计。重定向频率突增往往早于业务报错,是很有效的先兆指标。
采集目标要覆盖每个主从节点,而不是随手上报一台。集群是按分片出故障的,只监控一个节点会漏掉整分片的异常。
集群总线还有一类隐形风险:某个节点处理慢,会让其他节点发往它的链路缓冲堆积。较新版本在 CLUSTER INFO 中提供了链路缓冲溢出计数,出现增长要立刻定位慢节点。

易错点

  • 只看集群整体状态不看单节点水位:集群正常但某分片内存打满,写入仍会失败
  • 只上报一台节点的指标:整分片故障无人发现,告警形同虚设
  • 忽略全量同步次数增长:复制一直在重来,会持续拉高主库磁盘与网络负载
  • 不采集客户端重定向指标:路由抖动只能等业务报错才被发现,缺少先兆预警
  • 自动解析节点列表却不考虑字段增补:版本升级后解析失败,监控静默失联

数据来源与参考

  • Redis 官方文档:集群监控建议
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌