Haproxy没有使用rsyslog进行日志记录

Sha*_*tel 7 unix sockets linux haproxy rsyslog

我想在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 
Run Code Online (Sandbox Code Playgroud)

这是/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
&~ 
Run Code Online (Sandbox Code Playgroud)

在进行适当的更改后我已经重新启动了haproxy和rsyslogd,以确保它们被拾取.甚至没有创建/var/log/haproxy.log.任何帮助,将不胜感激.

小智 5

rsyslog配置假定使用chroot的HAProxy,该HAProxy与haproxy配置不匹配。chroot HAProxy通过添加以下行

    chroot  /var/lib/haproxy
Run Code Online (Sandbox Code Playgroud)

到haproxy配置的全局节,或更改rsyslog创建的套接字的位置

$AddUnixListenSocket /dev/log
Run Code Online (Sandbox Code Playgroud)