Monitor de Rede Municipal
Painel em tempo real da rede de uma prefeitura: SNMP, quedas, banda por porta e dois anos de histórico.
- Tipo
- Monitoramento de rede em tempo real
- Status
- Em produção
- Ano
- 2026
- Cliente
- Prefeitura de Rio Pomba/MG
- Papel
- Autoria: requisitos, decisões operacionais e validação em produção

Código-fonte privado. Este estudo de caso apresenta as principais funcionalidades, a interface e a arquitetura em alto nível.
Visão geral
O que é este projeto.
Serviço Node.js que consulta dezenas de roteadores MikroTik e o firewall OPNsense a cada dez segundos, mostra o estado no painel, alerta com som e guarda histórico em SQLite — entregue como executável único para Windows.
Contexto
A Prefeitura de Rio Pomba/MG liga dezenas de prédios públicos — escolas, postos de saúde, secretarias e câmeras — por roteadores MikroTik do provedor. Não havia visão central: a queda era descoberta quando alguém ligava, e não existia histórico para cobrar o fornecedor.
Objetivo
Ver em segundos quem está fora, ser avisado sem fadiga de alarme, guardar histórico longo com disponibilidade honesta e instalar de forma trivial.
O problema
Sem mapa do que está fora, sem banda por ponto, sem histórico de quedas e com uma máquina Windows comum, sem toolchain pesada, para hospedar a solução. Os equipamentos são de terceiros: somente leitura.
A solução
Um coletor ICMP + SNMP v2c com concorrência limitada, máquina de estados anti-falso-positivo, cálculo de banda por delta de contadores de 64 bits, painel web em JavaScript puro com WebSocket e gráficos SVG, histórico em três camadas e empacotamento como executável único (Node SEA).
- Pontos monitorados
- Dezenas de prédios públicos
- Ciclo de coleta
- 10 segundos
- Retenção
- Até 24 meses
- Entrega
- Executável único
Funcionalidades
O que o sistema faz.
Do cadastro simples ao que exige regra, transação e recuperação de falha.
- Grade de pontos ordenada por gravidade, atualizada via WebSocket
- Detecção de queda só quando ping e SNMP falham em dois ciclos
- Banda real por ponto e consumo por porta
- Perfil próprio para o firewall OPNsense da sede
- Gráficos SVG de tráfego e latência, com faixas de queda e de lacuna
- Alerta sonoro com reincidência em 1, 10, 30 e 60 minutos
- Histórico em camadas: 48 horas, 90 dias e 24 meses
- Modo parede para TV e tema claro/escuro
- Cadastro de ponto a partir do endereço, com nome descoberto por SNMP
Interface
As telas do sistema.
Capturas reais do sistema em funcionamento. Clique para ampliar.
Painel em modo demonstração
Os três estados — no ar, instável e fora — com dados simulados, adequados para apresentação.
Painel em tema escuro
Leitura de NOC: estados, agregado da frota e atalhos.
Modo parede
Composição para TV em ambiente de operação.
Histórico de 30 dias
Gráfico espelhado de tráfego e latência, com faixas de queda, lacunas e p95.
Firewall da sede
Perfil OPNsense com consumo por interface.
Tráfego e latência
Gráficos SVG desenhados sem biblioteca externa.
Detalhe do ponto
Estado, disponibilidade e contexto operacional de um local.
Alerta sonoro
Aviso de queda com reincidência decrescente, sem fadiga permanente.
Conexão com o coletor
O painel avisa quando deixa de receber snapshots.
Adicionar ponto
Cadastro simples: o nome pode ser descoberto via SNMP.
Editar ponto
Ajuste de apelido e parâmetros sem escrever no equipamento.
Pontos desativados
Histórico preservado mesmo quando o ponto sai da coleta ativa.
Painel no celular
Leitura rápida dos estados em tela estreita.
Painel no tablet
Grade intermediária para acompanhamento em campo.
Por trás da aplicação
Como isso funciona por dentro.
A parte que o visitante não vê na tela: camadas, autenticação, dados, integração e operação.
Coleta
ICMP e SNMP v2c a cada 10 segundos, com concorrência limitada e perfis por fabricante.
Tempo real
WebSocket entrega o snapshot do ciclo ao painel.
Histórico
Rollups bruto → 5 min → 1 h. O que o coletor não viu não conta como queda do roteador.
Empacotamento
esbuild + Node SEA + postject. Um arquivo. Sem dependência de toolchain no destino.
Arquitetura
As camadas, de cima para baixo.
Representação em alto nível — sem expor detalhe de infraestrutura.
Pontos de rede
MikroTik e OPNsense, somente leitura
Coletor Node.js
ICMP + SNMP, máquina de estados
SQLite
Três camadas de histórico
Painel web
WebSocket, SVG, alerta sonoro
Fluxo
Como o processo acontece.
- 01
Coleta
Ping e SNMP em todos os pontos
- 02
Estado
No ar, instável ou fora — com anti-falso-positivo
- 03
Painel
Snapshot por WebSocket
- 04
Alerta
Som com reincidência decrescente
- 05
Histórico
Rollups e disponibilidade honesta
Stack
Tecnologias utilizadas.
Frontend
- HTML5
- CSS3
- JavaScript
- SVG
Backend
- Node.js
- Express
- WebSocket
Banco de dados
- SQLite
Infraestrutura
- Windows
- Node SEA
Integrações
- SNMP v2c
- ICMP
- MikroTik
- OPNsense
Destaques técnicos
Decisões que sustentam o sistema.
- Somente leitura por desenho: nenhum SNMP SET nos equipamentos do provedor
- Banda calculada com Counter64 e tempo real decorrido, descartando reboot
- Disponibilidade que exclui lacunas do próprio coletor
- SQLite nativo do Node 24, sem compilação de módulo nativo
- Gráficos SVG feitos à mão, sem biblioteca e sem CDN
- Executável único Windows com painel embutido e inicialização automática
Quer algo assim para o seu processo?
Me conte como funciona hoje. Respondo com uma leitura do problema e um caminho possível.

