LVS健康检测脚本分享

1、真实服务器健康状态检测

我们可以通过Shell脚本,实现对LVS后端的真实服务器开放服务的健康状态检测功能。当真实服务器服务出现问题,则自动将其从集群服务中移除,当真实服务器服务恢复,则自动将其加入到负载均衡集群服务中。

1.1 基于端口的健康检测

脚本思路:

通过扫描后端服务器的端口来判断真实服务器是否健康!

若端口开放则表示真实服务器健康,则将其加入到LVS集群中。若已存在集群中则不做任何操作。

若端口未开发则表示真实服务器故障,则将其从LVS集群中移除。若不存在则不做任何操作。

Shell脚本内容如下:

# cat lvs_port_health.sh


#配置集群服务地址和真实服务器地址池

vip="172.16.16.100"

vport="80"

rspool="172.16.16.2 172.16.16.3"

rsport="80"

#本地时间

localtime=`date +%Y-%m-%d\ \%H:%M:%S`

#安装NMAP扫描端口工具

nmap=`rpm -qa |grep nmap |wc -l`

if [ $nmap = 0 ]

then

yum -y install nmap

fi

#真实服务器健康检测机制:

#当真实服务器故障时自动从集群服务中移除

#当真实服务器恢复时自动加入集群服务

while :;

do

sleep 3;

for i in $rspool

do

openport=`nmap $i -p $rsport |awk 'NR==6{print $2}'`

rstesting=`ipvsadm -ln|grep $i:$rsport|wc -l`

if [ $openport = open ]

then

if [ $rstesting = 0 ]

then

ipvsadm -a -t $vip:$vport -r $i:$rsport -g >/dev/null 2>&1

echo "$localtime 真实服务器[$i:$rsport]加入集群服务[$vip:$vport]!"

fi

else

if [ $rstesting != 0 ]

then

ipvsadm -d -t $vip:$vport -r $i:$rsport

echo "$localtime 真实服务器[$i:$rsport]从集群服务[$vip:$vport]中移除!"

fi

fi

done

done

1.2 基于访问的健康检测

在WEB集群中,基于端口的健康检测并不够精确,端口开放不代表WEB服务是正常工作的,所以我们更好的解决方法就是直接去访问一下。

脚本思路:

通过直接访问WEB来判断真实服务器是否健康!

若可访问则表示真实服务器健康,则将其加入到LVS集群中。若已存在集群中则不做任何操作。

若访问失败则表示真实服务器故障,则将其从LVS集群中移除。若不存在则不做任何操作。

Shell脚本内容如下:

# cat lvs_access_health.sh


#配置集群服务地址和真实服务器地址池

vip="172.16.16.100"

vport="80"

rspool="172.16.16.2 172.16.16.3"

rsport="80"

#本地时间

localtime=`date +%Y-%m-%d\ \%H:%M:%S`

#安装CURL工具

curl=`rpm -qa |grep curl |wc -l`

if [ $curl = 0 ]

then

yum -y install curl

fi

#真实服务器健康检测机制:

#当真实服务器故障时自动从集群服务中移除

#当真实服务器恢复时自动加入集群服务

while :;

do

sleep 3;

for i in $rspool

do

rstesting=`ipvsadm -ln|grep $i:$rsport|wc -l`

curl $i:$rsport >/dev/null 2>&1

if [ $? = 0 ]

then

if [ $rstesting = 0 ]

then

ipvsadm -a -t $vip:$vport -r $i:$rsport -g >/dev/null 2>&1

echo "$localtime 真实服务器[$i:$rsport]加入集群服务[$vip:$vport]!"

fi

else

if [ $rstesting != 0 ]

then

ipvsadm -d -t $vip:$vport -r $i:$rsport

echo "$localtime 真实服务器[$i:$rsport]从集群服务[$vip:$vport]中移除!"

fi

fi

done

done

原文地址:http://blog.51cto.com/10978134/2122029

时间: 2024-10-26 00:21:31

LVS健康检测脚本分享的相关文章

lvs的健康检测脚本

lvs的健康检测脚本 写得不怎么样,基本实现吧,因为基本不会用到,有时间再改进了,嘻嘻 1 #!/bin/bash 2 3 rs=('192.168.61.130' '192.168.61.132') 4 vip="192.168.61.100" 5 dip="192.168.61.131" 6 checkcount=1 7 checkloop=4 8 i=1 9 10 11 while [ $i -lt 2 ];do 12     #sorry server检测,

