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 (заполяется автоматически кодом)