我有2个节点,它们都有keepalived和haproxy服务(CentOS7)。如果我关闭了一个节点,所有的节点都可以正常工作。但是,如果haproxy出现故障,我希望对VIPS进行故障切换。
这是第1个节点配置:
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
}
}cat /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我做错了什么?提前谢谢你!
发布于 2015-12-01 21:57:51
在脚本中,您正在检查
systemctl status haproxy包含关键字"inactive“。这是您手动停止haproxy服务时获得的值吗?
一旦haproxy服务停止,您的日志中包含它的内容就会重新启动。你能证实吗?
另外,尝试将脚本替换为
script "killall -0 haproxy"发布于 2016-11-18 04:18:39
很简单。例如,请尝试执行以下操作:
vrrp_script check_haproxy {
script "pidof haproxy"
interval 2
weight 2
}在config的末尾,你也应该添加以下部分:
track_script {
check_haproxy
}https://stackoverflow.com/questions/33993677
复制相似问题