>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Rust

Como o Scanopy Elimina a Necessidade de Desenhar Diagramas de Rede Manualmente

Scanopy Logo

Qualquer pessoa que já tentou manter um mapa atualizado de uma rede corporativa ou de um servidor doméstico conhece essa dor. Você senta no draw.io ou Visio, passa meio dia organizando cuidadosamente caixinhas para switches, servidores e conexões. Uma semana passa, o sysadmin troca alguns cabos patch, o engenheiro DevOps sobe um novo stack no Docker, e seu diagrama desenhado à mão se torna um documento histórico inútil.

O estado do Terraform ou Ansible também nem sempre te salva. O código de infraestrutura mostra apenas o que está descrito no pipeline, ignorando alterações manuais em switches ou VMs temporárias.

Recentemente descobri o projeto Scanopy. Eles construíram uma ferramenta que faz escaneamento regular da rede e gera automaticamente diagramas interativos em múltiplos níveis de abstração.

L2 view

L2 (Físico)
Cada switch, cada porta, cada link.

L3 view

L3 (Lógico)
Subnets e como os hosts se conectam entre elas.

Workloads view

Workloads
Do bare metal aos hypervisors até os containers.

Applications view

Applications
Serviços e suas dependências, agrupados por aplicação.

Como funciona por baixo dos panos

Em vez de instalar agentes pesados em cada máquina virtual, o projeto usa um scanner daemon leve. O daemon consulta dispositivos de rede via SNMP, parseia tabelas LLDP e ARP, e escaneia portas abertas. Quando necessário, o scanner conecta-se diretamente ao socket do Docker para inventariar containers.

Nos bastidores, o Scanopy é escrito em Rust. Isso proporciona performance rápida do scanner e do servidor sem consumir muita memória.

Após cada execução do scanner, um modelo de infraestrutura é construído, a partir do qual o sistema gera quatro fatias separadas:

  1. Camada física L2. Isso inclui switches, links físicos e portas específicas de conexão de equipamentos.
  2. Camada lógica L3. Mostra roteamento, subnets e distribuição de endereços IP entre os hosts.
  3. Workloads. Mostra a cadeia desde servidores bare metal e hypervisors até máquinas virtuais e containers individuais.
  4. Applications. Agrupa serviços e constrói um grafo de dependências entre bancos de dados, servidores web e workers em background.

O projeto já vem com mais de duzentas assinaturas de serviços pré-construídas. O scanner reconhece imediatamente PostgreSQL, Redis, Nginx, Kubernetes e muitos outros softwares sem necessidade de rotulagem manual adicional.

O que o scanner pode fazer

A principal vantagem dessa abordagem é a autonomia. Você define um agendamento, e o scanner atualiza regularmente a topologia em segundo plano.

Aqui estão as funcionalidades práticas:

  • Coleta de dados distribuída. Para múltiplos escritórios ou VLANs isoladas, você pode implantar daemons separados que enviam dados para um servidor central.
  • Exportação de diagramas. Diagramas finalizados podem ser exportados como SVG, incorporados na documentação como código Mermaid, ou enviados diretamente para o Confluence.
  • Interface web interativa. Você pode dar zoom no mapa, clicar em nós individuais, ver portas ativas e conexões vizinhas.
  • Modelo de acesso baseado em papéis. Existe separação nativa entre organizações e usuários, o que é útil para empresas de serviços e equipes de outsourcing.

Início rápido no laboratório

A forma mais fácil de experimentar o sistema é subir containers via Docker Compose em um host com acesso à subnet necessária.

curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml
docker compose up -d

Após iniciar, a interface web escuta na porta 60072. Navegue até http://localhost:60072, crie uma conta de administrador local e inicie o primeiro ciclo de escaneamento.

Se você roda um homelab no Proxmox VE, os autores têm um script pronto para implantação em um container LXC. O Scanopy também está disponível no catálogo de apps do Unraid.

Se você não quer instalar localmente, os criadores têm um sandbox demo público em demo.scanopy.net com dados de teste pré-preenchidos.

Para quem o projeto vai economizar tempo

Para engenheiros de operações e equipes DevOps, o Scanopy aborda a eterna questão de "para onde vai esse tráfego e onde esse container está rodando". Você vê os vínculos de hardware físico e lógico sem precisar coletar traces manualmente.

Para engenheiros de rede, o utilitário ajuda a manter um mapa de switching atualizado sem horas tediosas em editores gráficos. Ao migrar um serviço ou trocar portas, a topologia se atualiza com o próximo escaneamento.

Para proprietários de servidores domésticos e homelabs, a ferramenta oferece uma forma de organizar a proliferação de seus serviços sem gastar seus fins de semana com documentação manual.

Resumo

O Scanopy resolve o problema clássico de documentação ficar desatualizada de uma forma direta e pragmática. Os diagramas são gerados com base no estado real da rede, não no entendimento do desenvolvedor de seis meses atrás.

O código é distribuído sob a licença AGPL-3.0 para auto-hospedagem. Se você tem adiado atualizar seus mapas de infraestrutura ou está cansado de redesenhar diagramas após cada release, faça deploy do daemon em uma rede de teste e veja os resultados da primeira execução.

Projetos relacionados