跳转至

55. redis-sentinel配置

1. 介绍

# 哨兵是redis官方推荐的高可用性解决方案

# 当设置了哨兵后,主库宕机,会自动切换主库

2. 功能

1.监控
2.自动选主,切换
3.2号从库自动指向新主库
4.应用透明

3. 搭建

3.1 创建目录

mkdir /data/26380

3.2 创建配置文件

vim /data/26380/sentinel.conf

port 26380
dir "/data/26380"
sentinel monitor mymaster 127.0.0.1 6381 1
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster 123

#说明:
    1.sentinel monitor mymaster 127.0.0.1 6381 1 #mymaster是自己起的名字,指定主库,因为主库可以监控所有从库
    2.sentinel down-after-milliseconds mymaster 5000#是指定5秒连不上主库,则说明主库宕机
    3.sentinel auth-pass mymaster 123 #指定所有节点密码
[root@152 6379]# mkdir /data/26380
[root@152 6379]# vim /data/26380/sentinel.conf
[root@152 6379]# cat /data/26380/sentinel.conf
port 26380
dir "/data/26380"
sentinel monitor mymaster 127.0.0.1 6381 1
sentinel down-after-milliseconds mymasterr 5000
sentinel auth-pass mymaster 123

3.3 启动哨兵

redis-sentinel /data/26380/sentinel.conf &
#第一次启动报错
[root@152 6379]# redis-sentinel /data/26380/sentinel.conf &
[2] 109922
[root@152 6379]#
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 4
>>> 'sentinel down-after-milliseconds mymasterr 5000'
No such master with specified name.

[2]+  Exit 1                  redis-sentinel /data/26380/sentinel.conf

#发现配置文件中多了个r。。。,修改配置文件,再次启动测试。。。

[root@152 6379]# redis-sentinel /data/26380/sentinel.conf &
[2] 110730
[root@152 6379]# 110730:X 09 May 21:17:42.320 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.2.12 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26380
 |    `-._   `._    /     _.-'    |     PID: 110730
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

110730:X 09 May 21:17:42.321 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
110730:X 09 May 21:17:42.321 # Sentinel ID is 44dffc8dd3c834801d38b5d41483130600f87cdc
110730:X 09 May 21:17:42.321 # +monitor master mymaster 127.0.0.1 6381 quorum 1

[root@152 6379]#

#启动成功!!!!

3.4 如果有问题

1.重新准备1主2从环境
2.kill掉sentinel进程   #pkill redis-sentinel
3.删除sentinel目录下得所有文件
4.重新搭建sentinel

4. 模拟主库宕机

#重新开启一个窗口,关闭主库
redis-cli -p 6381 -a 123 shutdown

#查看原窗口sentinel日志,可以找到新主库是哪个
#1.关闭主库
[root@152 ~]# netstat -tunlp |grep 638
tcp        0      0 0.0.0.0:26380           0.0.0.0:*               LISTEN      110730/redis-sentin
tcp        0      0 0.0.0.0:6380            0.0.0.0:*               LISTEN      108088/redis-server
tcp        0      0 0.0.0.0:6381            0.0.0.0:*               LISTEN      104128/redis-server
tcp        0      0 0.0.0.0:6382            0.0.0.0:*               LISTEN      104140/redis-server
tcp6       0      0 :::26380                :::*                    LISTEN      110730/redis-sentin
tcp6       0      0 :::6380                 :::*                    LISTEN      108088/redis-server
tcp6       0      0 :::6381                 :::*                    LISTEN      104128/redis-server
tcp6       0      0 :::6382                 :::*                    LISTEN      104140/redis-server
[root@152 ~]# redis-cli -p 6381 -a 123 shutdown
[root@152 ~]# netstat -tunlp |grep 638
tcp        0      0 0.0.0.0:26380           0.0.0.0:*               LISTEN      110730/redis-sentin
tcp        0      0 0.0.0.0:6380            0.0.0.0:*               LISTEN      108088/redis-server
tcp        0      0 0.0.0.0:6382            0.0.0.0:*               LISTEN      104140/redis-server
tcp6       0      0 :::26380                :::*                    LISTEN      110730/redis-sentin
tcp6       0      0 :::6380                 :::*                    LISTEN      108088/redis-server
tcp6       0      0 :::6382                 :::*                    LISTEN      104140/redis-server

#2.查看sentinel日志
[root@152 6379]# redis-sentinel /data/26380/sentinel.conf &
[2] 110730
[root@152 6379]# 110730:X 09 May 21:17:42.320 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.2.12 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26380
 |    `-._   `._    /     _.-'    |     PID: 110730
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

