Infraestrutura de TI / Estudo de caso

Troubleshooting de quedas dos coletores Wi-Fi em operação logística

Os coletores de dados Android da operação logística perdiam a conexão com o sistema de armazém várias vezes por hora. Parecia um problema de antena; a investigação foi organizada em seis frentes, com estados diferentes entre correções aplicadas, indícios e hipóteses em verificação.

Ambiente
Unidade industrial com operação logística atendida por Wi-Fi
Período
2026
Papel
Analista de infraestrutura, responsável pelo diagnóstico e pelas correções
Tipo
Investigação de incidente recorrente com várias causas

Cruzei cinco fontes de evidência (controladora Wi-Fi, um monitor de quedas que eu mesmo escrevi, logs do servidor de sessões, captura de pacotes e leitura de rádio por antena) e organizei o sintoma único em seis frentes de investigação. Três correções de rádio e configuração foram aplicadas no mesmo dia, em três rodadas com rollback documentado; as frentes de aparelho, temporizador de sessão e cobertura têm estados diferentes: indício que requer logs do app/Android, hipótese provável em verificação e achado de cobertura com ação planejada. Com as correções e o acompanhamento dos dias seguintes, as quedas diárias dos coletores caíram 90%, e o caso foi encerrado.

Última atualização: 2026

Resumo executivo

Contexto

A expedição e o recebimento trabalham com coletores de dados Android, de mais de um modelo, ligados ao sistema de gestão de armazém (WMS) por sessões de terminal. Os coletores usam uma rede Wi-Fi própria, em uma VLAN dedicada, servida por dezenas de access points gerenciados por uma controladora central. Parte das antenas atende áreas abertas e galpões, onde o operador anda o tempo todo entre os pontos de coleta.

Problema

Os operadores relatavam que o coletor “caía” no meio da separação e era preciso logar de novo. O relatório que montei com os dados da controladora mostrou o tamanho do problema: milhares de quedas em 30 dias, concentradas em dezenas de coletores. Cada queda interrompe a operação e gera retrabalho.

Meu papel

  • medir o problema antes de mexer em qualquer coisa, com um monitor automático de quedas;
  • levantar e testar as hipóteses em cada camada (rádio, roaming, aparelho, sessão, cobertura);
  • correlacionar controladora Wi-Fi, logs do servidor de sessões e capturas de pacotes;
  • aplicar as correções em rodadas, com estado anterior e rollback registrados;
  • separar o que era rede do que era aparelho e encaminhar cada causa para quem resolve.

Resultado

  • As quedas diárias dos coletores foram reduzidas em 90% na medição de acompanhamento, o que encerrou o caso.
  • Seis frentes de investigação registradas, com estados diferentes e evidências correspondentes.
  • Na primeira janela de operação plena após as correções, as desconexões por hora caíram para cerca de metade (amostra curta; a medição de vários dias seguia em andamento).
  • Nesse recorte, a mediana do sinal no momento da queda passou a ser de sinal bom, ou seja, as quedas restantes já não eram de sinal fraco.
  • A captura de pacotes mostra um modelo de coletor abrindo nova conexão sem encerrar a anterior. A confirmação depende dos logs do aplicativo e do sistema do aparelho.
  • Um defeito encontrado no próprio monitor (campo de sinal gravado como relação sinal-ruído, não dBm) foi corrigido antes de usar o dado.

Conclusão

As correções em rodadas, medidas pelo monitor de quedas ao longo dos dias seguintes, reduziram as quedas diárias dos coletores em 90% em relação à linha de base. Com a operação estável, o caso foi encerrado. A principal lição é que um sintoma com várias causas só se resolve medindo antes, mudando por etapas e medindo de novo.

O que este caso demonstra

  • Troubleshooting orientado por hipóteses
  • Wi-Fi corporativo: canais, potência, roaming
  • Análise de pacotes TCP
  • Correlação de várias fontes de log
  • Mudança controlada com rollback
  • Automação com Python

Detalhes técnicos

Roteiro da investigação

  1. Sintoma
  2. Linha de base
  3. Hipóteses
  4. Fontes de evidência
  5. Descarte
  6. Estado das frentes
  7. Correção em rodadas
  8. Medição

