← Все проектыКЕЙС / 07 · LINUX / INFRASTRUCTURE AUTOMATION

Инвентаризация Proxmox.Контроль через NetBox и Zabbix.

Разработал и внедрил управляемый контур учёта инфраструктуры: от сбора конфигурации гипервизоров и виртуальных машин до сверки с NetBox и ежедневного мониторинга расхождений.

Proxmox VELinuxPythonNetBoxsystemdZabbixGitHub Actions
READ-ONLYЕжедневный сбор и аудит без автоматического изменения инфраструктуры
0 DRIFTРасхождений при приёмочной проверке
RU / ENПубличный обезличенный исходный код и документация
01 / ЗАДАЧА

Нужен источник достоверных данных, а не очередная таблица.

Виртуальные машины, сетевые адаптеры и настройки кластерных узлов постоянно меняются. Ручная инвентаризация быстро устаревает, а ошибка при массовой синхронизации может затронуть production. Требовалось не только собрать объекты в NetBox, но и проверять их актуальность без автоматического внесения изменений.

02 / АРХИТЕКТУРА

Разделение сбора, учёта и контроля.

Каждый компонент отвечает за конкретный участок, а доступ к API и записи в базу разделены по полномочиям.

01 / SOURCE

Proxmox VE

pvesh GET: узлы, QEMU/LXC, интерфейсы и ресурсы

02 / COLLECT

Python

Нормализация данных, проверка полноты, приватные JSON-снимки

03 / INVENTORY

NetBox

DCIM и Virtualization: физические устройства, VM и vNIC

04 / AUDIT

systemd

Ежедневная независимая сверка hardware и guest inventory

05 / OBSERVE

Zabbix

Статус CLEAN / DRIFT / ERROR, число расхождений и время проверки

03 / РЕАЛИЗАЦИЯ

Из скриптов — в управляемый процесс.

Инвентаризация узлов и VM

Сбор характеристик гипервизоров, виртуальных машин QEMU/LXC, CPU, RAM и сетевых интерфейсов. Сопоставление с существующими объектами NetBox по устойчивым идентификаторам.

Безопасный импорт

Предварительный preview и dry-run, проверка контрольного количества, резервная копия PostgreSQL, подтверждение изменений и транзакционное создание интерфейсов. Автоматическая коррекция отключена.

Работа с исключениями

Эталонные выключенные VM могут содержать дублирующийся MAC. В этом случае интерфейс учитывается, но конфликтующий адрес не назначается; исключение явно проверяется аудитором.

Мониторинг и контроль изменений

Раздельные systemd timers для оборудования и VM, изолированные отчёты, санитаризованный экспорт трёх числовых метрик через Zabbix Agent и триггеры на расхождения, ошибки и устаревание данных.

04 / РЕЗУЛЬТАТ

Проверяемая инвентаризация вместо ручного учёта.

На действующей корпоративной площадке NetBox сопоставлен с Proxmox по узлам, гостевым системам и сетевым интерфейсам. Интеграция проверена не только локальным запуском: Zabbix Server действительно опрашивает новые показатели. Это контроль соответствия, а не двусторонний оркестратор изменений.

  • Независимые ежедневные проверки hardware и VM/LXC
  • Отдельные статусы CLEAN, DRIFT и ERROR
  • Проверка актуальности снимков и контроль исключений
  • Защищённые права на файлы, TLS и read-only API-доступ
  • Тесты Python и проверка изменений через GitHub Actions
05 / ИСХОДНИКИ

Практика, которую можно изучить в коде.

В открытом репозитории — сборщики, аудиторы, примеры systemd, интеграция с Zabbix, тесты и документация. Реальные параметры корпоративной площадки, внутренние IP, имена узлов, VMID и MAC-адреса не публикуются.

Область применения: инвентаризация и обнаружение расхождений. NetBox не выполняет произвольное управление Proxmox, а изменения не применяются автоматически при обнаружении drift. Код требует настройки под конкретную инфраструктуру и независимой проверки перед производственным использованием.