Email alerts can be a crucial part of your monitoring and alerting strategy, enabling you to stay informed about the health of your servers.
You can configure email alerts to get notifications about load balancer events. When an event is generated, it is categorized under a specific level of importance. These levels range from debug (the least serious) to emergency (the most serious). You will set the level for which you want to receive alerts.
Alerts will be sent when:
- An active server is marked as down and the configured alert level is
- A disabled server is marked as down and the configured alert level is
- A server is marked as up or enters the drain state and the configured alert level is
option log-health-checksdirective is enabled with the configured alert level as
infoor lower, and a health check status update occurs.
Configure mail servers Jump to heading
You must first configure a
mailers section where you list Message Transfer Agent (MTA) servers. These servers deliver your messages to recipients using the SMTP protocol. The load balancer sends an email to each mail server in the list. You can define multiple
Create a new
mailerssection in your configuration file with a label of your choice, such as
smtp_servers. In the example below, we list two MTA servers:haproxymailers smtp_serversmailer smtp1 192.168.1.10:587mailer smtp2 192.168.1.11:587haproxymailers smtp_serversmailer smtp1 192.168.1.10:587mailer smtp2 192.168.1.11:587
mailerline has these arguments:
- A label, such as
- An IP address and port
- A label, such as
email-alertdirectives to a
defaultssection:haproxydefaultsmode httplog globaloption httplogtimeout connect 10stimeout client 1mtimeout server 1m# email settingsemail-alert mailers smtp_serversemail-alert from email@example.com to firstname.lastname@example.org level infoemail-alert myhostname LoadBalancer1haproxydefaultsmode httplog globaloption httplogtimeout connect 10stimeout client 1mtimeout server 1m# email settingsemail-alert mailers smtp_serversemail-alert from email@example.com to firstname.lastname@example.org level infoemail-alert myhostname LoadBalancer1
In this example:
email-alert mailers [mailersectionname]sets the
mailerssection to use to send emails.
email-alert from [emailaddr]sets the email sender’s address, also known as the From field.
email-alert to [emailaddr]sets the recipient’s address, also known as the To field.
email-alert level [level]sets the maximum log level of messages for which email alerts will go out; The
<level>can be any of these syslog levels:
email-alert myhostname [hostname]sets the hostname to use when communicating with mailers; by default, it is the system’s hostname.
Enable the Lua implementation Jump to heading
- HAProxy 2.8
- HAProxy Enterprise 2.8r1
- Not available on HAProxy ALOHA
The alerts feature is compiled into the software, making it impossible to customize. If, however, you wish to make changes to the email template, start by enabling the Lua implementation. It is a drop-in replacement for the compiled-in implementation, but allows you to edit the code.
lua-loaddirective to your
globalsection. For HAProxy Enterprise:haproxygloballua-load /opt/hapee-2.8/doc/lua/mailers.luahaproxygloballua-load /opt/hapee-2.8/doc/lua/mailers.lua
For HAProxy, download mailers.lua from GitHub.
Make changes to the Lua file to suit your needs.
Reload the load balancer configuration.