集群及系统扩展之三:持久连接及健康检测

一.FWM FWM: firewall mark iptables/netfilter: filter, nat, mangle, raw mangle: 防火墙标记 前提:在ipvs生效之前的netfilter的某hook function上定义iptables规则,实现给报文打上防火墙标记: 定义方法: (1) 打标:在Director上mangle表的PREROUTING链上实现 # iptables -t mangle -A PREROUTING -d $vip -p $protocol

keepalived结合nginx状态检测脚本实现对web服务器集群的高可用

实验环境 两台CentOS-7.5虚拟机web1:10.0.11.203web2:10.0.11.204VIP :10.0.11.210web类型:nginx客户端:自用笔记本(win10)nginx状态检测脚本:ck_nginx.sh 实验一.使用keepalived简单实现web集群的高可用功能 1.准备两台web服务器 1)web1网卡情况[[email protected] ~]# [[email protected] ~]# ip a 2)web2网卡情况[[email protect

LVS自动化添加及删除ipvsadm和后端服务器健康状态检测脚本

  LVS director 负载均衡器增加IPVSADM脚本 #vim director.sh #!/bin/bash #chkconfig: - 88 66 #description: this script to add lvs IP VIP=192.168.0.254 DIP=192.168.0.100 RIP1=192.168.0.101 RIP2=192.168.0.102 PORT=80 SCHELE=wrr LOCKFILE=/var/lock/subsys/ipvsadm ca

如何编写LVS对Real Server的健康状态检测脚本

简介:Linux 虚拟服务器(Linux Virtual Server. LVS),是一个由章文松开发的自由软件.利用KVS可以实现高可用的.可伸缩缩的Web, Mail, Cache和Medial等网络股务..井在此基 础上开发支持庞大用户数的,可伸缩的,高可用的电子商务应用.LVS1998年发展到现在,已经变得比较成熟,目前广泛应用在各种网络服务和电了商务应用 中.LVS具有很好的伸缩缩性.可靠性和管埋性,通过LVS要实现的最终目标是:利用linux 操作系统和LVS集群软件实现一个高可用.

用于Nagios中监控elasticsearch健康状态脚本

在Nagios社区中上找了下相关用于监控elasticsearch索引的脚本,再经过修改下,可以在平时用于传入elasticsearch的监听ip用于在Nagios中使用监控elasticsearch健康状态的脚本 #!/bin/bash #check_elasticsearch_health.sh #Memo for Nagios outputs STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 #Position para

nginx下后端realserver健康检测模块ngx_http_upstream_check_module

想用Nginx或者Tengine替代LVS,即能做七层的负载均衡,又能做监控状态检测,一旦发现后面的realserver挂了就自动剔除,恢复后自动加入服务池里,可以用Tengine的ngx_http_upstream_check_module模块.本文主要介绍在工作中,搭建遇到问题及处理方法,便以后查询. 首先,我们大多数站点都是nginx+tomcat这个比较常见模式,其实nginx本身也有自己的健康检测模块,本人觉得不好用,故使用ngx_http_upstream_check_module.

完整的用户代理字符串检测脚本

完整的用户代理字符串检测脚本,包括引擎.脚本.平台.Windows操作系统.移动设备和游戏系统. 1 var client = function(){ 2 3 //呈现引擎 4 var engine ={ 5 ie: 0, 6 gecko: 0; 7 webkit: 0; 8 khtml: 0; 9 opera: 0; 10 11 //完整的版本号 12 ver: null 13 }; 14 15 //浏览器 16 var browser = { 17 //主要浏览器 18 ie: 0, 19

Oracle SQL 调优健康检查脚本

Oracle SQL 调优健康检查脚本 我们关注数据库系统的性能,进行数据库调优的主要工作就是进行SQL的优化.良好的数据架构设计.配合应用系统中间件和写一手漂亮的SQL,是未来系统上线后不出现致命性能问题的有力保证. 在CBO时代,一个SQL的执行计划是多样的.影响执行计划的因素也从过去RBO时代的SQL书写规则变为综合性因素.这为我们生成更加优秀执行计划提供了基础,同时也给我们进行调优带来的很多麻烦. 目前我们通常的做法,是通过AWR报告或者调试手段,发现某某SQL有问题,之后从Librar