监控keepalived_vip控制容器的状态

发布时间 2023-08-11 09:36:11作者: 燚林博客

需求:监控server服务器的vip状态,如果vip存在,则判断容器是否启动,如果没有启动,则启动容器。如果vip不存在则关闭容器。

方法一:

方法一
 #!/bin/bash
ip add | grep eth0 > /data/keepalived
cat /data/keepalived | grep ${yunguan_svc_vip.ip} &> /dev/null
if [ $? -eq 0 ]; then
		docker ps -a | grep beat | grep Up &> /dev/null
		if [ $? -ne 0 ]; then
			docker restart beat &> /dev/null
	        else
			echo "beat is running" &> /dev/null
		fi
else
		docker stop beat &> /dev/null
fi

方法二:

方法二

#!/bin/bash
vip=`ip a|grep ${yunguan_svc_vip.ip}|awk -F "/" '{print\$1}'|awk '{print\$2}'`
VALUE=`docker ps|grep beat`

if [ ! -z "$vip" ]; then
        if [ -z "$VALUE" ]; 
            then
                        docker start beat && sleep 10
        fi
else 
      docker stop beat

fi

验证:

在svc1机器上测试;
1、keepalived启动状态,vip存在,停止beat容器,执行脚本。
结果:beat容器重新启动。

2、keepalived关闭状态,启动beat容器,执行脚本。
结果:beat容器停止。

加入计划任务:

####将keepalived.sh脚本放到/data/目录
####每小时执行一次脚本

echo "0 * * * * sh /data/keepalived.sh" >> /var/spool/cron/root