LVSLVS集群RealServer高可用健康监测

Posted Sonder.J

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVSLVS集群RealServer高可用健康监测相关的知识,希望对你有一定的参考价值。

RealServer高可用健康监测

 

 1 #!/bin/bash
 2 #
 3 VIP=192.168.43.200
 4 CPORT=80
 5 FAIL_BACK=127.0.0.1
 6 RS=("192.168.43.202" "192.168.43.203")
 7 declare -a RSSTATUS
 8 RW=("2" "1")
 9 RPORT=80
10 TYPE=g
11 CHKLOOP=3
12 LOG=/var/log/ipvsmonitor.log
13 
14 addrs(){
15  ipvsadm -a -t $VIP:$CPORT -r $1:$RPORT -$TYPE -w $2
16  [ $? -eq 0 ] && return 0 || return 1    
17 }
18 delrs(){
19  ipvsadm -d -t $VIP:$CPORT -r $1:$RPORT
20  [ $? -eq 0 ] && return 0 || return 1
21 }
22 checkrs(){
23  local I=1
24  while [ $I -le $CHKLOOP ]; do
25   if curl --connect-timeout 1 http://$1 &> /dev/null; then
26    return 0
27   fi
28   let I++
29  done
30  return 1
31 }
32 initstatus(){
33  local I
34  local COUNT=0;
35  for I in ${RS[*]}; do
36   if checkrs $I; then
37    RSSTATUS[$COUNT]=1
38   else
39    RSSTATUS[$COUNT]=0
40   fi
41  let COUNT++
42  done
43 }
44 initstatus
45 while :; do
46  let COUNT=0
47  for I in ${RS[*]}; do
48   if checkrs $I; then
49    if [ ${RSSTATUS[$COUNT]} -eq 0 ]; then
50     addrs $I ${RW[$COUNT]}
51     [ $? -eq 0 ] && RSSTATUS[$COUNT]=1 && echo " $I is back." >> $LOG
52    fi
53   else
54    if [ ${RSSTATUS[$COUNT]} -eq 1 ]; then
55     delrs $I
56     [ $? -eq 0 ] && RSSTATUS[$COUNT]=0 && echo " $I is gone." >> $LOG
57    fi
58   fi
59   let COUNT++
60  done
61  sleep 5
62 done

 

以上是关于LVSLVS集群RealServer高可用健康监测的主要内容,如果未能解决你的问题,请参考以下文章

NGINX 负载均衡监测节点状态 之 十一

配置 Nginx 负载均衡监测节点状态

高可用实现KeepAlived原理简介

LVS-DR与Keepalived高可用群集

LVS+KeepAlived快速入门

lvs+keepalived+nginx实现高性能负载均衡集群