! 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 } }