如何记录来自 HAProxy 的请求?

如何记录来自 HAProxy 的请求?

我正在将 HAProxy 设置为负载均衡器,并且可以让它工作(它将请求转发到后端)。但是,我无法让它将每个请求记录到文件中。我可以看到如下系统类型消息:

Mar  3 19:36:33 rg-staging-balancer haproxy-systemd-wrapper[29244]: haproxy-systemd-wrapper: SIGTERM -> 8750.
Mar  3 19:36:33 rg-staging-balancer haproxy-systemd-wrapper[29244]: haproxy-systemd-wrapper: exit, haproxy RC=0
Mar  3 19:36:33 rg-staging-balancer haproxy-systemd-wrapper[18109]: haproxy-systemd-wrapper: executing /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds

不是个别请求。我正在运行 Ubuntu 16.04,HAProxy 1.7.2-1ppa1~xenial,配置如下:

global
     log 127.0.0.1 local1 notice
     tune.ssl.default-dh-param 2048
defaults
     timeout client 10s
     timeout server 10s
     timeout connect 10s

frontend http
     reqadd X-Forwarded-Proto:\ https
     maxconn 2000
     bind :443 ssl crt /etc/ssl/haproxy.pem
     default_backend rails_servers
backend rails_servers
     mode http
     option httpchk
     option forwardfor
     server rg_staging 192.168.203.139:80

关于如何记录每个请求有什么想法吗?

答案1

您是否尝试过在 rsyslog 上启用 UDP 日志记录(默认情况下禁用)并为 LOCAL1 添加一个功能(您正在使用的功能)?

确保这些行没有被注释掉/etc/rsyslog.conf

$ModLoad imudp

$UDPServerRun 514

添加此行将 HAProxy 记录到上述配置文件中:

local1.*    /var/log/haproxy.log

答案2

你必须把

mode http
option httplog 

在您的前端以记录 HTTP 请求。

相关内容