On va checker/modifier la configuration du haproxy
nano /etc/haproxy/haproxy.cfg
Lien vers le fichier : cliquez ici
Au niveau de la ligne log-format il faut ajouter backend = %b
Exemple
log-format "%{+Q}o\ client_address = %ci, client_port = %cp, backend = %b, server_address = %si, server_port = %sp path"
Lien vers le fichier : cliquez ici
Cela aura pour effet de faire apparaitre le nom du backend dans les logs d'HAproxy.
On va maintenant s'en servir pour filtrer au niveau de rsyslog.
Pour cela au niveau de rsyslog on va faire une configuration à part
nano /etc/rsyslog.d/haproxy.conf
Lien vers le fichier : cliquez ici
Le bloc important à ajouter et à adapter est celui ci-dessous
On y dit : pour le process haproxy, si le message contient backend = "monbackend" alors mettre les logs dans le fichier haproxy-traffic-monbackend.log
if $programname == 'haproxy' and $msg contains 'backend = "monbackend"' then {
action(type="omfile" file="/var/log/haproxy-traffic-monbackend.log")
stop
}
Lien vers le fichier : cliquez ici
Voici un exemple de contenu pour /etc/rsyslog.d/haproxy.conf
# Collect log with UDP
$ModLoad imudp
$UDPServerAddress 127.0.0.1
$UDPServerRun 514
# Creating separate log files based on the severity
local6.* /var/log/haproxy-traffic.log
local6.notice /var/log/haproxy-admin.log
if $programname == 'haproxy' and $msg contains 'backend = "monbackend"' then {
action(type="omfile" file="/var/log/haproxy-traffic-monbackend.log")
stop
}
Lien vers le fichier : cliquez ici
Pensez à adapter votre politique logrotate avec par exemple
/var/log/haproxy-traffic*.log
/var/log/haproxy-admin.log
{
daily
rotate 3
compress
missingok
notifempty
sharedscripts
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}
Lien vers le fichier : cliquez ici
Article(s) en relation(s)