在网上找了很多相关的文章,有的说bind的问题,有的说是防火墙的问题,这些问题我都检查过,但是依然没有解决我的问题。
(其实这2个也有原因)
我们首先了解一下哨兵的原理:
三个定时任务
- 每隔10s向主从节点发送info
- 每隔2秒向redis数据节点频道发送消息
- 每隔1秒,每个Sentinel节点会向主节点、从节点、其余Sentinel节点发送一条ping命令做一次心跳检测,来确认这些节点当前是否可达
其中第1和第2条需要连接客户端。
连接客户端需要保证
- bind的配置中存在ip(已注释)
- 确保所有的端口可以访问(防火墙已关闭)
- auth节点认证信息
我没有配置auth
sentinel auth-pass redis-master 123456
port 26379
daemonize yes
logfile "26379.log"
sentinel myid 584a3bbcae45bb9eb70167ddf7ef92448a369f29
sentinel monitor redis-master 192.168.56.100 6379 2
sentinel auth-pass redis-master 123456
sentinel config-epoch redis-master 0
sentinel leader-epoch redis-master 0
# Generated by CONFIG REWRITE
dir "/opt/redis/conf"
sentinel known-slave redis-master 192.168.56.101 6379
sentinel known-sentinel redis-master 192.168.56.101 26380 10f9887f9ab84861d45bab6a0798c54042c298e4
sentinel known-sentinel redis-master 192.168.56.101 26381 486c641d31af71baa34c5a208d4341b987ba3e23
sentinel current-epoch 0
我们查看一下哨兵的信息
info sentinel
[root@localhost conf]# redis-cli -h 127.0.0.1 -p 26379
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=redis-master,status=ok,address=192.168.56.100:6379,slaves=1,sentinels=3
master节点为正常状态