110730:X 09 May 21:17:42.321 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
110730:X 09 May 21:17:42.321 # Sentinel ID is 44dffc8dd3c834801d38b5d41483130600f87cdc
110730:X 09 May 21:17:42.321 # +monitor master mymaster 127.0.0.1 6381 quorum 1
#此处往下是新产生的
[root@152 6379]# 110730:X 09 May 21:19:21.637 # +sdown master mymaster 127.0.0.1 6381
110730:X 09 May 21:19:21.637 # +odown master mymaster 127.0.0.1 6381 #quorum 1/1
110730:X 09 May 21:19:21.637 # +new-epoch 1
110730:X 09 May 21:19:21.637 # +try-failover master mymaster 127.0.0.1 6381
110730:X 09 May 21:19:21.639 # +vote-for-leader 44dffc8dd3c834801d38b5d41483130600f87cdc 1
110730:X 09 May 21:19:21.639 # +elected-leader master mymaster 127.0.0.1 6381
110730:X 09 May 21:19:21.639 # +failover-state-select-slave master mymaster 127.0.0.1 6381
110730:X 09 May 21:19:21.705 # +selected-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.                                                                                     0.1 6381
110730:X 09 May 21:19:21.705 * +failover-state-send-slaveof-noone slave 127.0.0.1:6380 127.0.0.1 638                                                                                     0 @ mymaster 127.0.0.1 6381
110730:X 09 May 21:19:21.779 * +failover-state-wait-promotion slave 127.0.0.1:6380 127.0.0.1 6380 @                                                                                      mymaster 127.0.0.1 6381
110730:X 09 May 21:19:22.647 # +promoted-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.                                                                                     0.1 6381
110730:X 09 May 21:19:22.647 # +failover-state-reconf-slaves master mymaster 127.0.0.1 6381
110730:X 09 May 21:19:22.730 * +slave-reconf-sent slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127                                                                                     .0.0.1 6381
110730:X 09 May 21:19:23.674 * +slave-reconf-inprog slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 1                                                                                     27.0.0.1 6381
110730:X 09 May 21:19:23.674 * +slave-reconf-done slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127                                                                                     .0.0.1 6381
110730:X 09 May 21:19:23.753 # +failover-end master mymaster 127.0.0.1 6381
110730:X 09 May 21:19:23.753 # +switch-master mymaster 127.0.0.1 6381 127.0.0.1 6380
110730:X 09 May 21:19:23.754 * +slave slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6380
110730:X 09 May 21:19:23.754 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
110730:X 09 May 21:19:28.782 # +sdown slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380

#根据倒数第四行可以看出,新主库为6380

5. 查看新主库主从状态

redis-cli -p 6380 -a 123 info replication
#1.6380
[root@152 ~]# redis-cli -p 6380 -a 123 info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6382,state=online,offset=12246,lag=0
master_repl_offset:12246
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:12245

#2.6381
[root@152 ~]# redis-cli -p 6381 -a 123 info replication
Could not connect to Redis at 127.0.0.1:6381: Connection refused


#3.6382
[root@152 ~]# redis-cli -p 6382 -a 123 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:12925
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

6. 启动6381

#新窗口操作
redis-server /data/6381/redis.conf

#查看哨兵日志
#1.窗口2启动6381
[root@152 ~]# redis-server /data/6381/redis.conf
[root@152 ~]#


#2.窗口1查看sentinel日志
[root@152 6379]# 110730:X 09 May 21:24:43.469 # -sdown slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
110730:X 09 May 21:24:53.463 * +convert-to-slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380

[root@152 6379]#

7. 再次查看主库主从信息

redis-cli -p 6380 -a 123 info replication

#可以看到,6381自动成为从库
[root@152 ~]# redis-cli -p 6380 -a 123 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6382,state=online,offset=27753,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=27753,lag=0
master_repl_offset:27753
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:27752
[root@152 ~]# redis-cli -p 6381 -a 123 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:28152
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
[root@152 ~]# redis-cli -p 6382 -a 123 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:28299
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

8. 哨兵启动时,可以将日志导入日志文件中

