51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

检测nginx是否正常和检测脑裂

检查nginx 是否正常

#!/bin/sh
nginxpid=$(ps -C nginx --no-header|wc -l)

#1.判断Nginx是否存活,如果不存活则尝试启动Nginx
if [ $nginxpid -eq 0 ];then
    systemctl start nginx
    sleep 3
    #2.等待3秒后再次获取一次Nginx状态
    nginxpid=$(ps -C nginx --no-header|wc -l) 
    #3.再次进行判断, 如Nginx还不存活则停止Keepalived,让地址进行漂移,并退出脚本  
    if [ $nginxpid -eq 0 ];then
        systemctl stop keepalived
   fi
fi
#给脚本增加执行权限

keepalived 中添加:

script "/etc/keepalived/check_split_brain.sh"

[root@LB01 ~]# cat /etc/keepalived/keepalived.conf 
global_defs {
    router_id LB01
}

vrrp_script check_nginx {
    script "/etc/keepalived/check_split_brain.sh"
    interval 5
} 

vrrp_instance VI_1 {
    state MASTER
    priority 150
    interface eth0
    virtual_router_id 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {         
        10.0.0.3
    }
}
#调用并运行脚本 
track_script { 
check_nginx  
}

检查脑裂:

[root@LB01 ~]# cat /etc/keepalived/check_split_brain.sh 
LB01_VIP_Number=`ip add | grep 10.0.0.3 | wc -l`
LB02_VIP_Number=`ssh '10.0.0.6' ip add | grep 10.0.0.3 | wc -l`
if [ $LB01_VIP_Number -eq 1 -a $LB02_VIP_Number -eq 1 ]
then
	systemctl stop keepalived
fi

欢迎来撩 :shell 编程从0到1

赞(4)
未经允许不得转载:工具盒子 » 检测nginx是否正常和检测脑裂