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.
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