! Configuration File for keepalived

global_defs {
   # 路由标识，主从保持一致
   router_id MYSQL_MHA
}

#检测mysql服务是否在运行。有很多方式，比如进程，用脚本检测等等
vrrp_script chk_mysql_port {
    # 这里通过脚本监测
    script "{$SERVER_PATH}/scripts/chk.sh mysql"
    # 脚本执行间隔，每2s检测一次
    interval 2
    # 脚本结果导致的优先级变更，检测失败（脚本返回非0）则优先级 -5
    weight –5
    # 检测连续2次失败才算确定是真失败。会用weight减少优先级（1-255之间）
    fall 2
    # 检测1次成功就算成功。但不修改优先级
    rise 1
}

vrrp_instance VI_1 {
    # 这里所有节点定义为BACKUP/MASTER
    state BACKUP
    # 指定虚拟ip的网卡(可能需要手动查看)
    # route -n | grep ^0.0.0.0 | awk '{print $8}'
    interface {$ETH_XX}
    # 路由器标识，MASTER和BACKUP必须是一致的
    virtual_router_id 51
    # 定义优先级，数字越大，优先级越高，在同一个vrrp_instance下，MASTER的优先级必须大于BACKUP的优先级
    priority 99
    # 通知间隔秒数（心跳频率）
    advert_int 1
    # 不抢占模式，在优先级高的机器上设置即可，优先级低的机器可不设置
    nopreempt
    # 认证信息配置,主从服务器保持一致
    authentication {   
        auth_type PASS
        auth_pass 1111     
    }
    virtual_ipaddress {
        # 虚拟IP(VIP) | 根据情况设置
        192.168.10.10
    }
      
    track_script {
       chk_mysql_port
    }
}