Haproxy nie umożliwia nam zapisywania logów bezpośrednio do pliku i trzeba w tym celu użyć np. rsysloga. Logi można wysyłać na zdalny serwer logów, lub odpalić taki serwer lokalnie.
Konfiguracja
Dodajmy konfigurację do rsysloga /etc/rsyslog.d/49-haproxy.conf
$ModLoad imudp
$UDPServerAddress 127.0.0.1
$UDPServerRun 514
local0.panic,local0.alert,local0.crit -/var/log/haproxy-critical.log
& ~
local0.error -/var/log/haproxy-error.log
& ~
:msg, contains, "SSL handshake" /var/log/haproxy-ssl.log
& ~
:msg, contains, "<BADREQ>" /var/log/haproxy-badreq.log
& ~
local0.* -/var/log/haproxy.log
& ~
Konfiguracja haproxy.conf
global
log 127.0.0.1 local0
log 127.0.0.1 local0 info
log 127.0.0.1 local0 crit
log 127.0.0.1 local0 alert
defaults
log global
log-format %ci:%cp\ [%t]\ %ft\ %b/%s\ %Tq/%Tw/%Tc/%Tr/%Tt\ %ST\ %B\ %CC\ %CS\ %tsc\ %ac/%fc/%bc/%sc/%rc\ %sq/%bq\ %hr\ %hs\ %{+Q}r\ %{+X}o\ %ci:%cp_%fi:%fp_%Ts_%rt:%pid\ %sslv\ %sslc
Dodanie reguł logrotat'a /etc/logrotate.d/haproxy
/var/log/haproxy*.log {
daily
rotate 14
missingok
notifempty
compress
delaycompress
postrotate
invoke-rc.d rsyslog rotate >/dev/null 2>&1 || true
endscript
}
Na koniec reload haproxy i rsyslog'a
systemctl reload rsyslog
systemctl reload haproxy