Keepalived + haproxy双机高可用方案
上一篇文章已经讲到了keepalived实现双机热备,且遗留了一个问题
master的网络不通的时候,可以立即切换到slave,但是如果只是master上的应用出现问题的时候,是不会
主动切换的。
上篇文章地址:Keepalived 实现双机热备(一)
那么这篇文章主要讨论解决这个问题
我的方案是:
写一个脚本,用于监控haproxy,当然,keepalive支持脚本扩展
当master haproxy出现问题时,重启haproxy,如果重启不成功,则停掉master上面的keepalived
也可以不重启haproxy,直接停掉keepalived,让backup服务器接管master
这样haproxy出现故障,网站依然可用
系统分布如下:
ha主机 192.168.1.227:80
ha备机 192.168.1.246
keepalived 主机 192.168.1.227
keepalived备机 192.168.1.246
web1 http://192.168.1.226:8081/login
web2 http://192.168.1.246:8888/login
虚拟ip 192.168.1.99
keepalive master 和 backup 配置
vi /etc/keepalived/keepalived.conf
增加红色部分
! Configuration File for keepalived
#定义检查脚本
vrrp_script check_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 2
}
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.99
}
#执行检查脚本
track_script {
check_haproxy
}
}
编辑检查haproxy脚本
/etc/keepalived/check_haproxy.sh
#!/bin/bash A=`ps -C haproxy --no-header |wc -l` if [ $A -eq 0 ];then /etc/init.d/keepalived stop fi
增加执行权限,注意别忘记了
chmod 777 check_haproxy.sh
重启keepalived即可
作者:风过无痕-唐
出处:http://www.cnblogs.com/tangyanbo/
本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。欢迎加QQ讨论群
出处:http://www.cnblogs.com/tangyanbo/
本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。欢迎加QQ讨论群