Need to configure HAProxy Logging Rsyslog on CentOS 8?
This guide will help you.
HAProxy (High Availability Proxy) is used for TCP and HTTP-based applications.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform Software Installation and Configuration on Ubuntu Servers.
In this context, we shall look into how to set up HAProxy Logging with Rsyslog on CentOS.
High Availability Proxy or HAProxy is a widely used TCP and HTTP-based proxy server that runs on Linux, Solaris, and FreeBSD.
On most of the CentOS 8 installations, HAProxy is not set up in a way to write its log output to a file by default.
Let's see how to configure this with some quick and easy steps.
1. Installing and Enabling HAProxy
First, run the following dnf command:
$ sudo dnf install haproxy
Then we have to enable and start it using the systemctl command:
$ sudo systemctl enable haproxy.service
We will get the following output:
Created symlink /etc/systemd/system/multi-user.target.wants/haproxy.service → /usr/lib/systemd/system/haproxy.service.
Now we can start the service to ensure that it runs with a default configuration using the following command.
$ sudo systemctl start haproxy.service
To check the status of the service we can use the following command:
$ sudo systemctl status haproxy.service
Once we ensure that HAProxy is enabled and running, we can continue to configure HAProxy’s logging directives.
2. Configuring HAProxy Logging Directives
To configure HAProxy’s logging directives first, we have to open /etc/haproxy/haproxy.cfg in vi or your preferred editor:
$ sudo vi /etc/haproxy/haproxy.cfg
Then find the line “log 127.0.0.1 local2” and comment it out by adding a # character to the beginning of the line, as given in the following example:
# /etc/sysconfig/syslog
#
# local2.* /var/log/haproxy.log
#
#log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
Now we have to add a line directly after the commented out line with the following contents:
log /dev/log local0
The log /dev/log local0 line will create a file inside that directory that Rsyslog will use to collect log entries from.
After that save the changes made in /etc/haproxy/haproxy.cfg.
The final step is to create the /var/lib/haproxy/dev directory since it does not exist by default.
We can create the directory using the mkdir command and then restart HAProxy:
$ sudo mkdir /var/lib/haproxy/dev
$ sudo systemctl restart haproxy.service
3. Configuring Rsyslog to Collect HAProxy Logs
To collect logs from the HAProxy service, first, open a new file /etc/rsyslog.d/99-haproxy.conf using vi.
$ sudo vi /etc/rsyslog.d/99-haproxy.conf
Then add the following lines into the file:
$AddUnixListenSocket /var/lib/haproxy/dev/log
# Send HAProxy messages to a dedicated logfile
:programname, startswith, "haproxy" {
/var/log/haproxy.log
stop
}
Once we complete editing /etc/rsyslog.d/99-haproxy.conf, we have to save the changes made.
We have now configured HAProxy to Log Rsyslog.
This article will guide you on how to set up #HAProxy Logging #Rsyslog with some quick and easy steps. HAProxy is installed with RightScale load #balancer ServerTemplates. Load-balancer servers are also known as front-end servers. Generally, their purpose is to direct users to available #application servers. HAProxy can be installed in front of them to provide load balancing and high availability.