redis-sentinel /data/26380/sentinel.conf & > /tmp/sentinel.log  #待验证 (已验证,貌似不好用。。。)
#验证:
#1.窗口1重启sentinel,并将日志写入文件
[root@152 6379]# netstat -tunlp |grep 26380
tcp        0      0 0.0.0.0:26380           0.0.0.0:*               LISTEN      110730/redis-sentin
tcp6       0      0 :::26380                :::*                    LISTEN      110730/redis-sentin
[root@152 6379]# redis-cli -p 26380 shutdown
110730:X 09 May 21:28:49.206 # User requested shutdown...
110730:X 09 May 21:28:49.206 # Sentinel is now ready to exit, bye bye...
[2]+  Done                    redis-sentinel /data/26380/sentinel.conf
[root@152 6379]# netstat -tunlp |grep 26380
[root@152 6379]#
[root@152 6379]# redis-sentinel /data/26380/sentinel.conf & > /tmp/sentinel.log
[2] 114894
[root@152 6379]# 114894:X 09 May 21:29:02.725 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.2.12 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26380
 |    `-._   `._    /     _.-'    |     PID: 114894
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

114894:X 09 May 21:29:02.726 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
114894:X 09 May 21:29:02.726 # Sentinel ID is 44dffc8dd3c834801d38b5d41483130600f87cdc
114894:X 09 May 21:29:02.726 # +monitor master mymaster 127.0.0.1 6380 quorum 1

[root@152 6379]#

#2.窗口2关闭主库6380
[root@152 ~]# redis-cli -p 6380 -a 123 shutdown
[root@152 ~]#

#3.查看窗口1,发现依旧显示在窗口上
[root@152 6379]# 114894:X 09 May 21:30:03.502 # +sdown master mymaster 127.0.0.1 6380
114894:X 09 May 21:30:03.502 # +odown master mymaster 127.0.0.1 6380 #quorum 1/1
114894:X 09 May 21:30:03.502 # +new-epoch 2
114894:X 09 May 21:30:03.502 # +try-failover master mymaster 127.0.0.1 6380
114894:X 09 May 21:30:03.503 # +vote-for-leader 44dffc8dd3c834801d38b5d41483130600f87cdc 2
114894:X 09 May 21:30:03.503 # +elected-leader master mymaster 127.0.0.1 6380
114894:X 09 May 21:30:03.504 # +failover-state-select-slave master mymaster 127.0.0.1 6380
114894:X 09 May 21:30:03.566 # +selected-slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
114894:X 09 May 21:30:03.566 * +failover-state-send-slaveof-noone slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
114894:X 09 May 21:30:03.652 * +failover-state-wait-promotion slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
114894:X 09 May 21:30:04.056 # +promoted-slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
114894:X 09 May 21:30:04.056 # +failover-state-reconf-slaves master mymaster 127.0.0.1 6380
114894:X 09 May 21:30:04.124 * +slave-reconf-sent slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6380
114894:X 09 May 21:30:05.074 * +slave-reconf-inprog slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6380
114894:X 09 May 21:30:05.074 * +slave-reconf-done slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6380
114894:X 09 May 21:30:05.157 # +failover-end master mymaster 127.0.0.1 6380
114894:X 09 May 21:30:05.157 # +switch-master mymaster 127.0.0.1 6380 127.0.0.1 6381
114894:X 09 May 21:30:05.158 * +slave slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6381
114894:X 09 May 21:30:05.158 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
114894:X 09 May 21:30:10.185 # +sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381

[root@152 6379]#

#4.窗口1,查看日志文件,发现文件中为空
[root@152 6379]# cat /tmp/sentinel.log
[root@152 6379]#

#5.学mha启动命令试试?(待验证)
nohup redis-sentinel /data/26380/sentinel.conf & </dev/null > /tmp/sentinel.log &

#6.发现一个问题,当初主库变了后,sentinel配置文件未修改。。。另起一篇,再次测试
#1.重新准备1主2从环境
[root@152 ~]# redis-server /data/6380/redis.conf
[root@152 ~]#
[root@152 ~]# redis-cli -p 6382 -a 123 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_repl_offset:29111
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
[root@152 ~]# redis-cli -p 6381 -a 123 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6382,state=online,offset=29391,lag=0
slave1:ip=127.0.0.1,port=6380,state=online,offset=29391,lag=0
master_repl_offset:29391
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:29390
[root@152 ~]# redis-cli -p 6380 -a 123 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:29790
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

#2.kill掉sentinel进程
[root@152 6379]# netstat -tunlp |grep 26380
tcp        0      0 0.0.0.0:26380           0.0.0.0:*               LISTEN      114894/redis-sentin
tcp6       0      0 :::26380                :::*                    LISTEN      114894/redis-sentin
[root@152 6379]# redis-cli -p 26380 shutdown
114894:X 09 May 21:38:30.664 # User requested shutdown...
114894:X 09 May 21:38:30.664 # Sentinel is now ready to exit, bye bye...
[2]+  Done                    redis-sentinel /data/26380/sentinel.conf
[root@152 6379]# netstat -tunlp |grep 26380
[root@152 6379]#

