使用keepalived实现haproxy高可用
环境:ubuntu16.04
两台服务器:192.168.199.200,192.168.199.201
VIP:192.168.199.123
两台机器都执行以下命令
1.安装keepalived
# 修改网络配置,添加
$ sudo vi /etc/sysctl.conf
...
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
...
# 网络配置生效
$ sudo sysctl -p
# 安装依赖及keepalived(24版本会出问题,19的没有问题)
$ sudo apt install libssl-dev openssl libpopt-dev
$ sudo apt install keepalived=1:1.2.19-1
2.配置keepalived.conf
$ sudo vi /etc/keepalived/keepalived.conf
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_haproxy {
script "/home/test/chk.sh"
interval 2
}
vrrp_instance VI_1 {
state BACKUP
nopreempt
interface enp0s31f6
track_interface {
lo
}
virtual_router_id 51
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.199.123
}
track_script {
chk_haproxy
}
}
3.编辑检测脚本
$ sudo vi ~/chk.sh
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
echo "yes"
/etc/init.d/haproxy restart
fi
4.启动keepalived
$ sudo systemctl restart keepalived
# 查看是否成功,若成功应该有四个进程
$ ps -ef | grep keepalived
# 查看虚拟IP是否绑定到物理网卡上
$ ip a
# 查看keepalived系统日志
$ cat /var/log/syslog | grep Keepalived
参考资料:
1.http://www.cnblogs.com/guoximing/p/9390269.html
2.https://www.cnblogs.com/phpstudy2015-6/p/6706465.html#_label7
3.https://blog.csdn.net/huoyuanshen/article/details/68483188
4.https://blog.csdn.net/qq_27078095/article/details/53868603?locationNum=6&fps=1