>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Rust

Jak Scanopy ratuje Cię od ręcznego rysowania diagramów sieciowych

Scanopy Logo

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 view

L2 (Fizyczny)
Każdy przełącznik, każdy port, każde połączenie.

L3 view

L3 (Logiczny)
Podsieci i sposób połączenia hostów między nimi.

Workloads view

Obciążenia
Od serwerów fizycznych po hiperwizory i kontenery.

Applications view

Aplikacje
Usługi i ich zależności, pogrupowane według aplikacji.

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:

  1. Warstwa fizyczna L2. Obejmuje przełączniki, fizyczne połączenia i konkretne porty urządzeń.
  2. Warstwa logiczna L3. Pokazuje routing, podsieci i rozkład adresów IP między hostami.
  3. Obciążenia. Pokazuje łańcuch od serwerów fizycznych i hiperwizorów do maszyn wirtualnych i poszczególnych kontenerów.
  4. 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