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)