Para habilitar a opção de healthcheck, precisamos adicionar a opção check ao lado dos servidores de backend, no qual temos as opções abaixo:
- inter: Tempo que é enviado os pacotes de healthcheck quando o mesmo ainda está UP
- downinter: Quando o HAProxy perceber que o servidor está down, ele vai enviar a cada tempo configurado no downinter
- fall: Quando a tentativa do valor configurado fall falhar, ele é retirado do cluster
- raise: Numero de vezes que ele precisa responder o healthcheck para voltar ao cluster
Realizar Healthcheck Layer 4
frontend thehive
# Modo de balanceamento
mode http
# Porta que o HAProxy vai escutar
bind *:80
# Nome do backend que o HAProxy vai redirecionar as conexões
default_backend thehive
# Encaminhar o IP que fez a requisição para os servidores de backend
option forwardfor
backend thehive
# Tipo de balanceamento
balance roundrobin
# Servidores que estão por trás do balanceador
server thehive-1 192.168.64.138:9000 check inter 10s downinter 2m fall 2 raise 5
server thehive-2 192.168.64.139:9000 check inter 10s downinter 2m fall 2 raise 5
Realizar Healthcheck Layer 7
frontend thehive
# Modo de balanceamento
mode http
# Porta que o HAProxy vai escutar
bind *:80
# Nome do backend que o HAProxy vai redirecionar as conexões
default_backend thehive
# Encaminhar o IP que fez a requisição para os servidores de backend
option forwardfor
backend thehive
# Tipo de balanceamento
balance roundrobin
#Utilizando o healthcheck layer 7
option httpchk GET / HTTP/1.1\r\nHost:localhost
# Servidores que estão por tras do balanceador
server thehive-1 192.168.64.138:9000 check inter 10s downinter 2m fall 2 rise 5
server thehive-2 192.168.64.139:9000 check inter 10s downinter 2m fall 2 rise 5
Dessa forma o pacote para checar o status do servidor é enviado a cada 10 segundos, se o servidor ficar offline será enviado healthcheck a cada 2 minutos, quando tiver dois pacotes falhos para checar o backend, ele é retirado automaticamente do cluster, e para ele voltar será necessário que ele tenha 5 TCP Checks respondidos