lvs 监控状态检查
#!/bin/bash
# Author: create by Linux_Boy
# Description: lvs 监控状态检查
VIP=192.168.138.125
PORT=80
RIP=(
192.168.138.21
192.168.138.22
)
while true
do
for ip in $RIP
do
PORT_COUNT=`nmap $ip -p $PORT|grep open|wc -l`
if [[ $PORT_COUNT -ne 1 ]]; then
# 判断RIP是否存在 ipvsadm -Ln,若存在,则删除RIP
if [[ `ipvsadm -Ln|grep $ip|wc -l` -ne 0 ]]; then
ipvsadm -d -t $VIP:$PORT -r $ip:$PORT
fi
else
# 如果RIP业务正常,但是ipvsadm -Ln不存在,则添加RIP
if [[ `ipvsadm -Ln|grep $ip|wc -l` -eq 0 ]]; then
ipvsadm -a -t $VIP:$PORT -r $ip:$PORT -g -w 1
fi
fi
done
sleep 10
done
# 脚本缺点
# 有时候服务假死但是端口依然存在,此时服务已不能提供正常服务,因此不建议使用nmap命令检查,建议使用curl、wget命令健康检查,如心跳
[root@proxy ~]# cat checklvs.sh #!/bin/bash VIP=192.168.220.151 RIP=(192.168.220.55 192.168.220.56) PORT=80 while : do for IP in $RIP do curl -s http://$IP &>/dev/null if [ $? -eq 0 ];then ipvsadm -Ln|grep -q $IP || ipvsadm -a -t $VIP:$PORT -r $IP:$PORT else ipvsadm -Ln|grep -q $IP && ipvsadm -d -t $VIP:$PORT -r $IP:$PORT fi done sleep 3 done
浙公网安备 33010602011771号