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

 

  

 

posted @ 2021-10-16 15:36  Linux_Boy  阅读(430)  评论(0)    收藏  举报