redis学习-10 Sentinel运维监控

1、读取运行时态的配置信息

config get [参数]

2、运行时手动更改master-slave

(1)修改一台slave(设为A)为new master

命令该服务不做其他redis服务的slave

命令: slaveof no one

(2)修改其slave-read-only为 no

命令:config get slave-read-only

      config set slave-read-only  no 

(3)其他的slave再指向new master A

命令该服务为new master A的slave

命令格式 slaveof IP port

3、原理

每个 Sentinel 以每秒钟一次的频率向它所知的 Master,Slave 以及其他 Sentinel 实例发送一个 PING 命令;
如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线;
如果一个 Master 被标记为主观下线,则正在监视这个 Master 的所有 Sentinel 要以每秒一次的频率确认 Master 的确进入了主观下线状态;
当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认 Master 的确进入了主观下线状态,则 Master 会被标记为客观下线;
在一般情况下, 每个 Sentinel 会以每 10 秒一次的频率向它已知的所有 Master,Slave 发送 INFO 命令;
当 Master 被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒一次;
若没有足够数量的 Sentinel 同意 Master 已经下线, Master 的客观下线状态就会被移除;
若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除

4、sentinel监控配置

sentinel monitor def_master 127.0.0.1 6379 2 #监视谁(数字2表示连续监控2次连不上认为“失效”)

sentinel auth-pass def_master 012_345^678-90 #master是否要密码

sentinel down-after-milliseconds def_master 30000 #master被当前sentinel实例认定为“失效”的间隔时间(默认为30秒 )

sentinel can-failover def_master yes #如果监测到master失效是否允许将slave改成master

注:通常有多个sentinel监测master,只允许一个具有监视和修改的作用,其他的只负责监视

sentinel parallel-syncs def_master 1 #当master宕机后,数字1 表示同时把一台slave指向新的master

注:def_master为自己定义的名字,什么名字都可以,只要保持一致就ok

5、启动sentinel

./redis-server /etc/sentinel.conf --sentinel

6、设置sentinel连接的优先级

在slave的config文件中slave-priority N 配置(数字越小越靠前,优先切换成master)

7、功能

监控——redis实例是否正常运行
通知——通知应用错误信息
主从切换——某个master死掉,选择一个slave升级维master,修改其他slave的slaveof关系,更新client连接
提供配置信息——client通过sentinel获取redis地址,并在主从切换时更新地址。
8、问题总结

最初sentinel切换一直不成功,一直没找到原因,一个偶然的尝试找到原因

sentinel monitor def_master 127.0.0.1 6379 2(配置文件的数字2并没有改为数字1,因为我只有一个哨兵监测master)

参考以下:

一、原理

每个 Sentinel 以每秒钟一次的频率向它所知的 Master,Slave 以及其他 Sentinel 实例发送一个 PING 命令;
如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds
选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线; 如果一个 Master 被标记为主观下线,则正在监视这个 Master
的所有 Sentinel 要以每秒一次的频率确认 Master 的确进入了主观下线状态; 当有足够数量的
Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认 Master 的确进入了主观下线状态,则 Master
会被标记为客观下线; 在一般情况下, 每个 Sentinel 会以每 10 秒一次的频率向它已知的所有 Master,Slave 发送
INFO 命令; 当 Master 被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave
发送 INFO 命令的频率会从 10 秒一次改为每秒一次; 若没有足够数量的 Sentinel 同意 Master 已经下线, Master
的客观下线状态就会被移除; 若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master
的主观下线状态就会被移除。
二、功能

监控——redis实例是否正常运行 通知——通知应用错误信息
主从切换——某个master死掉,选择一个slave升级维master,修改其他slave的slaveof关系,更新client连接
提供配置信息——client通过sentinel获取redis地址,并在主从切换时更新地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值