#3.删除sentinel目录下得所有文件
[root@152 6379]# cd /data/26380/
[root@152 26380]# ls
sentinel.conf
[root@152 26380]# rm -rf sentinel.conf
[root@152 26380]# ls
[root@152 26380]#


#4.重新搭建sentinel
[root@152 26380]# vim /data/26380/sentinel.conf
[root@152 26380]# cat /data/26380/sentinel.conf
port 26380
dir "/data/26380"
sentinel monitor mymaster 127.0.0.1 6381 1
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster 123

[root@152 26380]# redis-sentinel /data/26380/sentinel.conf & > /tmp/sentinel.log
[2] 119307
[root@152 26380]# 119307:X 09 May 21:41:15.969 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.2.12 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26380
 |    `-._   `._    /     _.-'    |     PID: 119307
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

119307:X 09 May 21:41:15.970 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
119307:X 09 May 21:41:15.971 # Sentinel ID is 5d995e95bfef56162b02db0fd23690675ff10c9b
119307:X 09 May 21:41:15.971 # +monitor master mymaster 127.0.0.1 6381 quorum 1
119307:X 09 May 21:41:15.973 * +slave slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6381
119307:X 09 May 21:41:15.974 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381

[root@152 26380]#

#5.窗口2关闭主库6381
[root@152 ~]# redis-cli -p 6381 -a 123 shutdown
[root@152 ~]#

#6.查看窗口1 信息
[root@152 26380]# 119307:X 09 May 21:42:19.943 # +sdown master mymaster 127.0.0.1 6381
119307:X 09 May 21:42:19.943 # +odown master mymaster 127.0.0.1 6381 #quorum 1/1
119307:X 09 May 21:42:19.943 # +new-epoch 1
119307:X 09 May 21:42:19.943 # +try-failover master mymaster 127.0.0.1 6381
119307:X 09 May 21:42:19.945 # +vote-for-leader 5d995e95bfef56162b02db0fd23690675ff10c9b 1
119307:X 09 May 21:42:19.945 # +elected-leader master mymaster 127.0.0.1 6381
119307:X 09 May 21:42:19.945 # +failover-state-select-slave master mymaster 127.0.0.1 6381
119307:X 09 May 21:42:20.005 # +selected-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
119307:X 09 May 21:42:20.005 * +failover-state-send-slaveof-noone slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
119307:X 09 May 21:42:20.059 * +failover-state-wait-promotion slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
119307:X 09 May 21:42:20.403 # +promoted-slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
119307:X 09 May 21:42:20.403 # +failover-state-reconf-slaves master mymaster 127.0.0.1 6381
119307:X 09 May 21:42:20.459 * +slave-reconf-sent slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6381
119307:X 09 May 21:42:21.435 * +slave-reconf-inprog slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6381
119307:X 09 May 21:42:21.435 * +slave-reconf-done slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6381
119307:X 09 May 21:42:21.497 # +failover-end master mymaster 127.0.0.1 6381
119307:X 09 May 21:42:21.497 # +switch-master mymaster 127.0.0.1 6381 127.0.0.1 6380
119307:X 09 May 21:42:21.497 * +slave slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6380
119307:X 09 May 21:42:21.497 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
119307:X 09 May 21:42:26.578 # +sdown slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380

[root@152 26380]#

#7.查看窗口1的日志文件
[root@152 26380]# cat /tmp/sentinel.log
[root@152 26380]#

#依旧失败了
#最后一次验证!
    #1.重新准备1主2从环境
    #2.kill掉sentinel进程
    #4.重新搭建sentinel
    #5.窗口2关闭主库6381
    #6.查看窗口1 信息
    #7.查看窗口1的日志文件

具体步骤
#1.重新准备1主2从环境
[root@152 ~]# redis-server /data/6381/redis.conf
[root@152 ~]#
[root@152 ~]# redis-cli -p 6380 -a 123 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6382,state=online,offset=14985,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=14985,lag=1
master_repl_offset:14985
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:14984

#2.kill掉sentinel进程
[root@152 26380]# redis-cli -p 26380 shutdown
119307:X 09 May 21:46:37.987 # User requested shutdown...
119307:X 09 May 21:46:37.987 # Sentinel is now ready to exit, bye bye...
[2]+  Done                    redis-sentinel /data/26380/sentinel.conf

