美文网首页
四、sentinel 配置详解

四、sentinel 配置详解

作者: 037251a7c483 | 来源:发表于2017-08-22 09:38 被阅读272次

    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>
    

    相关文章

      网友评论

          本文标题:四、sentinel 配置详解

          本文链接:https://www.haomeiwen.com/subject/ckoycxtx.html