Monitoramento de load balancer: métricas e alertas

Load Balancer

Para a maioria das aplicações corporativas modernas, o load balancer é a primeira parada do tráfego. Ele também é o primeiro ponto onde uma degradação pode se esconder por dias sem que ninguém perceba.

Por ser visto como infraestrutura que simplesmente funciona, costuma ficar fora do radar do time de operações até o momento em que backends saudáveis deixam de receber requisições sem explicação aparente.

Um monitoramento bem desenhado trata o balanceador de carga como um semáforo da experiência do usuário. Latência crescente no handshake SSL, aumento repentino de respostas 5xx ou queda silenciosa na contagem de backends saudáveis são sinais que aparecem no load balancer antes de qualquer reclamação de cliente. Basta saber onde olhar.

Este guia mostra como estruturar um monitoramento de load balancer completo: quais métricas priorizar, como configurar health checks, de onde extrair os dados em cada tipo de balanceador e como correlacionar tudo com a saúde real do serviço.

O que é monitoramento de load balancer

Monitoramento de load balancer é a prática de coletar, analisar e alertar sobre métricas que descrevem como um balanceador de carga distribui tráfego, valida a saúde dos backends e responde às requisições dos clientes. Não se trata apenas de saber se o equipamento está ativo. É entender se ele cumpre sua função de distribuir carga com previsibilidade.

Load balancers atuam em dois níveis bem distintos. Essa diferença muda o tipo de sinal que você consegue extrair.

Layer 4 (transporte): decidem o roteamento com base em IP e porta, sem inspecionar o conteúdo da requisição. AWS NLB, Azure Load Balancer padrão e F5 em modo TCP são exemplos. Métricas típicas envolvem conexões ativas, bytes processados e SNAT.

Layer 7 (aplicação): entendem HTTP/HTTPS, analisam headers e caminhos de URL e podem aplicar regras baseadas em conteúdo. AWS ALB, Azure Application Gateway, NGINX, HAProxy e F5 em modo HTTP se encaixam aqui. Métricas relevantes incluem latência de target, códigos de resposta e erros 5xx.

A diferença importa na hora do diagnóstico. Um load balancer L4 nunca vai reportar um spike de 503, porque simplesmente não sabe o que é 503. Já um L7 pode esconder um gargalo de conexão se você olhar apenas para latência sem correlacionar com taxa de erro.

Por que monitorar o balanceador é crítico para a disponibilidade

Um balanceador funcionando parcialmente é pior do que um balanceador totalmente fora do ar. Quando ele falha por completo, o alerta é imediato e o plano de contingência entra em ação.

Quando falha de forma silenciosa, roteando para backends degradados, descartando conexões em cascata ou demorando para abrir novas conexões, o impacto vira ruído na operação. O NOC acumula tickets sem causa raiz clara e a equipe desgasta.

A maior parte das aplicações corporativas depende do balanceador para garantir alta disponibilidade entre múltiplas instâncias. Se ele começa a classificar backends saudáveis como unhealthy por causa de um health check mal configurado, metade da capacidade da aplicação some sem motivo aparente.

É no balanceador que costumam aparecer os primeiros sinais de problemas downstream. Picos de latência de target indicam banco de dados lento. Crescimento de 5xx aponta deploy quebrado. Queda de RPS sem motivo pode ser perda de pacotes na rede. Monitorar o LB é, na prática, monitorar o pulso da aplicação.

Métricas essenciais para monitoramento de load balancer

As métricas abaixo formam a base de qualquer operação séria. Elas se aplicam, com variações de nomenclatura, a praticamente todos os balanceadores, cloud ou on-premise.

