1、问题
在启动哨兵模式后,30秒后日志输出+sdown slave和+sdown master或+sdown sentinel,然后哨兵没有成功运行
2、原因及解决办法
(1)第一种,master节点日志显示+slave后再显示sdown slave,slave节点日志显示+master后再显示sdown master
master:
slave:
原因:
【1】安全组或防火墙没开放6379端口,导致master和slave之间不能通讯,从而在启动哨兵后导致sdown slave和sdown master
【2】各服务器之间不能互相访问,导致部署在各服务器上的redis不能互相通讯,从而在启动哨兵后导致sdown slave和sdown master(我这里的哨兵集群使用内网互相访问,若内网之间不能互相访问,也会导致sdown slave和sdown master)
解决办法:
【1】给安全组添加规则,开放6379端口(我使用的是华为云,配置仅供参考)
【2】防火墙开放6379端口
例:
#防火墙开放6379端口
firewall-cmd --add-port=6379/tcp --permanent
【3】若是使用内网来搭建redis集群,而内网之间不能互相访问,可以设置安全组来让使用同一安全组的服务器在内网下能互相访问(我使用的是华为云,配置仅供参考;其他云内网互相访问我不清楚是否和华为云相同,需自己百度寻找内网互通的方法)
(2)第二种,master节点日志显示+slave后再显示+sdown sentinel(sentinel主观下线)
原因:
安全组或防火墙没开放26379端口,导致各服务器上的sentinel(哨兵)之间不能互相通讯,从而导致sdown sentinel
解决办法:
【1】给安全组添加规则,开放26379端口(我使用的是华为云,配置仅供参考)
【2】防火墙开放26379端口
例:
#防火墙开放26379端口
firewall-cmd --add-port=26379/tcp --permanent
(3)第三种,master节点日志显示sdown slave,slave节点日志显示sdown master
master:
slave:
原因:
哨兵启动后,sentinel.conf文件会自动生成新的参数,在下次启动哨兵时而没删掉自动生成的参数,就会导致哨兵启动失败
自动生成的参数:
解决办法:在下次启动哨兵前把自动生成的参数删除
(4)第四种,master节点和slave节点日志显示sdown master
原因:sentinel.conf文件里主机IP地址写错了或密码错误
解决办法:写上正确的IP地址或密码
其他:
附上我的sentinel.conf文件供大家参考(我的sentinel.conf文件只有简单的两个参数)