Я следовал инструкциям, приведенным здесь, https://www.haproxy.com/blog/introduction-to-haproxy-logging/, чтобы настроить ведение журнала. Как описано в документации, я создал файл конфигурации rsyslog, haprorxy_log.conf и перезапустил rsyslog:
# Collect log with UDP
$ModLoad imudp
$UDPServerAddress 127.0.0.1
$UDPServerRun 514
# Creating separate log files based on the severity
local0.* /home/user1/logs/haproxy/haproxy.log
После этого я помещаю необходимое правило в глобальные настройки файла конфигурации:
global
log 127.0.0.1:514 local0
maxconn 4096
quiet
user root
group root
#/installs version
defaults
log global
mode http
retries 3
timeout client 3600s
timeout connect 3600s
timeout server 3600s
option httplog
balance roundrobin
Пока что единственное различие, которое я заметил, заключается в том, что когда я запускаю haproxy со строкой регистрации в глобальных настройках, он выводит предупреждения для файла конфигурации на консоль. Я не видел файла, созданного для этого в / home / user1 / logs / haproxy /. Какие еще шаги мне следует предпринять?
Я надеюсь, что приведенная ниже конфигурация поможет, ubuntu18: 04 haproxy 2.0.15 в моем случае все запросы регистрируются /var/log/haproxy.log
root@marat6c:~# cat /etc/haproxy/haproxy.cfg
global
log /dev/log local0 info
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend mywebsite
bind *:80
default_backend webservers
backend webservers
server web1 duckduckgo.com:80
root@marat6c:~# cat /etc/rsyslog.d/49-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
:programname, startswith, "haproxy" {
/var/log/haproxy.log
stop
}