一.常用命令
sentinel的基本状态信息INFO
列出所有被监视的主服务器,以及这些主服务器的当前状态SENTINEL masters
列出指定主redis的从节点状态情况SENTINEL slaves <master-name>
列出指定主redis的监控哨兵信息,不包含他自己SENTINEL sentinels <master-name>
返回给定名字的主服务器的 IP 地址和端口号SENTINEL get-master-addr-by-name <master-name>
重置所有名字和给定模式 pattern 相匹配的主服务器。重置操作清除主服务器目前的所有状态,包括正在执行中的故障转移,并移除目前已经发现和关联的,主服务器的所有从服务器和 Sentinel 。SENTINEL <master-name>
当主服务器失效时 在不询问其他 Sentinel 意见的情况下,强制开始一次自动故障迁移,但是它会给其他sentinel发送一个最新的配置,其他sentinel会根据这个配置进行更新SENTINEL failover <master-name>
检查当前在线的哨兵节点。如果一共有5个节点,设置4票,但检查后只有3节点在线,那一直无法进行监控切换sentinel ckquorum <master-name>
将配置强制刷新到本地文件sentinel flushconfig
取消当前哨兵对某主节点的监控sentinel remove <master name>
二.配置文件
#<master-name>是主节点的名称,也就是可以同时监控多组主从
#主节点的地址和端口
#quorum是票数,需要几个哨兵节点认为有问题才进行操作
sentinel monitor <master-name> <ip> <port> <quorum>
#哨兵每隔一段时间就检测主节点是否存活,当超过<times>指定的时间,则认为主节点死掉
#虽然看似是对主控制,其实对从节点,其他哨兵节点也是这个参数控制
#默认30000,单位毫秒
sentinel down-after-milliseconds <master-name> <times>
#当主节点挂掉,新的主节点接替时,从节点会向新的主节点发起复制操作。这个参数控制同时发起复制操作的从节点个数。
#如果有一个新主,3个从,而<nums>设置为1。从节点会轮询复制
sentinel parallel-syncs <master-name> <nums>
#选出合适从节点,切换从为主,让其他从复制新主,让上线的坏主复制新主
#以上4部每个阶段故障时间超过<times>则认为失败
sentinel failover-timeout <master-name> <times>
#如果主节点有密码,需要配置密码,防止无法获取主节点信息
sentinel auth-pass <master-name> <password>
#当有重要事件,例如客观下线,主观下线时,将执行指定的脚本,并将一些相关参数传进去,可以发送邮件来通知
sentinel notification-script <master-name> <script-path>
#当故障转移结束后触发的脚本,并将一些相关参数传进去
sentinel client-reconfig-script <master-name> <script-path>
#脚本必须可以执行,开头必须有 #!/bin/bash 脚本头
#脚本最大执行时间不能超过一分钟,超过将杀死脚本
#如果shell脚本以exit 1结束,那么脚本稍后重试执行。如果以exit 2或者更高的值结束,那么脚本不会重试。正常返回值是exit 0
#脚本将传入如下参数
#<master-name> 主节点名称
#<role> 当前哨兵的角色是leader还是observer
#<state> 状态,是关闭还是启动
#<from-ip> 原主节点的ip
#<from-port> 原主节点的端口
#<to-ip> 新主节点的ip
#<to-port> 新主节点的端口