After configuration of HAProxy to balance web traffic, I’ve noticed that HAProxy is not generating any logs in my server. Due to its load balancer role, logging is vital to diagnose any issue that might come in future.
In its default config, HAProxy send logs to a syslog facility: local0, via a socket connection. By default, your syslog configuration probably doesn’t accept socket connections, and even doesn’t have a local0 facility, so you have no HAProxy log. If you want it, configure syslog to accept TCP connections by adding -r to syslogd parameters.
On a RedHat/CentOS server, edit the value of SYSLOGD_OPTIONS in /etc/sysconfig/syslog:
SYSLOGD_OPTIONS="-m 0 -r"
On a Debian/Ubuntu server, edit the value of SYSLOGD in /etc/default/syslogd:
Then set up syslog facility local0 and direct it to file /var/log/haproxy.log or your desired location by editing /etc/syslog.conf:
finally, restart syslog service to apply changes:
$ /etc/init.d/syslog restart
You can see that HAProxy logging is started.
Other useful article on this blog that you may like to read:
* Configure HAProxy for content switching
* 5 Steps to secure your Production Linux Server
* Ensuring secure access to your Production Linux Server
* Bash script to backup essential log files in Linux Server