首页/数据/Redis 进阶速查/哨兵访问数据实例的认证
主从与哨兵51 条

哨兵访问数据实例的认证

被监控实例设置密码后,哨兵需要 sentinel auth-pass <master-name> <password> 才能连接;6.0+ 支持 sentinel auth-user 指定 ACL 用户。

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

哨兵也需要凭据

被监控的 Redis 实例一旦启用密码或 ACL 认证,哨兵同样必须持有凭据,否则它连不上实例,健康检查会直接失败,进而把健康的主库判定为下线。配置落在哨兵侧,按 master 名称指定:sentinel auth-pass 设置密码,6.0 起可以用 sentinel auth-user 指定 ACL 用户名。凭据与 master 名绑定,对这套主从的所有实例生效,因此密码轮换时必须同步更新全部哨兵。

基本信息

密码配置sentinel auth-pass <master-name> <password>
ACL 用户sentinel auth-user <master-name> <username>(6.0 及以上)
生效方式写入 sentinel.conf 后重启,或运行时 SENTINEL SET
对照项从库侧的 masterauth 必须与之一致
敏感度在 sentinel.conf 中为明文存储

典型使用场景

  • 主库启用密码后为所有哨兵补齐认证配置,恢复监控能力
  • ACL 体系下为哨兵创建权限受限的专用用户
  • 密码轮换:数据实例、从库、哨兵三处同步更新并逐项核对
  • 排查「哨兵报无法连接实例」时,先确认凭据是否一致
  • 把认证配置纳入部署检查清单,尤其是用模板批量生成的场景

配置与核对

配置与核对
sentinel auth-user mymaster appuser            # 6.0 起支持 ACL 用户名
sentinel auth-pass mymaster app-password       # 与数据实例的密码保持一致
redis-cli -p 26379 SENTINEL MASTER mymaster | grep -E 'flags'
redis-cli -p 26379 SENTINEL SET mymaster auth-pass 'new-password'  # 运行时更新
redis-cli -p 26379 SENTINEL FLUSHCONFIG        # 运行时改动记得落盘
redis-cli -p 26379 SENTINEL SENTINELS mymaster # 核对各哨兵是否配置一致

排查路径

现象可能原因核对项
哨兵认为主库不可达认证失败被拒绝auth-pass 与实例密码是否一致
部分命令报权限错误ACL 用户权限不足哨兵用户是否具备所需命令权限
只有部分哨兵报错各哨兵配置不一致逐台核对凭据与 master 名
切换后新主连不上实例间凭据不同确认整套实例使用同一账号
auth-pass 在配置文件里是明文,文件权限要收紧到仅运行用户可读。用配置管理工具批量分发时,避免把密码提交进公开仓库;轮换时先更新从库与哨兵、最后更新主库,可以减少链路完全中断的窗口。

易错点

  • 只改了数据实例的密码而未同步哨兵,监控与故障切换能力同时失效,故障时无人接管
  • 各哨兵上凭据不一致,一部分报告下线、一部分认为正常,切换反复摇摆
  • 给哨兵使用的 ACL 用户权限过大,凭据泄露后影响面扩大到整个实例
  • 运行时用 SENTINEL SET 修改后没有 FLUSHCONFIG,重启后改动全部丢失

数据来源与参考

  • Redis 官方文档:Sentinel 认证配置说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