#4.重新搭建sentinel
[root@152 26380]# ls
sentinel.conf
[root@152 26380]# cat sentinel.conf
port 26380
dir "/data/26380"
sentinel myid 5d995e95bfef56162b02db0fd23690675ff10c9b
sentinel monitor mymaster 127.0.0.1 6380 1
sentinel down-after-milliseconds mymaster 5000
# Generated by CONFIG REWRITE
sentinel auth-pass mymaster 123
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 1
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-slave mymaster 127.0.0.1 6382
sentinel current-epoch 1
[root@152 26380]#
[root@152 26380]# rm -rf sentinel.conf
[root@152 26380]# ls
[root@152 26380]# vim sentinel.conf
[root@152 26380]# vim sentinel.conf
[root@152 26380]# cat sentinel.conf
port 26380
dir "/data/26380"
sentinel monitor mymaster 127.0.0.1 6380 1
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster 123
[root@152 26380]#
#使用新命令启动sentinel测试
[root@152 26380]# nohup redis-sentinel /data/26380/sentinel.conf & </dev/null > /tmp/sentinel.log &
[2] 122065
[3] 122066
[root@152 26380]# nohup: ignoring input and appending output to ‘nohup.out’

[3]+  Done                     < /dev/null > /tmp/sentinel.log
[root@152 26380]#
[root@152 26380]# netstat -tunlp|grep 26380
tcp        0      0 0.0.0.0:26380           0.0.0.0:*               LISTEN      122065/redis-sentin
tcp6       0      0 :::26380                :::*                    LISTEN      122065/redis-sentin


#5.窗口2关闭主库6381
[root@152 ~]# redis-cli -p 6380 -a 123 shutdown
[root@152 ~]#

#6.查看窗口1 信息
没有产生信息

#7.查看窗口1的日志文件
[root@152 26380]# cat /tmp/sentinel.log
[root@152 26380]#
#依旧没有信息。。。失败。

9. sentinel管理命令

#登录sentinel管理端口
redis-cli -p 26380

#1.查看连接状态
ping

#2.列出所有被监视的主服务器
sentinel masters  #加不加mymaster?待验证 (已验证,不可加)

#3.列出从库
sentinel slaves mymaster

#4.返回给定名字的主服务器的ip及port
sentinel get-master-addr-by-name <master name>

#5.当主库宕机时,再不询问其他sentinel意见的情况下,强制开始一次自动故障迁移
sentinel failover <master name>
#1.登录
[root@152 26380]# redis-cli -p 26380
127.0.0.1:26380> ping
PONG

#2. 查看主库
127.0.0.1:26380> sentinel masters mymaster
(error) ERR Wrong number of arguments for 'sentinel masters'
#2.1 正确命令
127.0.0.1:26380> sentinel masters
1)  1) "name"
    2) "mymaster"
    3) "ip"
    4) "127.0.0.1"
    5) "port"
    6) "6381"
    7) "runid"
    8) "b96ff77c0a8533a91b6d03a9bc0fdec67f29a490"
    9) "flags"
   10) "master"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "13"
   19) "last-ping-reply"
   20) "13"
   21) "down-after-milliseconds"
   22) "5000"
   23) "info-refresh"
   24) "5482"
   25) "role-reported"
   26) "master"
   27) "role-reported-time"
   28) "167273"
   29) "config-epoch"
   30) "1"
   31) "num-slaves"
   32) "2"
   33) "num-other-sentinels"
   34) "0"
   35) "quorum"
   36) "1"
   37) "failover-timeout"
   38) "180000"
   39) "parallel-syncs"
   40) "1"

#3. 查看从库
127.0.0.1:26380> sentinel slaves
(error) ERR Wrong number of arguments for 'sentinel slaves'
#3.1 正确命令
127.0.0.1:26380> sentinel slaves mymaster
1)  1) "name"
    2) "127.0.0.1:6382"
    3) "ip"
    4) "127.0.0.1"
    5) "port"
    6) "6382"
    7) "runid"
    8) "d7e0f5458f9483332757e1da8f1b184d98f310e4"
    9) "flags"
   10) "slave"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "240"
   19) "last-ping-reply"
   20) "240"
   21) "down-after-milliseconds"
   22) "5000"
   23) "info-refresh"
   24) "8982"
   25) "role-reported"
   26) "slave"
   27) "role-reported-time"
   28) "179771"
   29) "master-link-down-time"
   30) "0"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "127.0.0.1"
   35) "master-port"
   36) "6381"
   37) "slave-priority"
   38) "100"
   39) "slave-repl-offset"
   40) "11301"
