首页 > 代码库 > LVS集群RS健康状态检查
LVS集群RS健康状态检查
生产中,我们需要检测RS状态,当RS服务异常时,应该将RS移出集群,而当RS恢复之后,再将RS加入到集群中。下面是脚本内容
#!/bin/bash VIP=192.168.10.3 ##集群服务端口号 CPORT=80 RS=(192.168.10.7 192.168.10.8) ###RS主机的状态,1表示状态正常 RSTATUS=(1 1) #权重 RW=(2 1) ###RS主机上实际的服务端口 RPORT=80 ###lVS的模式,这里以DR模式为例 TYPE=g ###add函数表示将RS加入到集群,del函数表示将RS移出集群 add() { ipvsadm -a -t $VIP:$CPORT -r $1:$RPORT -$TYPE -w $2 [ $? -eq 0 ] && return 0 || return 1 } del() { ipvsadm -d -t $VIP:$CPORT -r $1:$RPORT [ $? -eq 0 ] && return 0 || return 1 } while :; do let COUNT=0 for I in ${RS[*]}; DO if curl --connect-timeout 1 http://$I &> /dev/null; then if [ ${RSTATUS[COUNT]} -eq 0 ];then add $I ${RW[COUNT]} [ $? -eq 0 ] && RSTATUS[$COUNT]=1 fi else if [ ${RSTATUS[COUNT]} -eq 1 ]; then del $I [ $? -eq 0 ] && RSTATUS[$COUNT]=0 fi fi let COUNT++ done sleep 5 done
脚本思路:写了一个循环,每隔5秒钟去检测一次RS的状态,
1、如果RS状态正常,而RS本身在集群中,那么什么也不做,如果RS不在集群中,则将RS加入到集群中
2、如果RS状态异常,而RS本身在集群中,那么将RS从集群中删除
本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1846016
LVS集群RS健康状态检查
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。