LVS节点健康检查及管理脚本

Posted Frank_hui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS节点健康检查及管理脚本相关的知识,希望对你有一定的参考价值。

  在LVS负载均衡主节点上,模拟keepalived健康检查功能管理LVS节点,当节点挂掉从服务器池中剔除,好了再加到服务器池中来。

工具:yum install -y ipvsadm

web03:10.0.0.17

web04:10.0.0.18

VIP:10.0.0.13

 

#!/bin/bash

web3() {

  curl -I -m 10 -o /dev/null -s -w %{http_code}"\\n" 10.0.0.17
}
web4() {
  curl -I -m 10 -o /dev/null -s -w %{http_code}"\\n" 10.0.0.18
}
ipvs_web3=$(ipvsadm -Ln |grep 10.0.0.17 |wc -l)
ipvs_web4=$(ipvsadm -Ln |grep 10.0.0.18 |wc -l)
checknum=1
checkloop=4
if [ `web3` -eq 200 ];then
  if [ $ipvs_web3 -eq 0 ] ;then
  ipvsadm -a -t 10.0.0.13:80 -r 10.0.0.17:80 -g -w 1
    if [ $? -eq 0 ];then
  echo "web03上线"
    fi
  else
  echo "web03正常"
fi
else
if [ $ipvs_web3 -eq 1 ] ;then
  while [ $checknum -le $checkloop ];do
  if [ `web3` -eq 200 ];then
  break
  else
  let checknum++
  fi
  if [ $checknum -eq 3 ] ;then
    ipvsadm -d -t 10.0.0.13:80 -r 10.0.0.17:80
    if [ $? -eq 0 ];then
    echo "web03下线"
    fi
  fi
  sleep 1
  done
  fi
fi

if [ `web4` -eq 200 ];then
  if [ $ipvs_web4 -eq 0 ] ;then
    ipvsadm -a -t 10.0.0.13:80 -r 10.0.0.18:80 -g -w 1
     if [ $? -eq 0 ];then
      echo "web04上线"
     fi
  else
  echo "web04正常"
fi
else
if [ $ipvs_web4 -eq 1 ] ;then
  while [ $checknum -le $checkloop ];do
  if [ `web4` -eq 200 ];then
    break
  else
    let checknum++
  fi
  if [ $checknum -eq 3 ] ;then
    ipvsadm -d -t 10.0.0.13:80 -r 10.0.0.18:80
    if [ $? -eq 0 ];then
      echo "web04下线"
    fi
  fi
  sleep 1
  done
  fi
fi

 

程序还有点bug,不过能用ヽ( ̄▽ ̄)ノ

日期:2018-03-30

以上是关于LVS节点健康检查及管理脚本的主要内容,如果未能解决你的问题,请参考以下文章

LVS健康检查脚本

9-lvs-lvs集群-及keepalived健康检查

Keepalived管理LVS负载均衡实战

LVS集群RS健康状态检查

LVS+Keepalived 高可用群集(DR模式)

LVS+Keepalived 群集部署