У меня есть система Linux текущего поколения, которую я хотел бы использовать с haproxy. Journald с радостью будет вести журнал stdout из .service
и отметит журнал как исходящий от этой службы, ноhaproxy, похоже, не может выводить данные на stdout.
Какой самый простой и понятный способ заставить haproxy вести журнал в systemd/journald?
Редактировать: текущая конфигурация — это конфигурация по умолчанию:
global
log 127.0.0.1 local2
Но такой возможности нет, local2
поскольку на локальном компьютере нет системного журнала.
решение1
Systemd имеет сокет домена Unix, в который вы можете войти:
global
log /dev/log local0 info
Затем systemctl restart haproxy
необходимо сделать так, чтобы изменения вступили в силу.
решение2
Этот ответ для тех, кто испытывает трудности. haproxy_global.cfg =>
global
log 127.0.0.1:514 local0
defaults
mode http
log global
log-format "%ci:%cp [%tr] %ft %b/%s %TR/%Tw/%Tc/%Tr/%Ta %ST %B %CC %CS %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq %hr %hs %{+Q}r"
/etc/rsyslog.d/haproxy.conf =>
# Collect log with UDP
$ModLoad imudp
$UDPServerAddress 127.0.0.1
$UDPServerRun 514
$AddUnixListenSocket /var/lib/haproxy/dev/log
# Send HAProxy messages to a dedicated logfile
:programname, startswith, "haproxy" {
/var/log/haproxy/haproxy.log
stop
}
/etc/logrotate.d/haproxy =>
/var/log/haproxy/haproxy.log {
missingok
notifempty
sharedscripts
rotate 14
daily
compress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}