我有一套最新一代的 Linux 系统,我想将其与 haproxy 一起使用。Journald 很乐意记录来自 的标准输出.service
,并将日志标记为来自该服务,但是haproxy 似乎无法记录到标准输出。
让 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
}