2)  1) "name"
    2) "127.0.0.1:6380"
    3) "ip"
    4) "127.0.0.1"
    5) "port"
    6) "6380"
    7) "runid"
    8) ""
    9) "flags"
   10) "s_down,slave,disconnected"
   11) "link-pending-commands"
   12) "2"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "179771"
   17) "last-ok-ping-reply"
   18) "179771"
   19) "last-ping-reply"
   20) "179771"
   21) "s-down-time"
   22) "174697"
   23) "down-after-milliseconds"
   24) "5000"
   25) "info-refresh"
   26) "1620568355456"
   27) "role-reported"
   28) "slave"
   29) "role-reported-time"
   30) "179771"
   31) "master-link-down-time"
   32) "0"
   33) "master-link-status"
   34) "err"
   35) "master-host"
   36) "?"
   37) "master-port"
   38) "0"
   39) "slave-priority"
   40) "100"
   41) "slave-repl-offset"
   42) "0"
127.0.0.1:26380>

#4. 查看主库信息
127.0.0.1:26380> sentinel get-master-addr-by-name mymaster
1) "127.0.0.1"
2) "6381"

10. 关闭sentinel命令

redis-cli -p 26380 shutdown

多sentinel配置

#步骤
#1.恢复主从
#2.查看原sentinel配置文件:即26380的配置文件

#3.停掉原sentinel,修改配置文件如下一行,最后一个数字由1改为2
    sentinel monitor mymaster 127.0.0.1 6381 2
#4.添加新sentinel:26381,编写配置文件(注意:主库必须与原sentinel一致!!!)
#5.启动两个sentinel

1. 恢复1主2从

#1.查看端口
[root@152 ~]# netstat -tunlp |grep 638
tcp        0      0 0.0.0.0:26380           0.0.0.0:*               LISTEN      122065/redis-sentin
tcp        0      0 0.0.0.0:6381            0.0.0.0:*               LISTEN      120884/redis-server
tcp        0      0 0.0.0.0:6382            0.0.0.0:*               LISTEN      104140/redis-server
tcp6       0      0 :::26380                :::*                    LISTEN      122065/redis-sentin
tcp6       0      0 :::6381                 :::*                    LISTEN      120884/redis-server
tcp6       0      0 :::6382                 :::*                    LISTEN      104140/redis-server

#2.查看主库从库
[root@152 ~]# redis-cli -a 123 -p 6380 info replication
Could not connect to Redis at 127.0.0.1:6380: Connection refused
[root@152 ~]#
[root@152 ~]#
[root@152 ~]#
[root@152 ~]# redis-cli -a 123 -p 6381 info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6382,state=online,offset=47967,lag=0
master_repl_offset:47967
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:47966
[root@152 ~]#
[root@152 ~]#
[root@152 ~]#
[root@152 ~]#
[root@152 ~]# redis-cli -a 123 -p 6382 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:48233
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0


#3.启动6380
[root@152 ~]# redis-server /data/6380/redis.conf
[root@152 ~]# netstat -tunlp|grep 6380
tcp        0      0 0.0.0.0:6380            0.0.0.0:*               LISTEN      126505/redis-server
tcp        0      0 0.0.0.0:26380           0.0.0.0:*               LISTEN      122065/redis-sentin
tcp6       0      0 :::6380                 :::*                    LISTEN      126505/redis-server
tcp6       0      0 :::26380                :::*                    LISTEN      122065/redis-sentin

#4.查看主从状态
[root@152 ~]# redis-cli -a 123 -p 6382 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:57909
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
[root@152 ~]# redis-cli -a 123 -p 6381 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6382,state=online,offset=58441,lag=0
slave1:ip=127.0.0.1,port=6380,state=online,offset=58441,lag=1
master_repl_offset:58441
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:58440
[root@152 ~]# redis-cli -a 123 -p 6380 info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6381
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:58721
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

#恢复主从完成,6381为主库,6380、6382为从库

2.查看原sentinel配置文件内容

cat /data/26380/sentinel.conf
[root@152 ~]# cat /data/26380/sentinel.conf
port 26380
dir "/data/26380"
sentinel myid a1f244c50eea761c8e847b44f93fb1dc0acf30b8
sentinel monitor mymaster 127.0.0.1 6380 1
sentinel down-after-milliseconds mymaster 5000
# Generated by CONFIG REWRITE
sentinel auth-pass mymaster 123
sentinel config-epoch mymaster 2
sentinel leader-epoch mymaster 1
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-slave mymaster 127.0.0.1 6382
sentinel known-sentinel mymaster 127.0.0.1 26381 0d32c84ab132df1c3031aa9f8498e10d0af5a1a1
sentinel current-epoch 2

