在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节点健康检查及管理脚本的更多相关文章

  1. Nginx实战系列之功能篇----后端节点健康检查(转)

    公司前一段对业务线上的nginx做了整理,重点就是对nginx上负载均衡器的后端节点做健康检查.目前,nginx对后端节点健康检查的方式主要有3种,这里列出:   1.ngx_http_proxy_m ...

  2. Nginx实战系列之功能篇----后端节点健康检查

    目前,nginx对后端节点健康检查的方式主要有3种,这里列出:   1.ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带)    官网地址: ...

  3. CentOS7.4 Keepalived+LVS 负载均衡 后台节点健康检查

    主机信息 VIP 10.10.10.55 LVS01 10.10.10.59 Web01 10.10.10.60 Web02 10.10.10.61 一.apache简单配置 1.(10.10.10. ...

  4. 5.Lvs+Keepalived健康检查

    1. Nginx+keepalived对后端服务器心跳检查(需要自定义脚本) 原理:Keepalived并不跟nginx耦合,它俩完全不是一家人但是keepalived提供一个机制:让用户自定义一个s ...

  5. nginx后端节点健康检查

    一.nginx健康检查的三种方式 .ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带) 官网地址:http://nginx.org/en/d ...

  6. Nginx负载均衡中后端节点服务器健康检查的操作梳理

    正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样 ...

  7. nginx之健康检查

    正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样 ...

  8. 23、nginx动态添加nginx_upstream_check_module健康检查模块

    nginx_upstream_check_module模块地址:https://github.com/yaoweibin/nginx_upstream_check_module 23.1.说明: 1. ...

  9. lvs健康检查脚本第三版

    如下是学习完马哥视频lvs后改写的健康检查脚本第三版.利用工作之余三四个小时时间才把整个逻辑搞清楚,有时候自己都有点蒙圈,尤其是在写到while循环的时候.总的来说非常感谢马哥的慷慨解囊!脚本原稿及思 ...

随机推荐

  1. 【刷题】Git工作流-相关知识点

    参考资料:[学习总结]Git学习-GIT工作流-千峰教育(来自B站) 1-Git工作流 GitFlow流五大分支: 主干分支 热修复分支 预发布分支 开发分支 功能分支 GitFlow 工作流定义了一 ...

  2. RabbitMQ之安装

    RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息.你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处.在这个比喻中,RabbitMQ就扮演着邮箱.邮局以 ...

  3. npm install报错

    npm ERR!    C:\Users\xxxxxx\AppData\Roaming\npm-cache\_logs\2019-02-27T07_48_47_283Z-debug.log " ...

  4. 【python 字符串】 字符串的相关方法(一)

    将字符串首字母变为大写 ->  capitalize() 方法 # 将字符串的首字母转换为大写 text = 'alet' ret = text.capitalize() print(ret) ...

  5. ubuntu下面配置apache

    1.在这个目录下面修改这个文件 把那个注释了 2.在这个目录下面修改这个文件 把这个改为index的目录

  6. C#语法相比其它语言比较独特的地方

    C#语法相比其它语言比较独特的地方(一) 本文讲解了switch语句可以用来测试string型的对象.多维数组.foreach语句.索引器和Property等内容 1,switch语句可以用来测试st ...

  7. PHP Yii2 composer环境安装

    PHP Yii2 composer环境安装 composer 安装 任意目录执行: php -r "copy('https://install.phpcomposer.com/install ...

  8. jira,Confluence 的JVM内存优化

    个人喜好,可能不是很适合大众 JIRA 修改setenv.sh,调整JVM为4096m [root@jira_confluence ~]# cd /app/atlassian/jira/bin/ [r ...

  9. Linux-#!/bin/sh理解

    #!是一个特殊符号,/bin/sh是用来解释该脚本的的shell路径 #!/bin/sh指该脚本使用/bin/sh来执行 sh只是其中一种解释方式,通过如下命令可以查到支持的shell解释方式: xx ...

  10. DataReader转Dictionary数据类型之妙用

    datareader转dictionary有很多用处,可以输出表中部分字段转实体字段,以前需要全部字段输出或者再建一个实体模型才行,这样就可以减少数据库的输出量了,特别是某些接口的格式化输出很方便. ...