Netbox - система документирования сети и IT инфраструктуры

Использую у себя дома такое продукт как NetBox

Это штука для построения (как ручной, так и автоматической) документации по сети и домашней инфраструктуре


Что умеет

  • Географическое распределение по регионам, зонам и т.д.
  • Карты стоек
  • Типы устройств, устройства
  • Порты устройств, связь между ними
  • Компоненты устройств, например, диски
  • Виртуалки и кластеры
  • Мак адреса IP адреса, VLAN, Wifi
  • КВН
  • DNS
  • Контакты, аренда, ответственность (для дома не актуально, но есть возможность указания этой информации)

Примеры экранов
Карточка роутера


Порты

Виртуалка

IP адреса

VLAN

Стойка

Кабели

Есть решения для сбора данных сети и заполнения NetBox. у меня самописные скрипты, которые по событиям и таймерам заполняют информацию, в том числе при DHCP аренде адресов

Далее, вся информация имеется в этой системе, можно перейти от IP адреса у устройству, потом от него к стойке, потом к системе питания, потом по кабелю к следующему устройству

Можно создавать кастомные поля и есть механизм построения описания на основе этих полей

Есть плагин для построения топологии, но я пока не настроил его до конца

Поддерживает плагины

Имеется неплохое (но сложное) REST API и GraphQL

Минусы

  • Написан на Python и довольно таки прожорлив
  • Интересных плагинов не так уж и много
  • У меня было такое, что плагин ломал NetBox при обновлении последнего, надо быть осторожными
  • Местами сложновато, требуется выполнит много действий, например для добавления миника надо
    1. добавить производителя
    2. добавить модель
    3. добавить фотки, порты к модели
    4. создать инстанс устройства
    5. прописать интерфейсы в нем, расположить его в предварительно созданной локации

Деплой

  • Можно запускать из исходного кода и модулей PIP
  • Можно запускать в docker

Лично у меня 2 вариант, но минус его в том, что для плагинов надо собирать кастомный docker образ

а там есть такая штука, чтоы порты привязывать к серверным комнатам и этот же порт потом привязать к месту (комната, кухня, коридор)

и потом на этот порт повесить свойства типа вилан, нетегированный вилан, какой тип устройства подключен и камент какой

например у нас в офисе 2 этажа и 3 серверных, причем первый этаж завязан на серверную одну и в них всех 3х есть порт а1 например
надо вот разделение такое по серверным и желательно цветом, т.к. цветами на плане здания эти зоны обозначены
есть еще план электропитания и там зон еще больше и в каждой зоне есть свой щит каком-то помещении

собственно я тоже задумал прогу замутить эту, еще ролики не посмотрел
но начал делаю свою прогу и вчера таки решил купить платный акаунт ии для написания кода, а оказывается никто пейпел не принимает :weary_cat:

Не совсем понял задачу, есть порты устройств
Там свойство столько, что на экран не помещается

Можно создавать виртуальные порты на основе родительских (бриджей или мастер-портов vlanов)
Есть кабели для связывания 2х портов

Сами локации тоже привязываются

К локации привязываются сами устройства, т.к. если если есть коммутатор, то все порты этого коммутатора находятся там же, но если коммутатор в серверной, но порт 1 идет на 1 этаж, порт 2 на 2 этаж, то можно кастомными полями реализовать

ну у сетевой трассы есть 2 конца

соответственно один конец обычно в серверной, а второй в каком-то месте, причем серверная может быть на этом этаже, а может быть на том и таких серверных может быть несколько

вот тут и встает вопрос - как связать точку пользователя с конкретной серверной или местом расположения порта?

это нужно, чтобы точно знать, что порт а1 в комнате секретарши идет именно в серверную 1, а не или даже не 3 и что на этом порту висит еще телефон с тегированным виланом и нетегированный вилан из подсети работяг конторы

я в своей теме писал про это и сделал базу данных

вот наверное это боле менее то, что я хочу, правда у меня более понятные сущности - здание, этаж, комната-порт и ответная часть серверная-порт, т.к. серверная это отдельная сущность, не привязанная к этажу или зданию

В целом я понял, есть проблема тут в том, что кабель соединяет 2 сущности, т.е. условно, он висит в воздухе

В идеале ввести сущность розетки на кабинете и связать эту розетку с портом в коммутаторе, а потом уже розетку с конечным устройством, но именно такой сущности нет, но можно завести устройство, при желании

Ну или кастомные поля навесить, я показывал выше.

В общем, если покопаться, то, думаю, что под себя можно точно настроить, штука прям очень гибкая.
Например, я создал доп поля для виртуалок, чтобы заполнять их данными из PVE (заполяется автоматически кодом)

Интересная штука. Я пока веду документацию по старинке — в заметках и гугл-таблицах. Вроде работает, но когда сеть разрастается, начинаешь задумываться о системном подходе.

KRom, а сложно было завести? Я смотрю на NetBox и кажется, что это либо забить всё сразу и идеально, либо вообще не начинать. Или можно мигрировать постепенно?

в ютубе ролики есть, правда я сам еще не дошел до их просмотра и даже закрыл уже

или не закрыл, а браузер упал и вкладки пропали, но я помню, что нарыл несколько роликов

В описании продукта указано что он предназначен для документирования корпоративных сетей.

У меня сеть состоит из двух подсетей, управляемых коммутаторов нет.

Можно использовать данный продукт для учета оборудования или можно использовать попроще?

Основное что требуется это отслеживать оборудование и быстрый анализ свободных ip адресов.

отвечаю всем и сразу

  1. можно развернуть и начать с малого, у меня не так много автоматизаций, но я хочу добавить их, к сожалению, каких-то прям готовых решений не так много, а netbox в платной облачной версии предоставляет ИИ тулзы для анализа сетей. я начинал с ручной настройки и этого более, чем достаточно
  2. можно начать просто с того, чтобы забить список IP адресов и прописать комментарии к ним, потом можно руками завести железки и привязать ip адреса к этим железкам, скрины со списком ip адресов я прикладывал выше
  3. если есть PVE, то можно развернуть тулзу, которая выгружает гостей из PVE в netbox (но я это не делал, у меня собственная реализация)
  4. ну и дальше или руками или автоматом расширять, например, я прописал руками vlanы, wifi сети, интернет провайдеров, устройства, ну тут автоматом сложно, заводится модель, загружаются фотки портов и размеры, потом можно добавить информацию по портам и руками прописать что воткнуто в какой порт

не надо оно тебе, просто в екселе таблицы сделай или лучше в гуглодоках

при помощи ии напиши какой нибудь скрипт, который обновляет адрес, например дергает с роутера список дхцп или что у тебя там и сует в таблицу

У меня сейчас обычный cmd скрипт периодически обходит все адреса в диапазонах и проверят занят адрес или нет. Но думал может есть более удобный вариант.

Ну я в Obsidia и сеть рисовал и коммутаторы с портами держу - удобно, что открыл заметку и там сразу основная информация имеется.
NetBox это ближе к

тут посмотри phpIPAM Demo
или это Tidal LightMesh | Tidal