3. 修改原配置文件内容

vim /data/26380/sentinel.conf
#将如下一行的最后数字由1改为2
sentinel monitor mymaster 127.0.0.1 6380 2
[root@152 ~]# vim /data/26380/sentinel.conf
[root@152 ~]# cat /data/26380/sentinel.conf
port 26380
dir "/data/26380"
sentinel myid a1f244c50eea761c8e847b44f93fb1dc0acf30b8
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 5000
# Generated by CONFIG REWRITE
sentinel auth-pass mymaster 123
sentinel config-epoch mymaster 2
sentinel leader-epoch mymaster 1
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-slave mymaster 127.0.0.1 6382
sentinel known-sentinel mymaster 127.0.0.1 26381 0d32c84ab132df1c3031aa9f8498e10d0af5a1a1
sentinel current-epoch 2

4. 创建新的sentinel目录

mkdir /data/26381

5. 创建新sentinel配置文件

vim /data/26381/sentinel.conf

port 26381
dir "/data/26381"
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster 123
[root@152 ~]# mkdir /data/26381
[root@152 ~]# vim /data/26381/sentinel.conf
[root@152 ~]# cat /data/26381/sentinel.conf
port 26381
dir "/data/26381"
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster 123

#疑问:配置文件中的主库,要写当前的主库,还是要与之前的26380的主库一致???(再次查看视频,应与现在的26380中一致)

#当然,目前由于主库是6381,所以配置文件中自动修改了
[root@152 ~]# cat /data/26380/sentinel.conf
port 26380
dir "/data/26380"
sentinel myid a1f244c50eea761c8e847b44f93fb1dc0acf30b8
sentinel monitor mymaster 127.0.0.1 6380 1
sentinel down-after-milliseconds mymaster 5000
# Generated by CONFIG REWRITE
sentinel auth-pass mymaster 123
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 1
sentinel known-slave mymaster 127.0.0.1 6382
sentinel known-slave mymaster 127.0.0.1 6381
sentinel current-epoch 1

6. 重启原sentinel

redis-cli -p 26380 shutdown
netstat -tunlp|grep 26380
redis-sentinel /data/26380/sentinel.conf &
[root@152 ~]# redis-cli -p 26380 shutdown
[root@152 ~]# netstat -tunlp|grep 26380
[root@152 ~]# redis-sentinel /data/26380/sentinel.conf &
[1] 85671
[root@152 ~]# 85671:X 10 May 21:01:49.305 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.2.12 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26380
 |    `-._   `._    /     _.-'    |     PID: 85671
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

85671:X 10 May 21:01:49.339 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
85671:X 10 May 21:01:49.339 # Sentinel ID is a1f244c50eea761c8e847b44f93fb1dc0acf30b8
85671:X 10 May 21:01:49.339 # +monitor master mymaster 127.0.0.1 6380 quorum 2

[root@152 ~]#

7. 启动新sentinel

redis-sentinel /data/26381/sentinel.conf &

#多个sentinel启动后,自动沟通,不管访问哪个sentinel,都能够应用到后端节点了
[root@152 ~]# redis-sentinel /data/26381/sentinel.conf &
[2] 85945
[root@152 ~]# 85945:X 10 May 21:02:35.018 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.2.12 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26381
 |    `-._   `._    /     _.-'    |     PID: 85945
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

85945:X 10 May 21:02:35.043 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
85945:X 10 May 21:02:35.043 # Sentinel ID is 0d32c84ab132df1c3031aa9f8498e10d0af5a1a1
85945:X 10 May 21:02:35.043 # +monitor master mymaster 127.0.0.1 6380 quorum 2

[root@152 ~]#

8. 新sentinel管理查看

#登录sentinel管理端口
redis-cli -p 26381

#1.查看连接状态
ping

#2.列出所有被监视的主服务器
sentinel masters  #加不加mymaster?待验证 (已验证,不可加)

#3.列出从库
sentinel slaves mymaster

#4.返回给定名字的主服务器的ip及port
sentinel get-master-addr-by-name <master name>

