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

时间:2014-10-28 18:42:46

标签: linux sockets unix 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 

这是/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。任何帮助将不胜感激。

3 个答案:

答案 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。