Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Haproxy not logging with rsyslog

I want to setup HTTP logging in HAProxy and am having some trouble getting it to output the requests correctly.

Here is the HAProxy relevent configuration:

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 

Here is the /etc/rsyslog.d/haproxy.conf file:

# 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
&~ 

I've restarted both haproxy and rsyslogd after making the proper changes to make sure that they were picked up. The /var/log/haproxy.log isn't even being created. Any help would be appreciated.

like image 609
Shail Patel Avatar asked Oct 28 '14 18:10

Shail Patel


2 Answers

The rsyslog configuration assumes a chroot'd HAProxy, which does not match the haproxy config. Either chroot HAProxy by adding the line

    chroot  /var/lib/haproxy

to the global stanza of the haproxy config, or change the location of the socket rsyslog creates

$AddUnixListenSocket /dev/log
like image 138
user4556274 Avatar answered Oct 02 '22 19:10

user4556274


Under global change/add:

global
    chroot  /var/lib/haproxy
    log /var/lib/haproxy/dev/log    local0
    log /var/lib/haproxy/dev/log    local1 notice
    ... rest of your file
like image 25
basickarl Avatar answered Oct 02 '22 19:10

basickarl