#5.当主库宕机时,再不询问其他sentinel意见的情况下,强制开始一次自动故障迁移
sentinel failover <master name>
[root@152 ~]# redis-cli -p 26381
127.0.0.1:26381> ping
PONG
127.0.0.1:26381> sentinel masters
1)  1) "name"
    2) "mymaster"
    3) "ip"
    4) "127.0.0.1"
    5) "port"
    6) "6381"
    7) "runid"
    8) "b96ff77c0a8533a91b6d03a9bc0fdec67f29a490"
    9) "flags"
   10) "master"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "682"
   19) "last-ping-reply"
   20) "682"
   21) "down-after-milliseconds"
   22) "5000"
   23) "info-refresh"
   24) "4079"
   25) "role-reported"
   26) "master"
   27) "role-reported-time"
   28) "134600"
   29) "config-epoch"
   30) "1"
   31) "num-slaves"
   32) "2"
   33) "num-other-sentinels"
   34) "1"
   35) "quorum"
   36) "2"
   37) "failover-timeout"
   38) "180000"
   39) "parallel-syncs"
   40) "1"
127.0.0.1:26381> sentinel slaves mymaster
1)  1) "name"
    2) "127.0.0.1:6382"
    3) "ip"
    4) "127.0.0.1"
    5) "port"
    6) "6382"
    7) "runid"
    8) "d7e0f5458f9483332757e1da8f1b184d98f310e4"
    9) "flags"
   10) "slave"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "787"
   19) "last-ping-reply"
   20) "787"
   21) "down-after-milliseconds"
   22) "5000"
   23) "info-refresh"
   24) "6444"
   25) "role-reported"
   26) "slave"
   27) "role-reported-time"
   28) "147136"
   29) "master-link-down-time"
   30) "0"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "127.0.0.1"
   35) "master-port"
   36) "6381"
   37) "slave-priority"
   38) "100"
   39) "slave-repl-offset"
   40) "93434"
2)  1) "name"
    2) "127.0.0.1:6380"
    3) "ip"
    4) "127.0.0.1"
    5) "port"
    6) "6380"
    7) "runid"
    8) "42e0130727f17bdcb8a82c5b1fd9386a162789f6"
    9) "flags"
   10) "slave"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "787"
   19) "last-ping-reply"
   20) "787"
   21) "down-after-milliseconds"
   22) "5000"
   23) "info-refresh"
   24) "6540"
   25) "role-reported"
   26) "slave"
   27) "role-reported-time"
   28) "147134"
   29) "master-link-down-time"
   30) "0"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "127.0.0.1"
   35) "master-port"
   36) "6381"
   37) "slave-priority"
   38) "100"
   39) "slave-repl-offset"
   40) "93434"
127.0.0.1:26381> sentinel get-master-addr-by-name mymaster
1) "127.0.0.1"
2) "6381"
127.0.0.1:26381> sentinel failover mymaster
OK
127.0.0.1:26381> sentinel get-master-addr-by-name mymaster
1) "127.0.0.1"
2) "6380"
127.0.0.1:26381> quit
[root@152 ~]# cat /data/26380/sentinel.conf
port 26380
dir "/data/26380"
sentinel myid a1f244c50eea761c8e847b44f93fb1dc0acf30b8
sentinel monitor mymaster 127.0.0.1 6380 1
sentinel down-after-milliseconds mymaster 5000
# Generated by CONFIG REWRITE
sentinel auth-pass mymaster 123
sentinel config-epoch mymaster 2
sentinel leader-epoch mymaster 1
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-slave mymaster 127.0.0.1 6382
sentinel known-sentinel mymaster 127.0.0.1 26381 0d32c84ab132df1c3031aa9f8498e10d0af5a1a1
sentinel current-epoch 2
[root@152 ~]# cat /data/26381/sentinel.conf
port 26381
dir "/data/26381"
sentinel myid 0d32c84ab132df1c3031aa9f8498e10d0af5a1a1
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 5000
# Generated by CONFIG REWRITE
sentinel auth-pass mymaster 123
sentinel config-epoch mymaster 2
sentinel leader-epoch mymaster 2
sentinel known-slave mymaster 127.0.0.1 6382
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-sentinel mymaster 127.0.0.1 26380 a1f244c50eea761c8e847b44f93fb1dc0acf30b8
sentinel current-epoch 2

9. 疑问:

#如何查看两个sentinel之间的联系?怎么看出自动连接了?

#貌似是看sentinel启动时的最后几行
128277:X 10 May 08:19:50.609 # +monitor master mymaster 127.0.0.1 6381 quorum 2
128277:X 10 May 08:19:50.611 * +slave slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6381
128277:X 10 May 08:19:50.613 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
128277:X 10 May 08:19:51.417 * +sentinel sentinel a1f244c50eea761c8e847b44f93fb1dc0acf30b8 127.0.0.1 26380 @ mymaster 127.0.0.1 6381
128277:X 10 May 08:19:51.419 # +new-epoch 1

最后更新: 2022-02-20 08:44:07