Логирование событий HAProxy в CentOS/RedHat не работает из коробки.
В /etc/haproxy/haproxy.cfg можем видим эту строку:
1 2 3 |
global log 127.0.0.1 local2 [...] |
что означает, что HAProxy посылает события на 127.0.0.1, но по умолчанию rsyslog не принимает логи по сети.
Открываем файл /etc/rsyslog.conf и раскомментируем строки:
1 2 |
$ModLoad imudp $UDPServerRun 514 |
Теперь rsyslogd принимает события на 514 порту. Ограничиваем возможность приема локальным хостом:
1 2 3 |
$ModLoad imudp $UDPServerRun 514 $UDPServerAddress 127.0.0.1 |
Теперь создаем /etc/rsyslog.d/haproxy.conf с таким содержанием:
1 |
local2.* /var/log/haproxy.log |
Также можно создать отдельные файлы для отдельных уровней логирования:
1 2 |
local2.=info /var/log/haproxy-info.log local2.notice /var/log/haproxy-allbutinfo.log |
Перезапускаем rsyslog и убедимся, что новые логфайлы созданы:
1 2 3 4 5 6 |
# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] # ls -l /var/log | grep haproxy -rw-------. 1 root root 131 8 oct. 16:43 haproxy-allbutinfo.log -rw-------. 1 root root 106 8 oct. 16:42 haproxy-info.log |