You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis Sentinel无法连接其他Sentinel节点问题排查求助

Redis Sentinel 无法互相发现的排查与解决

针对你的Redis Sentinel集群无法互相发现的问题,以下是具体的排查步骤和解决方案:

1. 修复认证凭据不一致问题

你的配置中存在明显的认证密码不匹配:

  • 配置项 sentinel sentinel-pass asdf2 指定了Sentinel之间通信的密码
  • 但用户 sentinel-user 的实际密码是 #asdf3(Redis配置中#是哈希密码的标识,实际密码为asdf3)

这会导致其他Sentinel尝试连接时认证失败,无法加入集群。解决方式:
统一两处密码,比如将 sentinel sentinel-pass asdf2 修改为 sentinel sentinel-pass asdf3,确保与user sentinel-user的密码一致。

2. 修正节点IP配置错误

检查所有Sentinel的bind和announce-ip配置:

  • 你提供的配置中announce-ip "xx.xx.1.51",如果这是其中一个节点的IP,那么另外两个Sentinel节点的bind和announce-ip必须设置为各自节点的实际IP(比如xx.xx.1.52、xx.xx.1.53)
  • 若所有Sentinel都上报同一个IP,会导致地址冲突,集群无法识别不同的Sentinel实例

解决方式:
每个节点的Sentinel配置中,bind和announce-ip都改为自身节点的真实IP,确保每个Sentinel对外暴露的地址唯一且正确。

3. 验证Sentinel端口的网络连通性

虽然使用了net=host模式,但仍需确认26379端口在节点间可访问:
在每个节点上执行以下命令,测试与其他节点Sentinel端口的连通性:

nc -zv xx.xx.1.xx 26379

如果连接失败,检查:

  • 主机防火墙(firewalld/iptables)是否放行26379端口
  • 云环境下的安全组规则是否允许节点间26379端口的通信

4. 清理Sentinel状态文件

Sentinel会在dir目录下生成自动保存的状态文件(sentinel.conf、dump.rdb),这些文件可能残留旧配置,导致集群状态异常:

  1. 停止所有Sentinel实例
  2. 删除每个节点/opt/redis目录下的sentinel.conf和dump.rdb文件
  3. 使用修正后的配置重新启动所有Sentinel

5. 查看Debug日志定位问题

由于你设置了loglevel debug,可以直接查看Sentinel日志,搜索以下关键词定位错误:

  • Authentication error:认证失败相关问题
  • Could not connect to sentinel:网络连通问题
  • Invalid sentinel address:地址配置错误

验证修复结果

完成上述操作后,执行以下命令验证:

redis-cli.sh -h xx.xx.1.51 -p 26379 --user sentinel-user --pass asdf3 sentinel masters

查看输出中的num-other-sentinels是否变为2;再执行:

redis-cli.sh -h xx.xx.1.51 -p 26379 --user sentinel-user --pass asdf3 sentinel ckquorum redis1

正常情况下会返回OK 3 usable Sentinels. Quorum 2 is satisfied.

内容的提问来源于stack exchange,提问作者Scot Kreienkamp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:15:12