Sintoma

  • Coletor perde a sessão com o WMS e o operador precisa logar de novo.
  • Quedas espalhadas por várias áreas, com concentração na expedição (metade do total) e no recebimento.
  • Uma única antena concentrava parcela desproporcional das quedas, mesmo com sinal bom.

Hipóteses levantadas e estado por frente

  1. Interferência e canais repetidos em 5 GHz.
  2. Roaming instável entre antenas vizinhas (potência desigual, 802.11r).
  3. Antena expulsando o coletor por RSSI mínimo.
  4. Coletor alternando entre 2,4 e 5 GHz.
  5. Renovação de chave (rekey) ou de endereço (DHCP) derrubando a sessão em intervalo fixo.
  6. Aplicativo ou Android do coletor reabrindo a sessão sozinho.
  7. Falta de cobertura em pontos de parada do recebimento.
  8. Servidor de sessões encerrando conexões ativas.

Fontes de evidência

  • Controladora Wi-Fi: histórico de sessões de várias semanas, log de cada cliente (trocas de antena, sinal, banda) e leitura de rádio por antena (potência real, uso do canal, retransmissões).
  • Monitor de quedas próprio: script Python que consulta a controladora a cada 60 s e grava queda, reconexão, antena e duração em CSV.
  • Servidor de sessões (Linux): log de início e fim de cada sessão de terminal e contadores TCP do kernel.
  • Captura de pacotes no servidor, filtrada pelos coletores de um dos modelos.
  • Relato da operação por turno, para separar deslocamento normal de falha.

Hipóteses e estado da investigação

HipóteseEvidência consultadaConclusão
Rekey derrubando a sessão a cada ~48 minRenovação de chave de grupo desligada no SSID dos coletores.Descartada
Servidor encerrando sessões ativasUma sessão por coletor, sem sessões fantasma; nas capturas, o servidor só fecha a sessão antiga depois que o coletor abre a nova.Descartada
Quedas de ~48 min derrubando o terminalPoucas sessões duraram 40–50 min, sem pico: o keepalive do servidor (tolerância de alguns minutos) segurava a sessão.Descartada para o servidor; segue no Wi-Fi
Roaming instável entre duas antenas vizinhasCentenas de trocas de ida e volta em menos de 2 min, em poucos dias, com sinal bom antes da troca; potência de uma antena no máximo ao lado de outra no mínimo; 802.11r ligado.Confirmada
Alternância entre 2,4 e 5 GHzLog do cliente: coletor saía de −42 dBm em 2,4 GHz para −67/−77 dBm em 5 GHz e voltava; uma antena externa em potência máxima atraía coletores da expedição.Confirmada
RSSI mínimo expulsando o coletorLimite acima do sinal de trabalho dos coletores.Confirmada
Aplicativo do coletor iniciando nova conexãoProporção bem maior de sessões curtas em um modelo do que no outro; captura mostra nova conexão após intervalo sem dados pendentes, sem retransmissões no intervalo observado.Indício; logs do app/Android necessários
Temporizador de ~48–55 min em aparelhos específicosUm subconjunto de aparelhos do mesmo lote concentra o padrão, inclusive em antenas com sinal ótimo; um deles caía a cada ~55 min “como um relógio”.Provável (lease DHCP em verificação)
Falta de cobertura no recebimentoEm um corredor, quase todas as quedas com sinal fraco; antenas em potência alta ouvidas de longe pelo coletor, de potência menor, que não é ouvido de volta.Evidência de cobertura insuficiente

Achados e decisões técnicas

Potência assimétrica

Antena em potência máxima é ouvida pelo coletor de longe, mas não ouve o coletor de volta. O coletor se associa a ela, perde o enlace de subida e troca de novo. A regra adotada: potência da antena próxima à do cliente, e nunca máxima em ambiente interno.

802.11r desligado no SSID dos coletores

Fast roaming costuma falhar em Android antigo. Como a frota não tinha suporte confirmado, desliguei e deixei a religação condicionada ao levantamento de modelo e versão do Android de cada aparelho.

SSID dos coletores só em 2,4 GHz

Era a configuração anterior, até passar a usar as duas bandas sem registro de mudança. Voltar a uma banda acabou com o vai-e-volta; o custo é dividir o canal de 2,4 GHz com os outros SSIDs, o que passou a ser acompanhado por antena.

