我在Ubuntu 16.04服务器上的一个非常基本的configuration上遇到了一些麻烦,使用haproxy来平衡两个碳中继过程中的传入度量。 Haproxy仅在“listen”部分的服务器列表中创build一个到第一个服务器的TCP连接。 此外,当我tcpdump和观察这两个碳中继端口,只有连接的一个从haproxy接收任何指标,但如果我启用服务器条目中的“检查”参数,运行状况检查显示在tcpdump输出。
如果我把第一台服务器注释掉,或者反转它们的顺序,它连接到另一台服务器,其他的testing并没有显示碳中继过程有什么问题,所以我很难理解为什么它只能连接到一台服务器。
我已经尝试了roundrobin,static-rr和leastconn作为余额选项。
下面是haproxy.cfg和carbon-relay.conf相关部分的要点,以及netstat输出,显示到一台服务器的侦听端口和tcp连接。
https://gist.github.com/Calygos/b1442e0936adafb27fc80a76477235e9
由于您只有一个客户端(本地collectd进程),HAProxy正在按照应有的工作。
它正在接收来自collectd的连接,并select两个后端服务器之一。 如果你有更多的客户,那么它将开始平衡两者的stream量。
如果您想testing这个,请将您的balancealgorithm设置为roundrobin并重新启动collectd 。 Yuu应该看到这个新的连接命中另一个后端服务器。
或者,你可以开始第二个连接(与collectd ,甚至telnet),它应该find它的方式到第二个服务器。