bind
bind 默认情况下,Sentinel不能从不同的接口访问localhost,(默认只监听127.0.0.1),可以使用'bind'指令绑定到网络列表接口,或者使用“protected-mode no”禁用保护模式
bind 127.0.0.1 192.168.1.1
或者
protected-mode no
port
port 26379 #指定监听端口
dir
工作目录
默认
dir /tmp
sentinel monitor
sentinel monitor <master-name> <ip> <redis-port> <quorum>
指定sentinel监控某个master。并且如果master进入O_DOWN 状态,至少需要<quorum> 个 sentinel 同意。
注意,无论ODOWN quorum 数是多少,一个sentinel需要被大多数已知的sentinel选举才能开始故障迁移,所以不能在少数sentinel选举的情况下执行故障切换。
slave 是自动发现的,因此不需要在配置文件中明确指定。sentinel发现slave后会自动重写配置文件。需要注意的是,当一个slave提升为master时,sentinel配置也会被重写
sentinel auth-pass
sentinel auth-pass <master-name> <password>
设置用于与主服务器和从服务器进行身份验证的密码。如果在Redis实例中设置了要监视的密码,则很有用。
注意,master的密码也用于slave,所以如果你想能够使用Sentinel监视这些实例,在master和slave实例中设置不同的密码是行不通的。必须要保证每台个实例的密码都是相同的,因为slave可以提升为master,如果每次提升都需要手动改密码当然很麻烦。
当然,可以运行没有启用身份验证的Redis实例与需要身份验证的Redis实例(只要所有需要密码的实例的密码设置相同),因为AUTH命令将在关闭身份验证的Redis实例中不起作用。
sentinel down-after-milliseconds
sentinel down-after-milliseconds <master-name> <milliseconds>
多少毫秒内,master 不可达就会被sentinel 认为是进入了 S_DOWN 状态。如果服务器在给定的毫秒数之内,没有返回Sentinel发送的PING命令的回复,或者返回一个错误,那么Sentinel将这个服务器标记为主观下线(subjectively down,简称SDOWN)。默认是30s
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs
sentinel parallel-syncs <master-name> <numslaves>
sentinel failover-timeout
sentinel failover-timeout <master-name> <milliseconds>
如果在多少毫秒内没有把宕掉的那台Master恢复,那Sentinel认为这是一次真正的宕机。在下一次选取时排除该宕掉的Master作为可用的节点,然后等待一定的设定值的毫秒数后再来探测该节点是否恢复,如果恢复就把它作为一台Slave加入Sentinel监测节点群,并在下一次切换时为他分配一个”选取号”。默认是3分钟
sentinel failover-timeout mymaster 180000
sentinel notification-script
指定Sentinel检测到该监控的Redis实例failover时调用的报警脚本。脚本被允许执行的最大时间为60秒,超过这个时间脚本会被kill。该配置项可选,但线上系统建议配置。这里的通知脚本简单的记录一下failover事件
sentinel notification-script <master-name> <script-path>
sentinel notification-script redis_master /usr/local/redis-3.2.9/bin/notify.sh
该脚本可以用于发送告警
sentinel client-reconfig-script
指定Sentinel failover之后重配置客户端时执行的脚本,该配置项可选,但线上系统建议配置。redis 会给这个脚本传7个参数:
<master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
sentinel client-reconfig-script <master-name> <script-path>
sentinel client-reconfig-script redis_master /usr/local/redis-3.2.9/bin/reconfig.sh
该脚本可以通过接收的参数来进行配置,如在不使用keepalived的情况下,当进行failover后,则可以配置VIP(删除原master的VIP,在新master上配置VIP)
- 7 个参数解释
<master-name> 表示 master名字
<role> 表示的是 每个redis实力的角色,如leader、observer
<state> 表示状态
<from-ip> 原来的redis master
<from-port>
<to-ip> 故障迁移后的redis master
<to-port>
网友评论