LVS 건강 검진
프로필:
스 크 립 트 가 RS 의 http 서비스 가 끊 겼 을 때 LVS 에서 RS 를 자동 으로 제거 합 니 다.모든 RS 의 http 서비스 가 끊 겼 을 때 LVS 에서 모든 RS 를 제거 하고 LVS 스케줄 러 에 있 는 http 서 비 스 를 LVS 에 추가 해 경고 페이지 로 한다.
스 크 립 트 가 RS 의 http 서비스 활성 화 를 감지 하면 LVS 에 자동 으로 추가 되 며, 스케줄 러 자체 가 LVS 에 존재 하면 삭 제 됩 니 다.
이 스 크 립 트 는 본인 의 테스트 를 거 쳐 요구 에 완전히 도달 했다.
다음은 스 크 립 트:
#!/bin/bash
#
rs=("152.168.1.12" "152.168.1.13")
vip="152.168.1.10"
port=80
logfile="/usr/local/scripts/lvs.log"
function check_alldown {
# rs ,
# rs
# rs ,
for www in `echo ${rs[*]}`
do
curl --connect-timeout 1 http://$www &> /dev/null
if [ $? -eq 0 ]
then
echo 0
exit 0
fi
done
echo 100
}
function lvs_add {
ipvsadm -a -t $vip:$port -r $1
echo "add rs host:$1 to lvs"
}
function lvs_rm {
ipvsadm -d -t $vip:$port -r $1
echo "remove rs host:$1 to lvs"
}
function lvs_local {
# rs , lvs 127.0.0.1
# rs , lvs 127.0.0.1
all_down=`check_alldown`
rip=$(ipvsadm -L -n | gawk '/127.0.0.1/')
if [ $all_down -eq 100 ]
then
if [ "$rip" = "" ]
then
echo "`date +%F:%H-%M-%S` all rs host is down!" >> $logfile
lvs_add "127.0.0.1"
fi
else
if [ $all_down -eq 0 ] && [ ! "$rip" = "" ]
then
echo "`date +%F:%H-%M-%S` one rs host is up,remove local rs host!" >> $logfile
lvs_rm "127.0.0.1"
fi
fi
}
function lvs_rs {
# rs , lvs
# rs , lvs
lvs_local
for www in `echo ${rs[*]}`
do
rip=$(ipvsadm -L -n | gawk "/$www/")
curl --connect-timeout 1 http://$www &> /dev/null
if [ $? -eq 0 ]
then
if [ "$rip" = "" ]
then
echo "`date +%F:%H-%M-%S` rs host:$www is up!" >> $logfile
lvs_add "$www"
fi
else
if [ ! "$rip" = "" ]
then
echo "`date +%F:%H-%M-%S` rs host:$www is down!" >> $logfile
lvs_rm "$www"
fi
fi
done
}
function lvs_monitor {
while true
do
echo "check lvs rs health!"
lvs_rs
sleep 1
done
}
lvs_monitor
이상 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
「사쿠라의 클라우드」의 로드 밸런스 대상 서버 작성용 스타트 업 스크립트「사쿠라의 클라우드」로 다음과 같은 구성을 만들려고 했습니다. VPC 라우터의 글로벌 IP 주소를 로드 밸런서의 VIP에 NAT하여 웹 서버 2대에 로드 밸런싱시키는 구성입니다. 여기가로드 밸런서의 매뉴얼입니다. 배...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.