Logging

如何讓 haproxy 登錄到 systemd/journald?

  • December 20, 2021

我有一個想與 haproxy 一起使用的目前一代 Linux 系統。Journald 會很高興地從 記錄 stdout .service,並將日誌標記為來自該服務,但haproxy 似乎無法記錄到 stdout

讓 haproxy 登錄到 systemd/journald 的最簡單和最乾淨的方法是什麼?

編輯:目前配置是預設配置:

global
   log         127.0.0.1 local2

但是沒有local2設施,因為本地盒子上沒有系統日誌。

Systemd 有一個 Unix 域套接字,您可以登錄到:

global
       log /dev/log local0 info

然後systemctl restart haproxy使更改生效。

這個答案適用於那些苦苦掙扎的人。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
 }

引用自:https://serverfault.com/questions/727944