sentinel运维监控

手动切换redis服务器的主从角色:

步骤一:

配置一台master主服务器,两台slave服务器,两台slave都指向master(主从配置省略)


步骤二:

将master进程关闭,方法:可以直接kill掉,也可以在其客户端执行shutdown命令


步骤三:

将slave1由从服务器切换为主服务器

进入slave1客户端,

输入info replication

# Replication
role:slave #扮演slave角色
master_host:localhost
master_port:6379
master_link_status:down                  #主服务停止运行
master_last_io_seconds_ago:-1
master_sync_in_progress:0
master_link_down_since_seconds:21
slave_priority:100
slave_read_only:1
connected_slaves:0


输入:

slaveof no one

info replication

# Replication
role:master
connected_slaves:0

#说明成功从slave角色切换到master


config set  slave-read-only no

#修改配置参数,将服务器自身修改为可写状态


config get slave-read-only

1) "slave-read-only"
2) "yes"


步骤四:

info replication

# Replication
role:slave
master_host:localhost
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
master_link_down_since_seconds:873
slave_priority:100
slave_read_only:1
connected_slaves:0


#将slave2的master切换到locahost 6380服务器

slaveof localhost 6380


info replication
# Replication
role:slave
master_host:localhost
master_port:6380
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_priority:100
slave_read_only:1
connected_slaves:0


运用sentinel工具自动的切换服务器角色:

sentinel运维监控_第1张图片


Sentinel不断与master通信,获取master的slave信息.
监听master与slave的状态
如果某slave失效,直接通知master去除该slave.

如果master失效,,是按照slave优先级(可配置参数:slave-priority ), 选取1个slave做 new master
,把其他slave--> new master


疑问: sentinel与master通信,如果某次因为master IO操作频繁,导致超时,
此时,认为master失效,很武断.
解决: sentnel允许多个实例看守1个master, 当N台(N可设置)sentinel都认为master失效,才正式失效.
sentinel monitor mymaster 127.0.0.1 6379 2  #2为两个sentinel实例监听master状态


将redis解压包中的sentinel配置文件复制一份
Sentinel选项配置
port 26379 # 端口
sentinel monitor mymaster 127.0.0.1 6379 2 ,
给主机起的名字(不重即可), 
当2个sentinel实例都认为master失效时,正式失效


sentinel down-after-milliseconds mymaster 30000     #多少毫秒后连接不到master认为断开


sentinel can-failover mymaster yes     #是否允许sentinel修改slave->master. 如为no,则只能监控,无权修改./


sentinel client-reconfig-script mymaster /var/redis/reconfig.sh   # 在重新配置new master,new slave过程,可以触发的脚本


sentinel parallel-syncs mymaster 1     #一次性修改几个slave指向新的new master

注:如果多台slave同时指向一台master,那么master需要为多台slaved  dump多份的rdb,然后aof同步(redis主从切换的弊端




你可能感兴趣的:(sentinel运维监控)