Estadísticas en HAProxy
La visualización de estadísticas tiene dos grandes ventajas, la primera es la capacidad de ser monitoreado/alertado; la segunda, ante eventualidades, funciona como consulta inmediata.
HAProxy permite visualizar el comportamiento general de sus frontends y backends por medio de una interfaz web y CLI. Ambas se tienen que habilitar por medio de configuración. Lo único que no me gusta en la recolección de métricas es que son acomulativas, es decir, no podemos realizar una revisión histórica. Para obtener esta funcionalidad realizamos un plugin de collectd y lo llevamos a Grafana. En algún otro artículo explicaré cómo se hizo.
Para nosotros es importante solo algunas estadísticas que ofrece, como el tiempo que tardó la petición/respuesta, si hay encolamiento o el índice de error. Hay muchas más métricas que son de utilidad, sin embargo, éstas dependen de las necesidades de cada organización.
Bloque Listen
La manera más sencilla es por medio del bloque listen, cuya organización ayuda a mantener un archivo de configuración claro y legible. Aunado, la ventaja que tiene sobre habilitar las estadísticas en los defaults, es la flexibilidad de utilizarlo con SSL, cuyos atributos en tema de seguridad son indispensables si se expone a Internet.
Recomiendo validar si se tiene compilado HAProxy con soporte para SSL en caso que sea requerido. En la siguiente imagen se muestra el soporte para SSL en OPTIONS. Si es requerido, en la compilación se pasa el flag y listo.

La pantalla de estadísticas luce como la siguiente.

Configuración.
listen stats
mode http
bind *:9080
stats enable
stats uri /ha_stats
stats refresh 45s
stats auth admin:admin
stats show-legendsfrontend webservers
mode http
bind *:9081
use_backend webserversbackend webservers
mode http
server web1 192.168.33.10:80

A modo de resumen, la configuración quiere decir:
- Será en modo HTTP
- Escuchará por el puerto 9080
- Se habilitan las estadísticas
- La URI no será por defecto, se encontrará en ha_stats
- Se refrescará la página cada 45 segundos
- Se usará password y contraseña para ingresar (admin/admin)
- Mostrará más información, como la IP, en los servidores cuando el puntero se coloque sobre ellos.
- Los otros módulos son parte de la aplicación. Son necesarios, por lo menos 1 backend y 1 frontend para que las estadísticas se puedan visualizar.

Para utilizarlo con SSL primero hay que contar con un certificado, éste puede ser self-signed. Solo se modifica la directiva de bind.
listen stats
mode http
bind *:9080 ssl crt /opt/haproxy-1.6.14/ssl/certificate.pem
stats enable
stats uri /ha_stats
stats refresh 45s
stats auth admin:admin
stats show-legendsfrontend webservers
mode http
bind *:9081
use_backend webserversbackend webservers
mode http
server web1 192.168.33.10:80