Jak Scanopy ratuje Cię od ręcznego rysowania diagramów sieciowych
Każdy, kto kiedykolwiek próbował utrzymywać aktualną mapę sieci firmowej lub serwera domowego, zna ten ból. Siadasz w draw.io lub Visio, poświęcasz pół dnia na starannie rozmieszczanie małych prostokątów dla przełączników, serwerów i połączeń. Mija tydzień, administrator wymienia kilka kabli patchowych, inżynier DevOps uruchamia nowy stos w Dockerze, a Twój ręcznie narysowany diagram staje się bezużytecznym dokumentem historycznym.
Stan Terraform lub Ansible również nie zawsze Cię ratuje. Kod infrastruktury pokazuje tylko to, co jest opisane w pipeline, pomijając ręczne zmiany na przełącznikach czy tymczasowo uruchomione maszyny wirtualne.
Ostatnio natknąłem się na projekt Scanopy. Zbudowali narzędzie, które regularnie skanuje sieć i automatycznie generuje interaktywne diagramy na wielu poziomach abstrakcji.
L2 (Fizyczny) |
L3 (Logiczny) |
Obciążenia |
Aplikacje |
Jak to działa pod maską
Zamiast instalować ciężkie agenty na każdej maszynie wirtualnej, projekt wykorzystuje lekki daemon skanera. Daemon komunikuje się z urządzeniami sieciowymi przez SNMP, parsuje tablice LLDP i ARP oraz skanuje otwarte porty. Gdy zachodzi potrzeba, skaner łączy się bezpośrednio z gniazdem Docker, aby zinwentaryzować kontenery.
Pod maską Scanopy jest napisane w Rust. Zapewnia to szybką wydajność skanera i serwera bez nadęcia zużycia pamięci.
Po każdym uruchomieniu skanera budowany jest model infrastruktury, z którego system generuje cztery osobne warstwy:
- Warstwa fizyczna L2. Obejmuje przełączniki, fizyczne połączenia i konkretne porty urządzeń.
- Warstwa logiczna L3. Pokazuje routing, podsieci i rozkład adresów IP między hostami.
- Obciążenia. Pokazuje łańcuch od serwerów fizycznych i hiperwizorów do maszyn wirtualnych i poszczególnych kontenerów.
- Aplikacje. Grupuje usługi i buduje graf zależności między bazami danych, serwerami WWW i workerami w tle.
Projekt zawiera już ponad dwieście wstępnie zbudowanych sygnatur usług. Skaner natychmiast rozpoznaje PostgreSQL, Redis, Nginx, Kubernetes i wiele innego oprogramowania bez dodatkowego ręcznego etykietowania.
Co potrafi skaner
Główną zaletą tego podejścia jest autonomiczność. Ustawiasz harmonogram, a skaner regularnie aktualizuje topologię w tle.
Oto praktyczne funkcje:
- Rozproszony zbiór danych. W przypadku wielu oddziałów lub izolowanych VLAN-ów możesz wdrożyć osobne daemony, które wysyłają dane do centralnego serwera.
- Eksport diagramów. Gotowe diagramy można eksportować jako SVG, osadzać w dokumentacji jako kod Mermaid lub przesyłać bezpośrednio do Confluence.
- Interaktywny interfejs webowy. Możesz przybliżać mapę, klikać na poszczególne węzły, przeglądać aktywne porty i połączenia sąsiednie.
- Model dostępu oparty na rolach. Istnieje wbudowane rozdzielenie między organizacjami i użytkownikami, co jest przydatne dla firm usługowych i zespołów outsourcingowych.
Szybki start w laboratorium
Najłatwiejszym sposobem wypróbowania systemu jest uruchomienie kontenerów przez Docker Compose na hoście z dostępem do wymaganej podsieci.
curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml
docker compose up -d
Po uruchomieniu interfejs web nasłuchuje na porcie 60072. Przejdź do http://localhost:60072, utwórz lokalne konto administratora i rozpocznij pierwszy cykl skanowania.
Jeśli prowadzisz homelab na Proxmox VE, autorzy mają gotowy skrypt do wdrożenia w kontenerze LXC. Scanopy jest również dostępny w katalogu aplikacji Unraid.
Jeśli nie chcesz instalować lokalnie, twórcy mają publiczną piaskownicę demo pod adresem demo.scanopy.net z wstępnie wypełnionymi danymi testowymi.
Dla kogo projekt zaoszczędzi czas
Dla inżynierów operacyjnych i zespołów DevOps, Scanopy odpowiada na wieczne pytanie „dokąd idzie ten ruch i gdzie ten kontener jest uruchomiony”. Widzisz fizyczne i logiczne powiązania sprzętowe bez ręcznego zbierania śladów.
Dla inżynierów sieciowych narzędzie pomaga utrzymywać aktualną mapę przełączników bez żmudnych godzin w edytorach graficznych. Podczas migracji usługi lub przełączania portów topologia aktualizuje się przy następnym skanowaniu.
Dla właścicieli serwerów domowych i homelabów, narzędzie zapewnia sposób na uporządkowanie chaosu usług bez spędzania weekendów na ręcznej dokumentacji.
Podsumowanie
Scanopy rozwiązuje klasyczny problem dokumentacji, która staje się nieaktualna, w bezpośredni i prosty sposób. Diagramy są generowane na podstawie rzeczywistego stanu sieci, a nie zrozumienia developera sprzed sześciu miesięcy.
Kod jest rozpowszechniany na licencji AGPL-3.0 do samodzielnego hostowania. Jeśli odkładałeś aktualizację map infrastruktury lub masz dość przerysowywania diagramów po każdym wydaniu, wdroż deamona do testowej sieci i zobacz wyniki pierwszego uruchomienia.
Powiązane projekty