Keepalived不使用chk_script迁移

我尝试使用keepalived创build一个zabbix集群。

我的node1configuration

vrrp_script chk_zbxserver { script "/usr/local/sbin/zabbix.sh" interval 2 weight 2 fall 2 rise 2 } vrrp_instance VI_1 { state MASTER interface enp0s3 virtual_router_id 51 priority 150 advert_int 1 notify /usr/local/sbin/notify-keepalived.sh authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.20 } track_script { chk_zbxserver } 

我的node2configuration

 vrrp_script chk_zbxserver { script "/usr/local/sbin/zabbix.sh" weight 2 interval 2 fall 2 rise 2 } vrrp_instance VI_1 { state BACKUP nopreempt interface enp0s3 virtual_router_id 51 priority 149 advert_int 1 notify /usr/local/sbin/notify-keepalived.sh authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.20 } track_script { chk_zbxserver } } 

zabbix.sh脚本

 #!/bin/bash SERVICE=zabbix_server STATUS=$(ps ax | grep $SERVICE | grep -v grep) if [ "$STATUS" != "" ] then exit 0 else exit 1 fi 

通知脚本

 #!/bin/bash TYPE=$1 NAME=$2 STATE=$3 case $STATE in "MASTER") systemctl start zabbix-server ;; "BACKUP") systemctl stop zabbix-server ;; "FAULT") systemctl stop zabbix-server exit 0 ;; *) echo "unknown state" exit 1 ;; esac 

如果我在zabbix-server服务上发生故障(主节点1),则不会迁移VIP,如果我停止保活服务(或重新启动),VIP将被迁移。

但是,如果服务在备份(node2)上,当我停止zabbix-server时,VIP将被迁移到master。

我尝试使我在keepalived VRRP_script上看到的更改不会故障转移

但是不行。

谢谢