首页/数据/Redis 进阶速查/monitor 指令与运行时监控变更
主从与哨兵51 条

monitor 指令与运行时监控变更

sentinel monitor 声明被监控对象;运行时可先用 SENTINEL MONITOR 增加、SENTINEL REMOVE 移除,再 SENTINEL FLUSHCONFIG 落盘。

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

声明要监控谁

sentinel monitor 是哨兵配置文件里的核心指令,用来声明「监控哪个主库」,参数依次是自定义的 master 名称、地址、端口和 quorum 票数。运行时也可以用 SENTINEL MONITOR 动态增加被监控对象,用 SENTINEL REMOVE 移除。动态改动只存在于内存中,必须执行 SENTINEL FLUSHCONFIG 写回配置文件,否则重启后这些变更全部丢失。

基本信息

配置指令sentinel monitor <name> <ip> <port> <quorum>
运行时新增SENTINEL MONITOR <name> <ip> <port> <quorum>
运行时移除SENTINEL REMOVE <name>
落盘SENTINEL FLUSHCONFIG
一致性要求每台哨兵都必须有相同的监控配置

典型使用场景

  • 一次性上线多套主从,用脚本批量注册监控对象并落盘
  • 业务下线时移除对应监控对象,避免残留告警与无效切换
  • 运维窗口内临时增设监控对象做观察,结束后移除
  • 排查配置不一致:逐台对比各哨兵的监控对象清单
  • 机房搬迁或地址调整时更新监控目标

增删与落盘

增删与落盘
redis-cli -p 26379 SENTINEL MONITOR app2 10.0.0.21 6379 2
redis-cli -p 26379 SENTINEL MASTERS                 # 列出所有监控对象
redis-cli -p 26379 SENTINEL MASTER app2 | grep -E 'flags|quorum|num-slaves'
redis-cli -p 26379 SENTINEL REMOVE app2             # 移除监控对象
redis-cli -p 26379 SENTINEL FLUSHCONFIG             # 变更后立即落盘
redis-cli -p 26379 SENTINEL SENTINELS app2          # 确认各哨兵认知一致

参数含义

参数含义注意
name自定义监控对象名称客户端按名称查询主库,改名要同步客户端
ip 与 port被监控的主库地址误填从库地址会让监控对象错位
quorum确认客观下线所需票数需与哨兵总数匹配,过小放大误判
FLUSHCONFIG把运行时变更写回配置文件不执行则重启后全部丢失
运行时变更要在所有哨兵上执行,或通过统一的配置下发完成。只改一台会造成各哨兵认知不一致,切换判定时出现互相矛盾的结果,排查起来非常费时。
被移除的监控对象如果仍留在某些哨兵的配置文件里,重启后可能被重新加载回来,出现「删了又复活」的现象。清理时要连配置文件一起改,改完再逐个核对。

易错点

  • 只在一台哨兵上执行变更,各哨兵配置不一致,下线判定结论互相矛盾
  • 变更后不执行 SENTINEL FLUSHCONFIG,重启全部回退,运维记录与实际行为对不上
  • 监控地址误填成从库,哨兵把从库当主库监控,切换逻辑完全错乱
  • 移除监控对象时只改内存不改配置文件,重启后遗留对象重新出现并触发告警

数据来源与参考

  • Redis 官方文档:SENTINEL MONITOR / REMOVE / FLUSHCONFIG 命令
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