监控keepalived_vip控制容器的状态
2023-08-11 11:35:22来源:博客园
(资料图片仅供参考)
需求:监控server服务器的vip状态,如果vip存在,则判断容器是否启动,如果没有启动,则启动容器。如果vip不存在则关闭容器。
方法一:
查看代码
#!/bin/baship add | grep eth0 > /data/keepalivedcat /data/keepalived | grep ${yunguan_svc_vip.ip} &> /dev/nullif [ $? -eq 0 ]; thendocker ps -a | grep beat | grep Up &> /dev/nullif [ $? -ne 0 ]; thendocker restart beat &> /dev/null elseecho "beat is running" &> /dev/nullfielsedocker stop beat &> /dev/nullfi
方法二:
查看代码
#!/bin/bashvip=`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 fielse docker stop beatfi
验证:
在svc1机器上测试;1、keepalived启动状态,vip存在,停止beat容器,执行脚本。结果:beat容器重新启动。
2、keepalived关闭状态,启动beat容器,执行脚本。结果:beat容器停止。
加入计划任务:
####将keepalived.sh脚本放到/data/目录####每小时执行一次脚本
echo "0 * * * * sh /data/keepalived.sh" >> /var/spool/cron/root
标签: