我有两个HAProxy实例。这两个实例都启用了统计数据并且工作正常。
我正在尝试将两个实例的统计信息合并为一个,以便我可以使用单个HAProxy来查看前端/后端统计信息。我已经尝试在两个haproxy实例的同一端口上拥有统计信息监听器,但这不起作用。我尝试过使用套接字接口,但这只会报告其中一个接口。
有什么想法吗?
我的一个haproxy配置文件如下所示:
global
daemon
maxconn 256
log 127.0.0.1 local0 debug
log-tag haproxy
stats socket /tmp/haproxy
defaults
log global
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:8000
default_backend servers
log global
option httplog clf
backend servers
balance roundrobin
server ws8001 localhost:8001
server ws8002 localhost:8002
log global
listen admin
bind *:7000
stats enable
stats uri /
除了前/后端服务器IP不同之外,其他haproxy配置是相同的。
答案 0 :(得分:7)
虽然对这个具体问题可能不是一个确切的答案,但我已经看到了这个问题,我认为它应该得到回答。
在nbproc
大于1的情况下投放时,Stack Exchange guys have a unique solution.他们有listen
部分接收SSL流量,然后使用send-proxy
到127.0.0.1:80
。然后他们有一个与127.0.0.1:80
绑定的前端:bind 127.0.0.1:80 accept-proxy
。然后在那个前端内部绑定那个前端,例如bind-process 1
并在全局部分中执行以下操作:
global
stats socket /var/run/haproxy-t1.stat level admin
stats bind-process 1
这样做的好处是,它们可以获得多个用于SSL卸载的核心,然后是一个专用于负载平衡流量的核心。所有流量最终都流经这个前端,因此他们可以准确地测量来自该前端的统计数据。
答案 1 :(得分:2)
这不起作用。 Haproxy在每个过程中保持统计分离。它无法组合多个流程的统计数据。
也就是说,您当然可以自由使用外部监控工具,如(munin,graphite甚至nagios),它们可以聚合来自多个统计数据套接字的CSV数据,并将它们显示在统一图表中。然而,这些工具超出了核心haproxy的范围。