MétricaO que medeSinal de alerta
Backends saudáveisQuantidade de targets aprovados no health checkQueda abrupta ou contagem abaixo do mínimo por zona
Latência de targetTempo entre envio ao backend e recebimento da respostaP95 ou P99 crescendo em relação ao baseline
Taxa de 5xxErros originados no backend ou no próprio balanceadorAcima de 0,5% do tráfego ou salto contra a última hora
Taxa de 4xxErros do cliente que podem indicar deploy quebradoAumento sem mudança de tráfego
Conexões ativasSessões concorrentes no balanceadorEstagnação em valor alto ou crescimento linear sem queda
Throughput (RPS / Mbps)Volume de requisições ou bytes por segundoDesvio do padrão sazonal esperado
SSL handshake timeTempo para concluir o handshake TLSCrescimento indica CPU saturada ou certificado com problema
SNAT exhaustionEsgotamento de portas de tradução (comum em Azure)Qualquer falha de conexão SNAT é crítica
Queue depth / rejectedRequisições aguardando ou descartadas no balanceadorQualquer valor diferente de zero merece investigação

Boas práticas de análise: compare sempre com baseline histórico. Uma aplicação que normalmente roda com P95 de 300 ms vai gerar alertas falsos se o threshold for 100 ms. Um aumento silencioso para 450 ms vai passar batido se o threshold for 1.000 ms. Ferramentas que suportam baseline dinâmico ou anomaly detection reduzem muito o ruído.

Health checks e o comportamento do tráfego

Health check é o mecanismo pelo qual o balanceador decide se um backend pode receber tráfego. Se esse mecanismo estiver mal configurado, todo o resto do monitoramento vira teatro.

A maioria dos balanceadores aceita health checks em dois níveis: TCP (abre e fecha uma conexão na porta) e HTTP/HTTPS (envia um request e valida o código de resposta). TCP é mais leve, porém não detecta aplicação travada. HTTP é mais caro, mas revela problemas internos do backend.

Pontos que costumam quebrar de forma silenciosa:

Timeout curto demais. Um backend lento por 4 segundos vira unhealthy com timeout de 2 segundos, mesmo respondendo corretamente depois. Resultado: o balanceador começa a remover instâncias saudáveis da rotação sob carga.

Path ou status inesperado. Muitos times configuram health check para /. Quando o deploy muda o redirecionamento da raiz, o balanceador passa a receber 301 ou 302, interpreta como falha e tira todo mundo da rotação.

Health check sem dependência real. Um endpoint /health que só retorna “ok” sem checar banco de dados ou cache esconde problemas reais. O backend diz que está saudável enquanto queries falham em produção.

Threshold de transição. Passar de healthy para unhealthy deve exigir mais falhas do que o caminho inverso. Evita flapping durante manutenção ou blip de rede.

Fontes de coleta por plataforma

Cada tipo de balanceador expõe suas métricas de forma diferente. Centralizar tudo em uma única plataforma de monitoramento, em vez de conviver com dashboards isolados, é o que torna o diagnóstico rápido. A arquitetura típica aproveita a monitoração de redes já existente e adiciona as fontes específicas de cada balanceador.

Cloud: AWS, Azure e GCP

AWS ALB e NLB publicam métricas no CloudWatch (RequestCount, TargetResponseTime, HTTPCode_Target_5XX_Count, HealthyHostCount). Access logs opcionais vão para S3 e permitem análises mais profundas. Para quem já tem operação na nuvem, a integração é imediata via monitoramento AWS com coleta direta do CloudWatch.

Azure Load Balancer entrega métricas via Azure Monitor, incluindo DipAvailability (probe de backend), SnatConnectionCount e ByteCount. Logs de fluxo de VNet complementam o cenário. O padrão segue o mesmo do monitoramento Azure usado para os demais recursos.

GCP Cloud Load Balancing expõe métricas via Cloud Monitoring (https/backend_latencies, request_count, backend_request_count), com logs detalhados no Cloud Logging.

On-premise: F5, NGINX e HAProxy

F5 BIG-IP suporta SNMP com MIBs específicas e expõe uma API iControl REST que fornece estatísticas granulares de pool, virtual server e nó. A coleta via SNMP é suficiente para a maioria dos cenários operacionais.

