Haproxy 统计页面在 TCP 模式下不起作用

Haproxy 统计页面在 TCP 模式下不起作用

Haproxy 专家,

我无法让 haproxy 统计页面与后端的 TCP 模式一起工作。

global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats

defaults
    mode                    tcp
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000
    stats enable
    stats hide-version
    stats refresh 30s
    stats show-node
    stats auth admin:xxxxxxxxxxxxxxxxx
    stats uri /haproxy?stats

frontend main
    listen stats
    bind *:5000
    mode tcp
    default_backend             app

backend app
    balance     roundrobin
#backends
    server   server1  xxx.xxx.xxx.xxx:10222 check
    server   server2  xxx.xxx.xxx.xxx:34013 check

答案1

HAproxy 需要 HTTP 模式监听器来监听统计页面,仅此而已。如果您需要统计信息,则需要拥有或创建一个。

listen如果您没有任何 HTTP 后端或者您希望统计信息页面不绑定到任何现有的 HTTP 侦听器,则可以使用没有任何实际后端的简单部分来实现。

从默认值中删除所有与统计相关的行,并listen为统计创建一个单独的部分,将所有这些行放在其中:

listen stats
    mode http
    bind *:8080
    stats enable
    stats hide-version
    stats refresh 30s
    stats show-node
    stats auth admin:xxxxxxxxxxxxxxxxx
    stats uri /haproxy?stats

还要删除listen stats紧跟在 之后的行frontend main。它当前所做的是终止“前端”部分main(恰好是空的并且只有默认值),创建新的“监听”部分stats并将以下几行应用于它。我确信这不是您想要的。

相关内容