我对此很陌生,所以请耐心点。
我的设置基本上是使用mqtt的设备,通过两个代理连接,两个代理都在运行emqx。两个emqx代理程序也应该被设置为haproxy负载平衡器,并保持不变,以防出现故障。
经纪人1's IP是192.168.1.201
经纪人2's IP地址是192.168.1.202
维持的虚拟IP为192.168.1.200
haproxy.cfg是
frontend emqx_tcp
bind *:1883
option tcplog
mode tcp
default_backend emqx_tcp_back
backend emqx_tcp_back
balance roundrobin
server emqx_node_1 192.168.1.201:1883 check
server emqx_node_2 192.168.1.202:1883 checkkeepalived.conf是
global_defs {
lvs_id haproxy01
}
vrrp_sync_group SyncGroup01 {
group {
VI_1
}
}
vrrp_script chkhaproxy {
script "/usr/bin/killall -0 haproxy"
script "/usr/sbin/service haproxy start"
interval 9
timeout 3
weight 20
rise 2
fall 4
}
vrrp_instance VI_1 {
interface eth0 # interface to monitor
state MASTER
virtual_router_id 51 # Assign one ID for this route
priority 101 # 101 on MASTER, 100 on BACKUP
advert_int 5
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.1.200 # the virtual IP
}
track_script {
chkhaproxy
}
}问题是,我似乎既不能得到代理,也不能按预期保持工作。当我只运行代理1(未运行),直接从客户端连接到代理1's IP地址时,似乎只将连接转发到broker 2。它似乎无法连接到broker 1(是的,我检查了它们是否都已启动)。如果只挂起broker 2,客户端就不会连接)。经过一番调查,我认为这可能是因为haproxy和代理使用相同的IP。所以我试着用一个虚拟IP来保存。但是在尝试之后,我发现我甚至无法连接到虚拟IP。客户端试图连接到它时,会给我错误"OSError:Errno 113 No路由到主机“。
我遗漏了什么?
编辑:在使用this /var/log/syslog跟踪日志时,结果是
2月7日14:56:19 pi01 Keepalived_healthcheckers10453:打开文件‘/etc/ file’。2月7日14:56:19 pi01 Keepalived_healthcheckers10453:未知关键字'lvs_id‘2月7日:56:19 pi01 Keepalived_vrrp10454:默认接口eth0不存在,也没有指定接口。跳过静态地址192.168.1.200。2月7日14:56:19 pi01 Keepalived_vrrp10454:无法加载ipset库- libipset.so.3:无法打开共享对象文件:没有这样的文件或目录2月7日14:56:19 pi01 Keepalived_vrrp10454:VRRP_Instance(VI_1)未知接口!pi01 Keepalived_healthcheckers10453:使用LinkWatch内核netlink反射器.2月7日14:56:20 pi01 Keepalived_vrrp10454:Stopped 14:56:20 pi01 Keepalived10450:Keepalived_vrrp与永久错误配置一起退出。终止2月7日14:56:20 pi01 Keepalived10450:Stopped 7 14:56 pi01 Keepalived_healthcheckers10453:Stopped 7 14:56:25 pi01 Keepalived10450:Stopped Keepalivev1.3.2(2016年12月25日)
它似乎在使用"LinkWatch内核netlink反射器“时始终失败。
发布于 2019-02-06 20:39:47
第一个问题: HAProxy被配置为在emqx使用的同一个端口上的所有接口上侦听。这会给你带来麻烦的。
如果您想让它们使用相同的端口,或者让HAProxy和emqx侦听不同的端口,就可以为保留的/HAProxy侦听器设置一个特定的NIC。
一旦你成功了,就该看看“守护神”了。我最好的建议是跟踪你的日志。确保主机和备份之间的路由器ID是相同的,并且备份得到的优先级比主机低。坦率地说,我不记得从我的头顶,如果你必须允许mac欺骗或类似的开关,使VRRP (协议所使用的保持)工作。
https://serverfault.com/questions/952653
复制相似问题