NGINX publica métricas via módulo oficial stub_status (conexões ativas, aceitas e handled). Na versão Plus ou usando nginx-prometheus-exporter, expõe métricas por upstream. Para cenários com múltiplos backends, o exporter Prometheus é o caminho mais direto.

HAProxy oferece stats socket e endpoint HTTP de estatísticas com métricas por frontend, backend e servidor, além de exporter Prometheus nativo na versão 2.0 ou superior. A documentação oficial do HAProxy descreve cada campo.

Alertas e thresholds recomendados

Um alerta útil avisa cedo o suficiente para a equipe agir antes do usuário reclamar. Não pode virar ruído a ponto de ser ignorado. Os thresholds abaixo são pontos de partida. Ajuste ao baseline real da sua operação.

Severidade alta (acionamento imediato):

– Disponibilidade do balanceador abaixo de 100% por mais de 1 minuto
– Backends saudáveis abaixo de N/2 (metade do pool) por mais de 2 minutos
– Taxa de 5xx acima de 1% do tráfego por 3 minutos
– SNAT exhaustion detectada (qualquer ocorrência em ambiente Azure)

Severidade média (abrir ticket, não acordar ninguém):

– Latência P95 acima de 2x o baseline por 5 minutos
– Taxa de 4xx acima do dobro do normal por 10 minutos
– SSL handshake time acima de 500 ms de forma sustentada

Severidade informacional (acompanhar tendência):

– Queda de throughput sem explicação sazonal
– Conexões concorrentes próximas de limites configurados (80% da capacidade)

Alertas cruzados aumentam a precisão. Latência alta combinada com queda de backends saudáveis indica problema real. Latência alta sozinha pode ser apenas deploy pesado.

Integração com observabilidade e a experiência do usuário

O maior ganho do monitoramento de load balancer vem quando ele deixa de viver em silo. Correlacionar métricas do balanceador com traces distribuídos, logs de aplicação e métricas de backend transforma um dashboard isolado em causa raiz objetiva.

Três correlações que valem ouro na rotina de NOC:

Latência de target crescendo com traces mostrando SQL lento: gargalo é de banco de dados, não de rede. A análise de latência ponta a ponta economiza horas de war room.

Queda de RPS no balanceador combinada com verificação externa falhando: clientes reais não estão chegando até o LB. Problema está em DNS, ISP ou WAF. Checagens sintéticas a partir de pontos externos validam o caminho completo do cliente.

Todos os backends healthy e 5xx subindo: problema está no próprio balanceador (SSL, regras de rewrite, limite de conexão). Sinal claro para olhar configuração e não infraestrutura.

Esse tipo de correlação é a espinha dorsal do monitoramento de TI moderno, que trata disponibilidade como resultado de sinais interligados e não como checklist isolado de “tudo verde”.

Checklist operacional e erros comuns

Use esta lista como revisão rápida antes de declarar o monitoramento como implementado:

Checklist mínimo:

– Métricas essenciais (backends saudáveis, latência, 5xx, conexões) coletadas em intervalos de 1 minuto
– Health checks validam dependências reais (DB, cache, serviços externos)
– Access logs ou equivalente armazenados por no mínimo 30 dias
– Alertas com threshold baseado em baseline histórico e não em valores fixos arbitrários
– Dashboards comparam janelas (agora vs. mesma hora ontem vs. mesma hora na semana passada)
– Runbook documentado para cada tipo de alerta do balanceador
– Revisão mensal dos thresholds e do ruído gerado

Erros mais comuns:

– Confiar apenas no “está healthy” do LB sem validar resposta real do endpoint crítico
– Esquecer de monitorar o próprio balanceador (quem monitora o monitor)
– Configurar health check agressivo em backends com startup lento
– Não testar o failover (ele só funciona quando você valida antes)
– Ignorar SSL handshake time, que é o primeiro a degradar em ataque ou saturação de CPU

Referências externas valem a leitura. O capítulo publicado pela equipe de SRE do Google descreve padrões que inspiraram várias arquiteturas corporativas atuais.

Monitoramento & Disponibilidade

