centos - keepalived vrrp_script 不进行故障转移

标签 centos haproxy failover

我有 2 个带有 keepalived 和 haproxy 服务的节点(CentOS7)。
如果我关闭一个节点一切正常。但是如果 haproxy 出现故障,我想对 VIPS 进行故障转移。

这是第一个节点配置:

  vrrp_script ha_check {
script "/etc/keepalived/haproxy_check"
interval 2
weight 21
}

vrrp_instance VI_1 {
    state MASTER
        interface eno16777984
        virtual_router_id 151
        priority 101
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 11111
                        }
        virtual_ipaddress {
                10.0.100.233
                            }
        smtp_alert
track_script {
ha_check
}
}

第二个节点:
vrrp_script ha_check {
script "/etc/keepalived/haproxy_check"
interval 2
fall 2
rise 2
timeout 1
weight 2
}

vrrp_instance VI_1 {
    state BACKUP
        interface eno16777984
        virtual_router_id 151
        priority 100
        advert_int 1
        authentication {
        auth_type PASS
        auth_pass 11111
                        }
        virtual_ipaddress {
                10.0.100.233
                            }
        smtp_alert
track_script {
ha_check
}
}

猫/etc/keepalived/haproxy_check
systemctl status haproxy | grep "inactive"

当我停止 haproxy 时,它仍然不会将 VIP 故障转移到下一个
主持人。
[root@cks-hatest1 keepalived]# tail /var/log/messages
Nov 30 10:35:24 cks-hatest1 Keepalived_vrrp[5891]: VRRP_Script(ha_check) failed
Nov 30 10:35:33 cks-hatest1 systemd: Started HAProxy Load Balancer.
Nov 30 10:35:45 cks-hatest1 systemd: Stopping HAProxy Load Balancer...
Nov 30 10:35:45 cks-hatest1 systemd: Stopped HAProxy Load Balancer.
Nov 30 10:35:46 cks-hatest1 Keepalived_vrrp[5891]: VRRP_Script(ha_check) succeeded

我做错了什么?先感谢您!

最佳答案

在您的脚本中,您正在检查是否

systemctl status haproxy

包含关键字“inactive”。这是您手动停止 haproxy 服务时获得的值(value)吗?

一旦 haproxy 服务停止,您的日志包含它就会再次启动。你能证实吗?

另外,尝试将脚本替换为
script "killall -0 haproxy"

关于centos - keepalived vrrp_script 不进行故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33993677/

相关文章:

apache2 - mod_proxy 超时 (502) 和故障转移

linux - CentOS PostFix 让我连接,不会打招呼

linux - haproxy acl中的base/uri/path/etc有什么区别?

java - 如何保存一个非常复杂和庞大的数据处理状态?

amazon-web-services - AWS 替代 DNS 故障转移?

session - haproxy中 "session"的确切含义是什么?

apache-kafka - Kafka 生产者/消费者打开了太多的文件描述符

python -/cs/software/anaconda3/compiler_compat/ld : cannot find -lm cannot find -lpthread cannot find -lc

c++ - yum : using boost 1. 69 而不是 centos 上的默认 (1.53) 版本

tomcat - HAProxy - URL 重定向和重写