diff --git a/plugins/keepalived/config/keepalived.conf b/plugins/keepalived/config/keepalived.conf index 75b1db44c..d1fee41dd 100644 --- a/plugins/keepalived/config/keepalived.conf +++ b/plugins/keepalived/config/keepalived.conf @@ -33,6 +33,18 @@ vrrp_instance VI_1 { } } +vrrp_script chk_mysql_port { #检测mysql服务是否在运行。有很多方式,比如进程,用脚本检测等等 + script "{$SERVER_PATH}/mdserver-web/plugins/keepalived/scripts/chk_mysql.sh" #这里通过脚本监测 + interval 2 #脚本执行间隔,每2s检测一次 + weight –5 #脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5 + fall 2 #检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间) + rise 1 #检测1次成功就算成功。但不修改优先级 +} + +track_script { + chk_mysql_port +} + virtual_server 192.168.200.100 443 { delay_loop 6 lb_algo rr diff --git a/plugins/keepalived/scripts/chk_mysql.sh b/plugins/keepalived/scripts/chk_mysql.sh new file mode 100644 index 000000000..3002e57bc --- /dev/null +++ b/plugins/keepalived/scripts/chk_mysql.sh @@ -0,0 +1,5 @@ +#!/bin/bash +counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l) +if [ "${counter}" -eq 0 ]; then + systemctl stop keepalived +fi \ No newline at end of file