keepalived 检测服务状态、keepalived 检测脚本

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

前言

环境: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
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值