Monitoramos sua infraestrutura 24×7, antes que o problema chegue ao usuário.

Detectamos falhas em servidores, aplicações e redes em tempo real com alertas inteligentes, dashboards e relatórios de SLA.

Fale com um Especialista →

Conclusão

O load balancer é simultaneamente um dos componentes mais estratégicos e mais invisíveis da infraestrutura moderna. Sem um monitoramento pensado para expor seus sinais (métricas de backend, health checks significativos, alertas correlacionados com observabilidade), ele se transforma numa caixa preta que só aparece quando o usuário já está reclamando.

A boa notícia é que não há mágica. Basta tratar o balanceador como qualquer outra peça crítica da aplicação, coletar as métricas certas, calibrar thresholds com base em histórico e integrar os dados ao resto da operação de monitoramento. O resultado é uma operação mais previsível, um NOC menos ruidoso e uma experiência do usuário que degrada menos e se recupera mais rápido.

Se sua operação precisa de visibilidade sobre balanceadores de carga em cloud, on-premise ou ambientes híbridos, fale com um especialista OpServices para entender como integrar essa camada ao seu monitoramento existente.

Perguntas Frequentes

Como monitorar um load balancer?
Para monitorar um load balancer, colete métricas essenciais (backends saudáveis, latência de target, taxa de 5xx, conexões ativas, throughput e SSL handshake time) diretamente das fontes nativas do produto (CloudWatch, Azure Monitor, Cloud Monitoring, SNMP, APIs de F5, stub_status do NGINX ou stats do HAProxy). Centralize tudo numa única plataforma de monitoramento, configure health checks que validem dependências reais da aplicação (banco, cache, serviços externos) e use thresholds baseados em baseline histórico. Correlacione sempre métricas do balanceador com traces e logs do backend para reduzir o tempo de diagnóstico em incidentes.
Quais são as métricas mais importantes de um load balancer?
As métricas mais importantes de um load balancer são: quantidade de backends saudáveis, latência de target (P95 e P99), taxa de 5xx, taxa de 4xx, conexões ativas, throughput em RPS ou Mbps, SSL handshake time, SNAT exhaustion (em Azure) e queue depth ou conexões rejeitadas. Backends saudáveis e taxa de 5xx são os sinais mais diretos de impacto no usuário. Latência de target e SSL handshake time ajudam a identificar degradações antes que virem incidentes. SNAT exhaustion é crítica em ambientes Azure com muitas conexões de saída.
Qual a diferença entre load balancer Layer 4 e Layer 7?
Load balancers Layer 4 operam na camada de transporte e tomam decisões com base em IP e porta, sem inspecionar o conteúdo das requisições. São rápidos e servem bem para tráfego TCP ou UDP genérico. Exemplos: AWS NLB, Azure Load Balancer padrão, F5 em modo TCP. Load balancers Layer 7 operam na camada de aplicação, entendem HTTP e HTTPS, podem rotear com base em headers, caminhos de URL e cookies, além de aplicar regras de reescrita. São mais flexíveis, porém consomem mais CPU. Exemplos: AWS ALB, Azure Application Gateway, NGINX, HAProxy e F5 em modo HTTP.
O que é SNAT exhaustion em load balancer?
SNAT exhaustion acontece quando um load balancer esgota as portas disponíveis para Source Network Address Translation ao iniciar conexões de saída a partir de instâncias de backend. É uma falha silenciosa comum no Azure Load Balancer com outbound rules mal dimensionadas: novas conexões passam a falhar enquanto as já estabelecidas continuam funcionando, deixando o incidente confuso. A mitigação envolve aumentar o número de portas alocadas por instância, usar NAT Gateway para tráfego de saída ou reduzir a quantidade de conexões simultâneas por origem. Monitorar SnatConnectionCount com severidade alta evita ser pego de surpresa.

Trabalho há mais de 15 anos no mercado B2B de tecnologia e hoje atuo como Gerente de Marketing da OpServices e Líder em Projetos de Governança para Inteligência Artificial.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress