keepalived自定义监控脚本

前言

keepalived默认只会监控本身的服务,也就是说只有当keepalived服务停止后,才会进行VIP漂移,如果是整台服务器宕机那么所有服务都会停掉,包括keepalived,可如果当我们需要监控的服务比如haproxy服务停止时,此时keepalived仍然在提供服务那么就不会进行VIP漂移,这无疑是不合适的。
这就需要我们自定义脚本进行监控haproxy的服务了。

自定义脚本监控

编写脚本

vi /usr/monitor_docker_haproxy.sh

脚本内容
该脚本用于检测docker 中 haproxy容器是否运行,如果没有运行则尝试启动haproxy容器,如果启动失败则结束掉keepalived,然后VIP自动漂移

#!/bin/bash
#监控容器的运行状态
containerName=haproxy

# 查看进程是否存在
haproxyrun=`docker inspect --format '{{.State.Running}}' ${containerName}`
if [ "${haproxyrun}" == "false" ]; then
        docker start ${containerName}
        sleep 1
        if [ "${haproxyrun}" == "false" ]; then
                /bin/systemctl stop keepalived.service
        fi
fi

脚本增加运行权限

chmod +x /usr/monitor_docker_haproxy.sh

关闭selinux防火墙

setenforce 0

keepalived配置文件

#VRRP 脚本声明
vrrp_script check_haproxy {
	#周期性执行的脚本
    script "/usr/monitor_docker_haproxy.sh"
    #运行脚本的间隔时间,秒
    interval 2
}
vrrp_instance VI_1 {
    state MASTER
    #这里是宿主机的网卡,可以通过ip a查看当前自己电脑上用的网卡名是哪个
    interface ens33
    virtual_router_id 100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        #这里是指定的一个宿主机上的虚拟ip,一定要和宿主机网卡在同一个网段
        192.168.130.140
    }
    #脚本监控状态
    track_script {
        check_haproxy
    }
}

脚本测试

此时所有服务均正常,服务器抢占了VIP
在这里插入图片描述
我们手动停掉docker haproxy容器

docker stop haproxy

此时监控脚本检测到了haproxy容器停止,尝试启动,然后成功启动,所有我们看到了貌似是关闭失败的情况。
在这里插入图片描述
此时我们停止docker

service docker stop

此时尝试启动失败,VIP漂移
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值