RSSI mínimo desligado, e não −80 dBm

Sem 5 GHz como alternativa, cada expulsão pode virar reassociação. A captura mostra nova conexão iniciada pelo coletor, mas os logs do app/Android são necessários para atribuir a decisão ao aplicativo. O plano original previa −80 dBm; decidi desligar até medir o efeito com a operação cheia.

Potência média, e não mínima, na antena mais carregada

Com uma única banda, potência mínima poderia abrir buraco de cobertura. A potência intermediária iguala a antena vizinha e fica próxima da potência do coletor.

Canais de 5 GHz a 20 MHz, fora do bloco congestionado

Várias antenas vizinhas estavam no mesmo canal de 40 MHz. Parte delas foi movida para canais distintos de 20 MHz.

Correções por fases

  1. Linha de baseRelatório de 30 dias da controladora e monitor de quedas rodando antes de qualquer alteração.
  2. Rodada 1: rádio da expedição802.11r desligado; potência equalizada nas antenas vizinhas; antenas retiradas do canal compartilhado; reinício de um equipamento com consumo de recursos elevado após longo período ligado.
  3. Rodada 2: banda únicaSSID dos coletores só em 2,4 GHz, 802.11v desligado e potência reduzida na antena externa que atraía coletores.
  4. Rodada 3: RSSI mínimoLimite retirado nas antenas afetadas, uma por vez, conferindo a tela antes de aplicar.
  5. Isolamento do aparelhoCaptura de pacotes dos coletores de um modelo para registrar que o coletor iniciou nova conexão; logs do app/Android ainda são necessários.
  6. CoberturaReforço de cobertura planejado nos pontos de parada.
  7. Medição contínuaMonitor de quedas, uso de canal e retransmissões por antena acompanhados ao longo dos dias seguintes.

Limitações

  • As alterações de rádio da rodada 1 foram aplicadas juntas e com a operação rodando, por decisão do responsável; o efeito de cada uma não pode ser separado, só o do conjunto.
  • As amostras logo após as correções eram curtas (troca de turno e uma hora de operação cheia); a medição de vários dias que veio depois confirmou a redução de 90% nas quedas diárias.
  • A causa no aparelho (aplicativo de terminal ou Android) depende de teste de configuração com o fornecedor dos coletores.
  • A hipótese de lease DHCP para o padrão de ~48 min ainda não foi confirmada.
  • Nomes de antenas, endereços, VLANs reais, modelos de equipamento e identificadores dos coletores não são publicados.

Evidências

Nomes de antenas, endereços IP e MAC, VLANs, hostnames e modelos dos coletores foram substituídos por descrições genéricas ou marcadores (modelo A, modelo B, P1, P2). Contagens, datas e horários foram omitidos ou aproximados; o formato das linhas foi simplificado.

Código público e validação automatizada do monitor

O repositório do monitor ↗ (abre em nova aba) publica a implementação, a demonstração sem controladora e os testes. A suíte tem 177 testes, incluindo TLS seguro por padrão, e roda no GitHub Actions em Python 3.10, 3.11, 3.12 e 3.13 (versão de 23/10/2026, commit 963d838).

O resultado de cada execução está nas execuções do workflow ↗ (abre em nova aba). Os testes simulam a API da controladora; as métricas de produção são as desta página.

Um sintoma, seis frentes de investigação No centro, o sintoma: o coletor perde a sessão com o WMS. Ele se liga a três grupos de investigação. Rádio e configuração: roaming instável, alternância de banda e RSSI mínimo, com correções relatadas. Aparelho e sessão: aplicativo com indício que requer logs e temporizador provável em verificação. Cobertura: pontos de parada sem sinal no recebimento, com achado observado e antenas planejadas. Sintomacoletor perde a sessão com o WMS Rádio e configuração Aparelho e sessão Cobertura 1. roaming instável (potência, 802.11r) 2. vai-e-volta 2,4 ↔ 5 GHz 3. RSSI mínimo expulsando corrigidos no mesmo dia 4. app inicia nova conexão (indício) 5. temporizador ~48–55 min (provável) logs e lease em verificação 6. pontos de parada sem sinal e potência desigual achado; ação planejada as correções de rádio não encerram as outras frentes
Mapa das causas: a mesma queda aparece para o operador, mas a origem está em três camadas diferentes.

