当前位置:首页 > 资讯 > 正文

使用Keepalived实现Haproxy主备切换高可用

使用Keepalived实现Haproxy主备切换高可用

 

1.案例概述
Keepalived可提供虚拟路由功能以及health-check功能,实现双机热备份高可用功能,来避免Haproxy单点故障问题,一台为主的Haproxy服务器,一台为备份Haproxy服务器,对为表现为一个虚拟IP,当主服务器出现故障时,备份服务就会接管虚拟IP,继续提供服务,因为keepalived没有配置真实服务器器所以不能做到IP漂移所以我们需要编写一个脚本让keepalived实现IP漂移并监控haproxy的状态,来实现haproxy服务器的高可用性能。

(1.1)修改haproxy的keepalived配置文件 /etc/keepalived/keepalived.conf

global_defs {
router_id LVS_HA_TEST_R1

}
global_defs {
router_id LVS_HA_TEST_R1

}
vrrp_script check_haproxy { //定义Haproxy的检测脚本路径
script “/etc/keepalived/check_haproxy.sh”
interval 2

}
vrrp_instance VI_1 {
state MASTER //为主服务器
interface ens33
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress { //绑定VIP地址
172.16.16.172
}
track_script {
check_haproxy //追踪脚本状态
}
}

编写监控脚本
root@kgc3 ~]# vim /etc/keepalived/check_haproxy.sh
加入下面内容
#!/bin/bash
#HAPROXY down
A=
if [ $A -eq 0 ]
then
systemctl start haproxy
if [ -eq 0 ]
then
killall -9 haproxy
echo “HAPROXY down” | mail -s “haproxy” 1665547553@qq.com
sleep 3600
fi

fi
添加执行权限:
[root@kgc3 ~]# chmod +x /etc/keepalived/check_haproxy.sh

重启haproxy主服务器上的keepalived服务和haproxy服务:
[root@kgc3 ~]# systemctl restart keepalived
[root@kgc3 ~]# systemctl restart haproxy
主服务器配置完成

然后重主服务器上拷贝配置文件过去:
[root@kgc3 ~]#
scp /etc/keepalived/keepalived.conf root@172.16.16.200:/etc/keepalived/keepalived.conf
root@172.16.16.200’s password:
输入密码即可:

[root@kgcc keepalived]# vim /etc/keepalived/keepalived.conf

global_defs {
router_id LVS_HA_TEST_R1

}
vrrp_script check_haproxy {
script “/etc/keepalived/check_haproxy.sh”
interval 2

}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 1
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.16.16.172
}
track_script {
check_haproxy
}

添加备份haproxy服务器的检测脚本如下:
[root@kgcc keepalived]# vim /etc/keepalived/check_haproxy.sh
#!/bin/bash
#HAPROXY down
A=
if [ $A -eq 0 ]
then
systemctl start haproxy
if [ -eq 0 ]
then
killall -9 haproxy
echo “HAPROXY down” | mail -s “haproxy” 1665547553@qq.com
sleep 3600
fi

fi

可以看到已经切换成功了。

最新文章