首页/数据/数据库速查/哨兵日志解读(+sdown / +switch-master)
Redis 运维与场景124 条

哨兵日志解读(+sdown / +switch-master)

切换全过程都在日志里:+sdown 主观下线、+odown 客观下线、+try-failover 开始、+promoted-slave 提升、+switch-master 完成;排障先按时间线读日志。

数据库速查数据更新于 2026-10-13

哨兵日志怎么读

一次故障切换的全过程都写在哨兵日志里:主观下线、客观下线、开始切换、选定并提升从库、切换完成。排障时按时间线通读日志,比反复猜测快得多;多哨兵部署时还要注意配置纪元,以多数派收到的通知为准。

基本信息

日志位置由哨兵配置中的日志文件参数指定
事件格式以加号或减号开头的事件名加对象与地址
关键事件主观下线、客观下线、开始切换、提升从库、切换完成
配置纪元每次切换递增,用于多哨兵之间比较新旧
轮转要求必须配置日志轮转,否则长期运行会写满磁盘

典型使用场景

  • 切换复盘:按时间线还原从故障发现到切换完成的每一步
  • 判断切换真伪:确认是否真的完成了切换,而不是只发生了告警
  • 多哨兵一致性核对:比较各节点日志,确认多数派观点一致
  • 切换失败排查:定位是票数不足、从库不可用还是切换被中止
  • 容量评估:通过切耗费时长评估高可用体系是否满足恢复目标

关键日志行

关键日志行
# 主观下线:单个哨兵认为主库不可达
# +sdown master mymaster 10.0.0.10 6379
# 客观下线:达到票数后判定主库真正不可用
# +odown master mymaster 10.0.0.10 6379 #quorum 2/2
# 开始切换与选定新主库
# +try-failover master mymaster 10.0.0.10 6379
# +selected-slave slave 10.0.0.11:6379
# 提升并完成切换
# +promoted-slave slave 10.0.0.11:6379
# +switch-master mymaster 10.0.0.10 6379 10.0.0.11 6379
grep -E "switch-master|odown|try-failover" /var/log/redis/sentinel.log | tail -20

事件逐项读法

事件含义后续动作
主观下线单一哨兵判定节点不可达等待其他哨兵是否认同
客观下线票数达标确认主库不可用准备进入切换流程
开始切换选出竞选从库并发起切换观察是否出现中止事件
提升从库从库被提升为新主库确认新主库可写
切换完成新旧地址同时给出核对客户端是否已刷新地址
切换中止票数不足或重试耗尽检查哨兵数量与网络
日志中同一时刻不同哨兵的记录会略有差异,判断切换事实以多数派收到的切换完成通知为准。
哨兵日志不配轮转:长期运行后磁盘被写满,进而影响同一主机上的其他服务。

易错点

  • 只看单台哨兵日志:单机可能是落后节点,结论与多数派不符
  • 日志未配置轮转:磁盘被写满,引发连锁故障
  • 把主观下线当成切换发生:主观下线只是单点判断,未必真的切换
  • 切换后不核对客户端地址:日志显示成功但客户端仍连旧主库

数据来源与参考

  • Redis 官方文档: Sentinel 事件与日志

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