结合HAProxy统计数据?

dav*_*ano 5 haproxy

我有两个HAProxy实例.两个实例都启用了统计信息并且工作正常.

我试图将两个实例的统计数据合并为一个,以便我可以使用单个HAProxy来查看前/后端统计信息.我试图在两个haproxy实例的同一端口上使用stats监听器,但这不起作用.我已尝试使用套接字接口,但这仅报告其中一个接口.

有任何想法吗?

我的一个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 /
Run Code Online (Sandbox Code Playgroud)

除了前/后端服务器IP不同之外,其他haproxy配置是相同的.

Jon*_*ver 7

虽然也许不是这个具体问题的确切答案,但我已经看到了这样的问题,我认为值得回答.

当运行nbproc大于1时,Stack Exchange人员有一个独特的解决方案.他们有一个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
Run Code Online (Sandbox Code Playgroud)

这样做的好处是,它们可以获得多个用于SSL卸载的核心,然后是一个专用于负载平衡流量的核心.所有流量最终都流经这个前端,因此他们可以准确地测量该前端的统计数据.


Hol*_*ust 3

这是行不通的。Haproxy 将每个进程中的统计数据分开。它没有能力组合多个进程的统计数据。

也就是说,您当然可以自由使用外部监控工具,例如(munin、Graphite 甚至 nagios),它们可以聚合来自多个统计套接字的 CSV 数据并将其显示在统一的图表中。然而,这些工具超出了核心 haproxy 的范围。