Ich habe ein Linux-System der aktuellen Generation, das ich gerne mit haproxy verwenden möchte. Journald loggt stdout gerne von .service
und markiert das Protokoll als von diesem Dienst stammend, aberhaproxy scheint nicht in der Lage zu sein, sich bei stdout anzumelden.
Was ist der einfachste und sauberste Weg, um haproxy dazu zu bringen, sich bei systemd/journald anzumelden?
Bearbeiten: die aktuelle Konfiguration ist die Standardeinstellung:
global
log 127.0.0.1 local2
Es gibt jedoch keine local2
Möglichkeit, da auf der lokalen Box kein Syslog vorhanden ist.
Antwort1
Systemd verfügt über einen Unix-Domain-Socket, bei dem Sie sich anmelden können:
global
log /dev/log local0 info
Dann systemctl restart haproxy
werden die Änderungen wirksam.
Antwort2
Diese Antwort gilt für diejenigen, die Schwierigkeiten haben. 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
}