实现LVS后端服务健康状态检查-创新互联

#!/bin/bash

目前成都创新互联公司已为近1000家的企业提供了网站建设、域名、网站空间、网站托管、服务器托管、企业网站设计、青岛网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

#

VIP=172.169.18.150

CPOPT=80  #集群端口

FALI_BACK=127.0.0.1  #备用

RS=("172.169.18.240" "172.169.18.232")  #集群主机

declare -a RSSTATUS

#RSTATUS=("1" "1")  #状态码

RW=("2" "1")  #权重

RPORT=80  #RIP端口

TYPE=g

CHKLOOP=3  #检查次数

LOG=/var/log/ipvsadmlog.log

addrs() {

ipvsadm -a -t $VIP:$CPOPT -r $1:$RPORT -$TYPE -w $2

[ $? -eq 0 ] && return 0 || return 1

}

delrs() {

ipvsadm -d -t $VIP:$CPOPT -r $1:$RPORT

[ $? -eq 0 ] && return 0 || return 1

}

checkrs() {

local I=1

while [ $I -le $CHKLOOP ]; do

if curl --connect-timeout 1 http://$1 &> /dev/null; then

return 0

fi

let I++

done

return 1

}

inststatus() {

local I

local COUNT=0;

for I in ${RS[*]}; do

#if checkrs $I; then

if ipvsadm -L -n | grep "$I:$RPORT" && > /dev/null; then

RSSTATUS[$COUNT]=1

else

RSSTATUS[$COUNT]=0

fi

let COUNT++

done

}

inststatus

while :; do

let COUNT=0

for I in ${RS[*]}; do

if checkrs $I; then

if [ ${RSSTATUS[$COUNT]} -eq 0 ]; then

addrs $I ${RW[$COUNT]}

[ $? -eq 0 ] && RSSTATUS[$COUNT]=1 && echo "`date +'%F %H:%M:%S'`,$I is back." >> $LOG

fi

else

if [ ${RSSTATUS[$COUNT]} -eq 1 ]; then

delrs $I

[ $? -eq 0 ] && RSSTATUS[$COUNT]=0 && echo "`date +'%F %H:%M:%S'`,$I is gone." >> $LOG

fi

fi

let COUNT++

done

sleep 10

done

#检查测试服务

# bash -x ipvsadm.sh

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:实现LVS后端服务健康状态检查-创新互联
转载来于:http://hbruida.cn/article/cssehi.html