LVS節點健康檢查及管理腳本
在LVS負載均衡主節點上,模擬keepalived健康檢查功能管理LVS節點,當節點掛掉從服務器池中剔除,好了再加到服務器池中來。
工具:yum install -y ipvsadm
web03:10.0.0.17
web04:10.0.0.18
VIP:10.0.0.13
#!/bin/bash
web3() {
curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" 10.0.0.17
}
web4() {
curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" 10.0.0.18
}
ipvs_web3=$(ipvsadm -Ln |grep 10.0.0.17 |wc -l)
ipvs_web4=$(ipvsadm -Ln |grep 10.0.0.18 |wc -l)
checknum=1
checkloop=4
if [ `web3` -eq 200 ];then
if [ $ipvs_web3 -eq 0 ] ;then
ipvsadm -a -t 10.0.0.13:80 -r 10.0.0.17:80 -g -w 1
if [ $? -eq 0 ];then
echo "web03上線"
fi
else
echo "web03正常"
fi
else
if [ $ipvs_web3 -eq 1 ] ;then
while [ $checknum -le $checkloop ];do
if [ `web3` -eq 200 ];then
break
else
let checknum++
fi
if [ $checknum -eq 3 ] ;then
ipvsadm -d -t 10.0.0.13:80 -r 10.0.0.17:80
if [ $? -eq 0 ];then
echo "web03下線"
fi
fi
sleep 1
done
fi
fi
if [ `web4` -eq 200 ];then
if [ $ipvs_web4 -eq 0 ] ;then
ipvsadm -a -t 10.0.0.13:80 -r 10.0.0.18:80 -g -w 1
if [ $? -eq 0 ];then
echo "web04上線"
fi
else
echo "web04正常"
fi
else
if [ $ipvs_web4 -eq 1 ] ;then
while [ $checknum -le $checkloop ];do
if [ `web4` -eq 200 ];then
break
else
let checknum++
fi
if [ $checknum -eq 3 ] ;then
ipvsadm -d -t 10.0.0.13:80 -r 10.0.0.18:80
if [ $? -eq 0 ];then
echo "web04下線"
fi
fi
sleep 1
done
fi
fi
程序還有點bug,不過能用ヽ( ̄▽ ̄)?
日期:2018-03-30
LVS節點健康檢查及管理腳本