使用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