1、问题

在启动哨兵模式后,30秒后日志输出+sdown slave和+sdown master或+sdown sentinel,然后哨兵没有成功运行

2、原因及解决办法

(1)第一种,master节点日志显示+slave后再显示sdown slave,slave节点日志显示+master后再显示sdown master

master:

redisson DNS redisson dnsmonitor 日志一直刷_redis

slave:

redisson DNS redisson dnsmonitor 日志一直刷_redisson DNS_02

 原因:

【1】安全组或防火墙没开放6379端口,导致master和slave之间不能通讯,从而在启动哨兵后导致sdown slave和sdown master

【2】各服务器之间不能互相访问,导致部署在各服务器上的redis不能互相通讯,从而在启动哨兵后导致sdown slave和sdown master(我这里的哨兵集群使用内网互相访问,若内网之间不能互相访问,也会导致sdown slave和sdown master)

解决办法:

【1】给安全组添加规则,开放6379端口(我使用的是华为云,配置仅供参考)

redisson DNS redisson dnsmonitor 日志一直刷_redisson DNS_03

【2】防火墙开放6379端口

例:

#防火墙开放6379端口
firewall-cmd --add-port=6379/tcp --permanent

【3】若是使用内网来搭建redis集群,而内网之间不能互相访问,可以设置安全组来让使用同一安全组的服务器在内网下能互相访问(我使用的是华为云,配置仅供参考;其他云内网互相访问我不清楚是否和华为云相同,需自己百度寻找内网互通的方法)

redisson DNS redisson dnsmonitor 日志一直刷_redisson DNS_04

 (2)第二种,master节点日志显示+slave后再显示+sdown sentinel(sentinel主观下线)

redisson DNS redisson dnsmonitor 日志一直刷_redisson DNS_05

原因:

安全组或防火墙没开放26379端口,导致各服务器上的sentinel(哨兵)之间不能互相通讯,从而导致sdown sentinel

 解决办法:

【1】给安全组添加规则,开放26379端口(我使用的是华为云,配置仅供参考)

redisson DNS redisson dnsmonitor 日志一直刷_服务器_06

【2】防火墙开放26379端口

例:

#防火墙开放26379端口
firewall-cmd --add-port=26379/tcp --permanent

(3)第三种,master节点日志显示sdown slave,slave节点日志显示sdown master

master: 

redisson DNS redisson dnsmonitor 日志一直刷_内网_07

slave:

redisson DNS redisson dnsmonitor 日志一直刷_linux_08

 原因:

哨兵启动后,sentinel.conf文件会自动生成新的参数,在下次启动哨兵时而没删掉自动生成的参数,就会导致哨兵启动失败

自动生成的参数:

redisson DNS redisson dnsmonitor 日志一直刷_linux_09

解决办法:在下次启动哨兵前把自动生成的参数删除

(4)第四种,master节点和slave节点日志显示sdown master

redisson DNS redisson dnsmonitor 日志一直刷_服务器_10

原因:sentinel.conf文件里主机IP地址写错了或密码错误

解决办法:写上正确的IP地址或密码

其他:

附上我的sentinel.conf文件供大家参考(我的sentinel.conf文件只有简单的两个参数)

redisson DNS redisson dnsmonitor 日志一直刷_redis_11