结合HAProxy统计数据?

时间:2014-06-24 19:20:12

标签: haproxy

我有两个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配置是相同的。

2 个答案:

答案 0 :(得分:7)

虽然对这个具体问题可能不是一个确切的答案,但我已经看到了这个问题,我认为它应该得到回答。

nbproc大于1的情况下投放时,Stack Exchange guys have a unique solution.他们有listen部分接收SSL流量,然后使用send-proxy127.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的范围。