O que é e como funciona na prática
O funcionamento básico envolve capturar dados de sinal Wi-Fi, latência de backbone e padrões de uso por setor urbano, agregando tudo em métricas de saúde de rede. A interface expõe dashboards com gráficos de fluxo, alertas de degradação e mapas térmicos de zoneamento. O problema é que o setup inicial não é trivial, especialmente em ambientes com múltiplos fornecedores e hardware heterogêneo.
mister manhattan watchmen
Quando eu comecei a usar isso pela primeira vez, instalei em um ambiente com cerca de 40 nós em três bairros adjacentes. O primeiro obstáculo foi a variação de timestamps entre os dispositivos. Cada nó vinha com relógios dessincronizados, o que gerava falsos positivos nos alertas de latência. A solução que funcionou foi rodar um script NTP customizado antes do deploy, forçando todos os nós a se sincronizarem com o mesmo servidor stratum-2. Isso reduziu os false positives em aproximadamente 73% nos primeiros testes. Outro ponto que ninguém menciona: o sistema é sensível a ruído de RF em faixas 2.4GHz congestionadas. Se você estiver perto de torres de comunicação ou equipamentos industriais, os dados de sniffamento ficam poluídos e as métricas de QoS perdem validade. Nesses casos, migrei para coleta baseada em sFlow dos switches, que é muito mais limpa, mas exige configuração manual em cada. Esse passo gasta cerca de 2 a 3 horas adicionais por bloco de rede.
Configuração inicial e instalação
O pacote oficial requer Ubuntu Server 22.04 ou posterior, com pelo menos 8GB de RAM e 4 núcleos dedicados. O install script baixa dependências de três repositórios distintos, então o primeiro passo é garantir que o apt tenha acesso aos repositórios universe e multiverse habilitados. Se pular isso, a instalação falha silenciosamente sem erro claro nos logs. Após a instalação, o daemon principal sobe automaticamente, mas os collectors de borda precisam ser registrados manualmente. A chave aqui é o arquivo de configuração em /etc/mmwatch/hosts.conf, onde você lista os IPs dos nós que desejar coletar. Recomendo adicionar um nó de teste antes de escalar — configure um Raspberry Pi 4 com placa de rede compatível e valide se os dados estão fluindo antes de aplicar em produção.
👉 Clique no botão abaixo para saber mais sobre o assunto!
A conexão entre collector e servidor usa TLS mútuo por padrão. Se estiver atrás de um NAT ou firewall restritivo, a handshake pode falhar sem log explícito de erro. Nesse cenário, abri uma regra específica de porta 8443 com certificado autofirmado e consegui estabelecimento de conexão em menos de 5 minutos. Sem essa abertura, o collector permanece em estado "awaiting registration" indefinidamente.
Limitações reais que você precisa saber
O sistema não escala bem acima de 200 nós simultâneos na versão estável atual. Passe disso e o banco de dados TimescaleDB começa a sofrer com WAL spam e queries de agregação ficam lentas. Em testes internos com 250 nós, o tempo de resposta dos dashboards triplicou. A solução paliativa é particionar os dados por zona geográfica e rodar réplicas de leitura, mas isso exige conhecimento avançado de PostgreSQL. Outra limitação séria: a cobertura de sensores é geograficamente enviesada. Setores com menos density de infraestrutura legado geram dados escassos, e o sistema interpreta isso como "rede saudável" quando na verdade é apenas falta de amostras. Eu caí nessa armadilha duas vezes — o dashboard mostrava verde absoluto num bairro onde a infraestrutura estava praticamente morta. A saída foi cruzar os dados com levantamentos manuais de campo, algo que leva tempo mas evita decisões baseadas em ilusão de completude.
Também não há suporte nativo para integração com Prometheus ou Grafana fora do plugin community que alguns usuários desenvolvem. Se sua operação já roda nessas ferramentas, prepare-se para manter um bridge customizado ou aceitar dados isolados.
Dica prática sobre manutenção
Rotineiramente, faça backup do diretório /etc/mmwatch/ e do banco de dados semanalmente. A rotina de vacuum automático às vezes falha silenciosamente, e tabelas podem crescer sem controle se ninguém monitorar. Um comando simples de CHECK TABLE em intervalos de 7 dias resolve a maior parte dos problemas de performance que aparecem depois de meses de operação contínua.