健康检查的目的:
保证部署的集群能够高效有序的正常运行
lvs的健康检查:
利用脚本文件+crontab循环任务做健康检查
1、编写脚本文件
vim lvs.sh
#!/bin/bash
rs=192.168.188.130 #VIP的ip地址
rs1=192.168.188.128 #real server1的ip地址
ping -c 1 $rs1 &>/dev/null
if [ $? -eq 0 ];then
curl $rs1
if [ $? -eq 0 ];then
/usr/sbin/ipvsadm -Ln | grep $rs1 &>/dev/null
if [ $? -eq 0 ];then
break
else
/usr/sbin/ipvsadm -a -t 192.168.188.130:80 -r $rs1 -g
break
fi
else
/usr/sbin/ipvsadm -d -t 192.168.188.130:80 -r $rs1
fi
else
/usr/sbin/ipvsadm -d -t 192.168.188.130 -r $rs1
fi
rs2=192.168.188.129 #real server2的ip地址
ping -c 1 $rs2 &>/dev/null
if [ $? -eq 0 ];then
curl $rs2
if [ $? -eq 0 ];then
/usr/sbin/ipvsadm -Ln | grep $rs2 &>/dev/null
if [ $? -eq 0 ];then
break
else
/usr/sbin/ipvsadm -a -t 192.168.188.130:80 -r $rs2 -g
break
fi
else
/usr/sbin/ipvsadm -d -t 192.168.188.130:80 -r $rs2
fi
else
/usr/sbin/ipvsadm -d -t 192.168.188.130:80 -r $rs2
fi
2、利用crontab循环任务实行检测
crontab -e #编写循环任务
/5 bash lvs.sh #以每5分钟为例,做健康检测
keepalived的健康检查:
1、给lvs做高可用的健康检查
1.首先编写脚本
vim /etc/keepalived/lvs.sh
#!/bin/bash
num=#(ps -C nginx —no-heading | wc -l)
if [ $num = “0” ];then
systemctl start nignx
num1=$(ps -C nginx —no-heading | wc -l)
if [ $num1 = “0” ];then
systemctl stop keepalived
fi
fi
2.编写keepalived配置文件
global_defs {
router_id server
}
vrrp_script check_nginx {
script “/etc/keepalived/lvs.sh”
interval 5
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 80
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.188.110/24
}
track_script {
check_nginx
}
}
3.模拟关掉keepalived中nginx,观察其状态,及VIP是否飘逸
*2、haproxy做健康检查
1.首先编写脚本
vim /etc/keepalived/haproxy.sh
#!/bin/bash
num=#(ps -C haproxy —no-heading | wc -l)
if [ $num = “0” ];then
systemctl start haproxy
num1=$(ps -C haproxy —no-heading | wc -l)
if [ $num1 = “0” ];then
systemctl stop keepalived
fi
fi
2.编写keepalived配置文件
global_defs {
router_id server
}
vrrp_script check_haproxy {
script “/etc/keepalived/haproxy.sh”
interval 5
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 80
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.188.110/24
}
track_script {
check_haproxy
}
}
3.模拟关掉keepalived中nginx,观察其状态,及VIP是否飘逸
