sentinel.conf 是什么
一个哨兵进程需要知道:监控谁、多久无响应算下线、切换的节奏如何。sentinel.conf 里最关键的几行就是 monitor 定义主库与判定票数、auth-pass 提供复制鉴权、down-after-milliseconds 与 failover-timeout 控制判定与切换节奏、parallel-syncs 控制同时重同步的从库数量。从库与其它哨兵由哨兵自动发现,不需要手写。
基本信息
| 核心配置 | port、sentinel monitor、sentinel auth-pass |
|---|---|
| 判定参数 | down-after-milliseconds、failover-timeout |
| 切换参数 | parallel-syncs |
| 运行目录 | dir 决定配置自动重写的位置,需可写 |
| 同机多实例 | sentinel announce-ip / announce-port 声明对外地址 |
典型使用场景
- 从零搭建哨兵高可用体系,需要一份可用的最小配置
- 从单哨兵升级到多哨兵,明确 quorum 与部署位置
- 切换过慢或过频时调整 down-after 与 failover-timeout
- 主库开启 requirepass 后补上 auth-pass,否则监控状态异常
- 容器或 NAT 环境下哨兵上报的地址不可达,需要 announce 项修正
示例配置
示例配置
port 26379
sentinel monitor mymaster 10.0.0.10 6379 2
sentinel auth-pass mymaster 主库密码
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
dir /var/lib/redis-sentinel
logfile /var/log/redis/sentinel.log
# 同机多实例或 NAT 环境补充:
# sentinel announce-ip 10.0.0.11
# sentinel announce-port 26379配置项读法
| 配置项 | 含义 | 取值建议 |
|---|---|---|
| monitor 末位数字 | 判定客观下线的票数 quorum | 3 哨兵常用 2,5 哨兵常用 2 到 3 |
| down-after-milliseconds | 多久无响应判定主观下线 | 30000 是常见起点,过小易抖动 |
| failover-timeout | 切换各阶段超时与重试间隔 | 180000 较常见,过小引发反复切换 |
| parallel-syncs | 故障后同时重同步的从库数 | 从库多时设 1 到 2,避免同步风暴 |
| auth-pass | 哨兵连接主从使用的密码 | 主库有 requirepass 时必须配置 |
哨兵会自动重写自己的配置文件(记录已知从库与其它哨兵)。手工修改后要确保各哨兵配置一致,配置漂移是「切换行为诡异」的第一大来源,必要时用 SENTINEL RESET 重建认知。
不要在配置里写死从库列表:哨兵通过 INFO 自动发现从库,写死了切换后会留下过期信息,反而干扰判定。
多哨兵部署建议使用同一份模板、同一版本,只改各自的端口、日志与 announce 项;部署在不同物理机或不同交换机下,故障域才算真正隔离。