我想在HAProxy中设置HTTP日志记录,并且在使其正确输出请求时遇到一些麻烦。
以下是HAProxy相关配置:
global
log /dev/log local0
log /dev/log local1 notice
maxconn 200000
tune.ssl.default-dh-param 2048
user haproxy
group haproxy
daemon
stats socket /tmp/sock1 user root group root mode 777 level admin
defaults
log global
mode http
option httplog
option dontlognull
option httpclose
retries 3
option redispatch
maxconn 200000
backlog 20000
timeout connect 5s
timeout client 50s
timeout server 180000
balance roundrobin
cookie SERVERID rewrite
这是/etc/rsyslog.d/haproxy.conf文件:
# Create an additional socket in haproxy's chroot in order to allow logging via
# /dev/log to chroot'ed HAProxy processes
$AddUnixListenSocket /var/lib/haproxy/dev/log
# Send HAProxy messages to a dedicated logfile
if $programname startswith 'haproxy' then /var/log/haproxy.log
&~
我做了正确的更改后重新启动了haproxy和rsyslogd,以确保它们被拾取。甚至没有创建/var/log/haproxy.log。任何帮助将不胜感激。
答案 0 :(得分:5)
rsyslog配置假设一个chroot的HAProxy,它与haproxy配置不匹配。通过添加行
来chroot HAProxy chroot /var/lib/haproxy
到haproxy配置的全局节,或者更改套接字rsyslog创建的位置
$AddUnixListenSocket /dev/log
答案 1 :(得分:1)
在全球变化/添加下:
global
chroot /var/lib/haproxy
log /var/lib/haproxy/dev/log local0
log /var/lib/haproxy/dev/log local1 notice
... rest of your file
答案 2 :(得分:1)
我在Ubuntu 16.04上遇到了完全相同的问题。尝试重新启动haproxy和syslog以及/var/log/haproxy.log仍未创建。
我最终只是重新启动服务器,并且在启动时创建了/var/log/haproxy.log。