前言
环境:centos 7.9 keepalived-2.2.7
说明
前面我们模拟vip漂移,总是把keepalived手动停止来模拟服务器死机,这种模拟是不太合理的,在生产环境中,我们更多的是监控某一个服务的状态,根据服务的状态来实现vip的漂移,比如,检测nginx是否存活,不存活则实现vip漂移到备服务器上,从而实现真正的高可用。
下面,我们将手写keepalived的检测脚本,用于检测nginx是否存活,不存活则实现vip漂移到备服务器上。
nginx检测脚本
#脚本含义是:nginx检测没了,直接干掉keepalived,这样备收不到心跳包就会接管vip了
vim /etc/check_nginx.sh
#!/bin/bash
#计算nginx进程数量
#注意:千万不要使用ps -ef | grep nginx | grep -v grep | wc -l 进行统计。这样统计会有问题的
n=`ps -C nginx --no-heading|wc -l`
#当nginx停止后,直接干掉keepalived,这样备收不到心跳包就会接管vip了
if [ $n -eq "0" ]; then
/usr/bin/systemctl stop keepalived
fi
对脚本授予可执行权限:chmod a+x /etc/check_nginx.sh;
#将检测脚本复制一份到backup服务器上
scp /etc/keepalived/check_nginx.sh root@192.168.118.130:/etc/keepalived/check_nginx.sh
#登录backup服务器给脚本授权
chmod a+x /etc/keepalived/check_nginx.sh
修改master主配置文件
配置master主节点,主要加了vrrp_script <script_name> {}段和 track_script{}段,如下所示:
#配置master主节点
[root@master~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LB1 #keepalived服务器的路由标识,用于标识机器的,默认值是主机名
vrrp_skip_check_adv_addr #保持默认参数
vrrp_strict #保持默认参数
vrrp_garp_i

本文介绍了一个基于Keepalived的VIP漂移方案,通过自定义脚本来监控Nginx的状态,并根据其状态变化触发VIP漂移,确保服务的高可用性。

732

被折叠的 条评论
为什么被折叠?



