Hoe Scanopy je bespaart met het handmatig tekenen van netwerkdiagrammen
Iedereen die ooit heeft geprobeerd een actuele kaart bij te houden van een bedrijfs- of thuisservernetwerk kent deze frustratie. Je gaat zitten in draw.io of Visio, besteedt een halve dag aan het netjes schikken van kleine vakjes voor switches, servers en verbindingen. Er gaat een week voorbij, de sysadmin verwisselt een paar patchkabels, de DevOps-engineer draait een nieuwe stack in Docker, en je handgetekende diagram wordt een nutteloos historisch document.
Terraform of Ansible-state redt je ook niet altijd. Infrastructuurcode toont alleen wat er in de pipeline is beschreven, en negeert handmatige wijzigingen op switches of tijdelijk opgezette VMs.
Ik ben onlangs het Scanopy-project tegengekomen. Zij hebben een tool gebouwd die regelmatige netwerkscanning uitvoert en automatisch interactieve diagrammen genereert op meerdere abstractieniveaus.
L2 (Fysiek) |
L3 (Logisch) |
Workloads |
Applicaties |
Hoe het intern werkt
In plaats van zware agents te installeren op elke virtuele machine, gebruikt het project een lichtgewicht daemon-scanner. De daemon bevraagt netwerkapparaten via SNMP, parseert LLDP- en ARP-tabellen en scant open poorten. Wanneer nodig maakt de scanner rechtstreeks verbinding met de Docker-socket om containers te inventariseren.
Onder de motorkap is Scanopy geschreven in Rust. Dit zorgt voor snelle scanner- en serverprestaties zonder geheugengebruik op te blazen.
Na elke scanrun wordt een infrastructuurmodel gebouwd, waaruit het systeem vier aparte lagen genereert:
- Fysieke L2-laag. Dit omvat switches, fysieke verbindingen en specifieke aansluitpoorten van apparatuur.
- Logische L3-laag. Toont routing, subnetten en IP-adresdistributie over hosts.
- Workloads. Toont de keten van bare metal-servers en hypervisors tot virtuele machines en individuele containers.
- Applicaties. Groepeert diensten en bouwt een afhankelijkheidsgraaf tussen databases, webservers en background workers.
Het project wordt al geleverd met meer dan tweehonderd voorbgebouwde service-signaturen. De scanner herkent direct PostgreSQL, Redis, Nginx, Kubernetes en vele andere software zonder extra handmatige labeling.
Wat de scanner kan doen
Het belangrijkste voordeel van deze aanpak is autonomie. Je stelt een schema in, en de scanner werkt regelmatig de topologie op de achtergrond bij.
Hier zijn de praktische functies:
- Gedistribueerde datacollectie. Voor meerdere kantoren of geïsoleerde VLANs kun je aparte daemons deployen die data naar een centrale server sturen.
- Diagram-export. Voltooide diagrammen kunnen worden geëxporteerd als SVG, ingebed in documentatie als Mermaid-code, of rechtstreeks geüpload naar Confluence.
- Interactieve webinterface. Je kunt inzoomen op de kaart, op individuele nodes klikken, actieve poorten en naburige verbindingen bekijken.
- Role-based toegangsmodel. Er is ingebouwde scheiding tussen organisaties en gebruikers, wat handig is voor servicebedrijven en outsourcingteams.
Snelle start in het lab
De eenvoudigste manier om het systeem uit te proberen is door containers op te zetten via Docker Compose op een host met toegang tot het vereiste subnet.
curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml
docker compose up -d
Na het opstarten luistert de webinterface op poort 60072. Navigeer naar http://localhost:60072, maak een lokaal administrator-account aan en start de eerste scancyclus.
Als je een homelab draait op Proxmox VE, hebben de auteurs een kant-en-klaar script voor deployment in een LXC-container. Scanopy is ook beschikbaar in de Unraid app-catalogus.
Als je lokaal niet wilt installeren, hebben de makers een openbare demo-sandbox op demo.scanopy.net met vooraf ingevulde testdata.
Voor wie het project tijd bespaart
Voor operations-engineers en DevOps-teams lost Scanopy de eeuwige vraag op van "waar gaat dit verkeer naartoe en waar draait deze container". Je ziet fysieke en logische hardware-bindings zonder handmatig traces te hoeven verzamelen.
Voor netwerkengineers helpt de utility om een actuele switching-kaart bij te houden zonder vervelende uren in grafische editors. Bij het migreren van een dienst of het omschakelen van poorten wordt de topologie bijgewerkt met de volgende scan.
Voor thuisserver- en homelab-bezitters biedt de tool een manier om je dienstensprawl te organiseren zonder je weekends te besteden aan handmatige documentatie.
Samenvatting
Scanopy lost het klassieke probleem van verouderende documentatie op een directe en straightforward manier op. Diagrammen worden gegenereerd op basis van de werkelijke staat van het netwerk, niet van het begrip van de developer van zes maanden geleden.
De code wordt gedistribueerd onder de AGPL-3.0-licentie voor self-hosting. Als je het bijwerken van je infrastructuurkaarten hebt uitgesteld of het beu bent om diagrammen over te tekenen na elke release, deploy de daemon naar een testnetwerk en bekijk de resultaten van de eerste run.
Gerelateerde projecten