Matriz de achados

AchadoEvidênciaPrioridadeAçãoStatus
Roaming de ida e volta entre duas antenasCentenas de trocas de ida e volta em poucos dias, com sinal bomAltaEqualizar potência, desligar 802.11r, mudar canaisCorrigido
Coletor alternando entre bandasTrocas de −42 dBm (2,4 GHz) para −77 dBm (5 GHz)AltaSSID dos coletores em banda únicaCorrigido
RSSI mínimo acima do sinal de trabalhoLimite acima do sinal de trabalho dos coletoresAltaRetirar o limite nas antenas afetadas, uma por vezCorrigido
Equipamento com consumo de recursos elevado após longo período ligadoDesassociava clientesMédiaReiniciado e acompanhadoCorrigido
Aplicativo do modelo A inicia nova conexãoProporção maior de sessões curtas; captura mostra nova conexão sem retransmissões no intervalo observadoAltaComparar configuração do app e do Android com o modelo BIndício; logs necessários
Ciclo de ~48–55 min em aparelhos do modelo BUm subconjunto de aparelhos concentra o padrão, inclusive com sinal ótimoMédiaConferir lease DHCP da rede dos coletoresEm verificação
Corredor do recebimento sem coberturaQuase todas as quedas com sinal fracoAltaReforço de cobertura planejado nos pontos de paradaPlanejado
Divergência de horário entre as fontes de logDistorcia a correlação com a controladoraBaixaAlinhar os horários na análiseCorrigido na análise
Mudanças de rádio sem registroPrints antigos divergiam da configuração encontradaMédiaPassou a ser registrada toda mudança de rádioAdotado

Captura do coletor modelo A (reconstrução sintética)

# hora          origem → destino            flags   leitura
13:39:31.964   servidor → coletor:P1       [P.]    tela entregue (370 bytes)
13:39:31.967   coletor → servidor          [.]     coletor confirma em 3 ms
#              20,8 s de silêncio, nenhuma retransmissão, nenhum FIN ou RST
13:39:52.749   coletor:P2 → servidor:23    [S]     coletor abre conexão NOVA
13:39:52.790   servidor → coletor:P1       [F.]    servidor fecha a sessão órfã
# timestamp TCP do coletor avançou 20.785 ms em 20,785 s
# controladora sem evento de roaming desse cliente no intervalo

O que esta evidência sugere

O coletor abre uma nova conexão sem encerrar a anterior, sem retransmissões e sem evento de roaming no intervalo. A reconexão parte do próprio coletor; os logs do aplicativo e do Android vão mostrar se a decisão é do app ou do sistema.

Antes e depois (amostras)

MétricaVariação
Quedas diárias (acompanhamento final)−90%
Desconexões por hora (primeira janela de operação plena)Cerca de −48%
Trocas de antena em 5 GHzEliminadas
Mediana do sinal na quedaDe sinal fraco/médio para sinal bom

As trocas de ida e volta aumentaram depois da banda única, sem gerar queda: indicam células sobrepostas com força parecida, que entram na decisão de equalizar a potência do recebimento.

Versão didática

Como eu ensinaria este conceito

O caso mostra que um mesmo sintoma pode ter várias causas ao mesmo tempo, e que consertar a primeira não prova que o problema acabou. A turma aprende a medir antes, mudar uma coisa e medir de novo.

Público

Ensino Médio técnico, cursos de redes e suporte e formação de professores de Computação.

Pré-requisitos

Noção de Wi-Fi, antena e sinal; ler uma tabela simples.

Analogia

Uma conversa num pátio barulhento: se um fala gritando e o outro sussurra, só um lado entende. Antena com potência máxima é quem grita.

Experimento mínimo

Com o celular e um app de análise de Wi-Fi, a turma mede o sinal em pontos da escola, marca no mapa onde “cai” e propõe onde mudar a antena. Depois compara com uma segunda medição.

Erro comum

Achar que sinal forte no celular garante conexão estável, ou mudar várias configurações de uma vez e não saber qual resolveu.

Pergunta de reflexão

Se o problema some depois de uma mudança, como ter certeza de que foi ela? O que mais mudou no mesmo dia?

O laboratório A Rede Parou usa o mesmo método de investigação com registros fictícios de uma escola.