1. 程式人生 > >LVS節點健康檢查及管理腳本

LVS節點健康檢查及管理腳本

服務 keepalive ++ one 檢查 break vip bubuko 模擬

  在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節點健康檢查及管理腳本