В одном из недавних видео увидел обзор сетевого сканера Scanopy, который умеет автоматически искать новые узлы и добавлять их на схему.
◽️Проект новый, ещё не настоялся. Для домашней или тестовой инфраструктуры сойдёт, в прод я бы пока не ставил.
◽️Выглядит красиво, реально всё делает автоматически: ищет узлы, сканирует порты, сам определяет, как может, работающие сервисы, добавляет всё это на схему.
◽️Возможностей гибких настроек мало, сами настройки неинтуитивны. Я некоторое время возился, пока разобрался, как там всё устроено.
В итоге принял решение дома его оставить. У меня много всевозможных сетевых устройств (компы, ноуты, сервера, камеры, бытовые устройства, свитчи, смартфоны). Вручную рисовать схемы лень, особо не надо. Смотреть на неизвестное устройство иду в DHCP-сервер. Даже в таком виде, как это делает Scanopy, выглядит неплохо. Лучше, чем ничего, и красивее, чем я нарисовал в Zabbix 😁.
Scanopy состоит из трёх компонентов:
1️⃣ Сервер с веб интерфейсом
2️⃣ Сканирующий агент
3️⃣ СУБД Postgresql для хранения состояния
Всё это упаковано в Docker и описано в Compose. Запускается в 3 действия:
# curl https://get.docker.com | bash -
# curl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml
# docker compose up -d
Идём в http://<server-ip>:60072 и создаём учётку администратора. Scanopy определяет локальную сеть, в которой работает, автоматически запускает сканирование сети и построение схемы. То есть даже настраивать ничего не надо. Развернули, зашли, выполнили пару шагов для регистрации и процесс пошёл.
Для быстрого запуска в LXC контейнере Proxmox есть готовый скрипт из набора Proxmox VE Helper-Scripts. Думаю, у себя в таком исполнении установлю.
Сканирование сети длится относительно долго (у меня минут 15), в зависимости от количества узлов. Для каждого узла сканируются все открытые порты и определяются службы по типу того, как это делает Nmap. Возможно он, или, как минимум, признаки служб из его набора используются для определения. В документации не уточнён этот момент. Просто указано, что написан сканер с распознаванием служб по различным признакам.
Далее для узлов делаются более тонкие настройки - указание имени, редактирование служб, настройка связей, расположение на схеме и т.д. В целом, получается наглядно и симпатично, особенно если доработать схему самому. Но даже автоматически нормально получается.
Вместо своей схемы, которую я ещё не доработал, покажу примеры с сайта, как это может выглядеть. Прикрепил некоторые картинки.
В целом, продукт интересный. Если получится развитие, то будет неплохо. А автор, судя по всему, задумал развивать, так как сразу одновременно с self-hosted версией, сделал платную по модели SaaS, написал документацию. Так что пожелаю ему успехов в этом деле. Думаю, подобная программа многим упростит рутину.
#network