Alerts and monitoring

Email alerts

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 alert or lower.
  • A disabled server is marked as down and the configured alert level is notice or lower.
  • A server is marked as up or enters the drain state and the configured alert level is notice or lower.
  • The option log-health-checks directive is enabled with the configured alert level as info or 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 mailer sections.

  1. Create a new mailers section in your configuration file with a label of your choice, such as smtp_servers. In the example below, we list two MTA servers:

    haproxy
    mailers smtp_servers
    mailer smtp1 192.168.1.10:587
    mailer smtp2 192.168.1.11:587
    haproxy
    mailers smtp_servers
    mailer smtp1 192.168.1.10:587
    mailer smtp2 192.168.1.11:587

    A mailer line has these arguments:

    • A label, such as smtp1
    • An IP address and port
  2. Add email-alert directives to a frontend or defaults section:

    haproxy
    defaults
    mode http
    log global
    option httplog
    timeout connect 10s
    timeout client 1m
    timeout server 1m
    # email settings
    email-alert mailers smtp_servers
    email-alert from alerts@mycompany.com
    email-alert to helpdesk@mycompany.com
    email-alert level info
    email-alert myhostname LoadBalancer1
    haproxy
    defaults
    mode http
    log global
    option httplog
    timeout connect 10s
    timeout client 1m
    timeout server 1m
    # email settings
    email-alert mailers smtp_servers
    email-alert from alerts@mycompany.com
    email-alert to helpdesk@mycompany.com
    email-alert level info
    email-alert myhostname LoadBalancer1

    In this example:

    • email-alert mailers [mailersectionname] sets the mailers section 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: emerg alert, crit, err, warning, notice, info, debug.
    • 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

Available since

  • 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.

  1. Add the lua-load directive to your global section. For HAProxy Enterprise:

    haproxy
    global
    lua-load /opt/hapee-3.0/doc/lua/mailers.lua
    haproxy
    global
    lua-load /opt/hapee-3.0/doc/lua/mailers.lua

    For HAProxy, download mailers.lua from GitHub:

  2. Make changes to the Lua file to suit your needs.

  3. Reload the load balancer configuration.

See also Jump to heading

Do you have any suggestions on how we can improve the content of this page?