MAATRIX / Блог / Ежегодная инвентаризация лицензий и подписок на сервере

Ежегодная инвентаризация лицензий и подписок на сервере

MAATRIX

Через два-три года эксплуатации сервера на нём скапливается десяток-другой платных сущностей: лицензия на панель управления, подписка на мониторинг, коммерческий антивирус, платный плагин для CMS, ключ активации для бэкап-агента. Каждую заводили по конкретному поводу и в своё время — а дальше она просто продолжала работать, потому что никто не приходил её выключить. Раз в год стоит остановиться и честно пересчитать: за что вы платите, кто этим пользуется и не истекло ли что-то уже полгода назад. Ниже — рабочий подход к такой инвентаризации: что искать, как искать и что делать с находками.

Почему это не разовая уборка, а ежегодный регламент

Лицензии и подписки копятся тем же способом, что и мусор в любой системе без владельца: каждая появилась ради задачи, а задача давно закрыта или сменила форму. Три типовых исхода стоит держать в голове ещё до начала инвентаризации.

Уже не нужно, но продолжает списываться. Плагин ставили под конкретный лендинг, лендинг снесли полгода назад — а годовая подписка на плагин продлилась автоматически. Коммерческий мониторинг подключали на время миграции, чтобы не проспать проблему, — миграция закончилась, мониторинг остался. Отдельная категория — лицензии «под уволенного сотрудника»: человек настроил инструмент под себя, ушёл, а счёт продолжает приходить на общую карту компании, потому что отменить может только владелец аккаунта, а его уже никто не помнит.

Можно заменить бесплатным без потери функциональности. Год назад self-hosted альтернативы отставали от коммерческих продуктов достаточно, чтобы платить было оправданно. За год экосистема меняется: у бесплатного бэкап-инструмента появилась дедупликация, у open-source мониторинга — алерты в Telegram из коробки. Не факт, что замена нужна именно сейчас, но раз в год стоит хотя бы проверить, не закрылся ли разрыв.

Лицензия истекла, а продукт работает по инерции. Это самый неприятный случай: софт не проверяет активацию при каждом запуске, продолжает работать месяцами после истечения ключа, и обнаруживается это либо при апдейте, который вдруг отказывается ставиться, либо — хуже — при лицензионном аудите со стороны вендора. У части коммерческого ПО (базы данных уровня Oracle/MS SQL, серверные ОС, отраслевые CRM) в договоре прямо прописано право поставщика на аудит использования, и работа без действующей лицензии — это не абстрактный риск, а прямые претензии и доначисления задним числом.

Всё это — не про экономию ради экономии. Это про то, чтобы список софта на сервере соответствовал списку софта, за который вы реально платите и на который у вас реально есть право.

Что считать лицензируемым ПО на сервере

Первая ошибка инвентаризации — сузить её до «программ, которые я покупал на сайте». На практике лицензируемое ПО на сервере распадается на пять слоёв, и в каждом прячутся забытые позиции.

Операционная система и её компоненты. Windows Server с CAL на количество пользователей или устройств, RHEL/SUSE с платной подпиской на поддержку и репозитории, коммерческие сборки ядра или файловых систем.

Панели управления и серверные утилиты. cPanel/WHM, Plesk, ISPmanager, платные тарифы FASTPANEL — почти все они лицензируются по количеству IP или доменов и требуют либо постоянного онлайн-соединения с сервером активации, либо периодической ручной активации.

Прикладное коммерческое ПО. 1С и её конфигурации, отраслевые CRM/ERP, платные СУБД (MS SQL, Oracle), коммерческие сборки баз данных с расширенными фичами (например, Enterprise-редакции), лицензии на шрифты и медиатеку, если сервер отдаёт статику для дизайн-продукта.

Инфраструктурные SaaS-подписки. Платный мониторинг и алертинг, коммерческие CDN и WAF, email-доставка (транзакционные письма), сервисы резервного копирования в облако, менеджеры секретов и SSO, платные SSL-сертификаты (EV/OV, где нужна проверка организации, а не просто шифрование), лицензии на антивирус и EDR для серверов.

Платные компоненты внутри приложений. Премиум-плагины CMS (WooCommerce-расширения, платные темы), коммерческие библиотеки внутри кода (генерация PDF, OCR, конвертация видео — часто с лицензией по количеству серверов или ядер), API с платным тарифом, который технически можно заменить бесплатным лимитом, но команда об этом не подумала при интеграции.

Полезно свериться с общей инвентаризацией сервера — если у вас уже есть актуальный список всего, что крутится на машине, лицензионная инвентаризация становится фильтром поверх него, а не работой с нуля.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Как собрать полный список: источники и команды

Список нужно собирать не по памяти, а по факту установленного и оплачиваемого. Источники стоит комбинировать — ни один из них по отдельности не даёт полной картины.

Пакеты и сервисы на самой машине. Начните с того, что реально установлено:

# Debian/Ubuntu — все установленные пакеты
dpkg -l > /tmp/installed-packages.txt

# RHEL/AlmaLinux
rpm -qa > /tmp/installed-packages.txt

# запущенные systemd-сервисы — часто выдают коммерческий агент
systemctl list-units --type=service --state=running

# файлы лицензий и ключей активации на диске
find / -iname "*.lic" -o -iname "*license*" 2>/dev/null | grep -v proc

# признаки лицензии в конфигах и логах
grep -riE "license|licence|activation|serial" /etc /opt 2>/dev/null | grep -v Binary

Docker-контейнеры и их окружение. Коммерческие образы часто передают ключ активации через переменную окружения:

docker ps --format '{{.Names}}\t{{.Image}}'
docker inspect <container> | grep -iE "license|key|activation" -A1

Cron и systemd timers. Скрипты продления или проверки лицензии часто живут именно там, и это же способ найти, что вообще требует продления:

crontab -l
for u in $(cut -f1 -d: /etc/passwd); do crontab -u "$u" -l 2>/dev/null; done
systemctl list-timers --all

Windows-хосты. Отдельно проверьте активацию самой ОС и число выданных CAL:

slmgr.vbs /dlv
Get-CimInstance SoftwareLicensingProduct | Where-Object PartialProductKey
Get-RDUserLicense  # для RDS CAL, если развёрнут терминальный сервер

Панели управления. У каждой свой способ проверить статус:

# cPanel
/usr/local/cpanel/cpkeyclt

# Plesk
plesk bin license -i

Деньги — самый честный источник. Список установленного ПО не покажет SaaS-подписки, у которых нет следа на сервере: почтовую доставку, CDN, мониторинг из облака. Их видно только по факту оплаты — выписка по корпоративной карте за 12 месяцев, история в PayPal/Stripe, крипто-транзакции, если часть сервисов оплачивается стейблкоинами. Это отдельная, более широкая работа — если её у вас ещё не было, посмотрите методику в статье про аудит платежей-призраков: она закрывает ту часть подписок, которая не оставляет следов в конфигах.

Отдельно опросите команду: часть SaaS-подписок оформлена на личную карту сотрудника с последующей компенсацией, и такие позиции не найти ни в конфигах, ни в выписке компании.

Для каждой позиции: статус лицензии и реальная необходимость

Когда список собран, для каждой строки нужны четыре ответа: что это, на каких условиях, кто этим пользуется и когда истекает. Удобно свести всё в одну таблицу — не в голове, а в файле, который переживёт смену состава команды.

ПозицияТип лицензииИстекает / продлеваетсяГодовая стоимостьКто используетРешение
Windows Server Standard + 15 RDS CALPerpetual + подписка на CALCAL — ежегодно, 1 мартаориентир: несколько тыс. ₽/год за пакет CALБухгалтерия, удалённый доступПродлить
Плагин WooCommerce «Расширенные отчёты»Годовая подпискаИстёк 4 месяца назадНикто, магазин закрыт в апрелеОтключить
Коммерческий мониторинг (внешний SaaS)Помесячная подпискаАвтопродлениеориентир: сопоставимо с VPS среднего тарифаDevOps, 2 алерта в месяцЗаменить на self-hosted
1С:Бухгалтерия, 5 местPerpetual + подписка на обновления (ИТС)ИТС — по договоруБухгалтерия, ежедневноПродлить
SSL EV-сертификатГодовая подписка у CAЧерез 2 месяцаПубличный сайтПродлить (EV нужен для витрины)

Статус лицензии проверяется не по дате покупки, а по факту: у perpetual-лицензий (одна оплата навсегда) обычно нет даты истечения самого права использования, но может быть отдельная подписка на обновления и поддержку — и именно она чаще всего просрочена незаметно. У подписочных моделей смотрите не дату следующего списания (это скажет только когда спишут снова), а дату, до которой оплачен текущий период, — их иногда путают, особенно если оплата идёт не автоматически, а вручную раз в год по счёту.

Реальную необходимость проверяйте не мнением («наверное, кто-то пользуется»), а фактом: логами последнего входа в панель, датой последнего алерта от мониторинга, статистикой использования плагина, если она есть. Отдельно стоит смотреть на подписки, где платите не за продукт, а за неиспользуемые места — это частый и незаметный источник переплаты, разобранный отдельно в статье про оплату мест в подписке, которыми никто не пользуется.

Где платное можно безопасно заменить бесплатным

Часть находок в таблице выше закроется не отменой, а заменой. Это не универсальный совет «всё коммерческое переводите на open-source» — где-то замена честная и безболезненная, а где-то экономия на лицензии обернётся часами вашего времени на поддержку, что тоже стоит денег.

Где замена обычно работает хорошо:

  • Платный внешний мониторинг с базовым набором метрик и алертов → self-hosted Zabbix, Prometheus + Grafana или Uptime Kuma. Теряете готовую SaaS-инфраструктуру (не надо следить за самим мониторингом), приобретаете контроль и нулевую абонентку.
  • Коммерческий бэкап-агент для типовых Linux-серверов → BorgBackup или restic с дедупликацией и шифрованием — по функциональности для большинства сценариев паритет, разница в удобстве GUI.
  • DV/OV SSL-сертификаты → Let's Encrypt с автопродлением через certbot или встроенный ACME в Caddy/Traefik — здесь замена практически без компромиссов уже несколько лет.
  • Панель управления начального уровня → aaPanel или бесплатный тариф FASTPANEL, если не упираетесь в лимиты по числу доменов.

Где замена рискованная или неполная:

  • EV-сертификаты для публичной витрины, где важна проверка организации в браузере, — бесплатных аналогов нет в принципе, это не техническое, а юридически-репутационное требование.
  • Коммерческие СУБД с фичами, завязанными на конкретный формат хранения или репликацию (Oracle RAC, специфичные расширения MS SQL) — миграция на PostgreSQL/MySQL возможна, но это отдельный проект, а не замена в рамках инвентаризации.
  • 1С и отраслевые учётные системы, если бизнес-процессы уже завязаны на конкретную конфигурацию, — здесь дешевле продлить лицензию, чем переписывать процессы.
  • Коммерческий антивирус/EDR с центральной консолью и SLA поддержки — ClamAV закрывает базовую проверку файлов, но не заменяет полноценный EDR с поведенческим анализом, если это требование комплаенса, а не формальность.

Если среди находок есть компоненты с открытой лицензией (GPL, AGPL), которые встроены в закрытый коммерческий продукт, — стоит отдельно свериться с условиями: копилефт-лицензии иногда накладывают требования, которые всплывают именно при аудите. Если в списке есть реестровое отечественное ПО с требованиями по месту хранения и лицензированию — отдельная схема учёта есть в статье про реестровое ПО на своём сервере.

План действий по итогам инвентаризации

Таблица без решений — просто более длинный список того же беспорядка. По каждой строке нужен один из четырёх вердиктов, и дальше — конкретный шаг с датой.

Продлить. Позиция используется, альтернативы нет или она не оправдана. Действие: продлить сразу, не откладывая до истечения, и поставить напоминание на следующий цикл — за месяц до даты, а не в день истечения.

Заменить. Позиция используется, но есть подходящая бесплатная или более дешёвая альтернатива. Действие: не отключать старое сразу — сначала развернуть замену параллельно, дать ей поработать хотя бы пару недель, и только потом отключать платное. Миграция мониторинга или бэкапов «в лоб» без периода параллельной работы — частая причина того, что в момент реальной проблемы не оказывается ни старой, ни новой системы в рабочем состоянии.

Отключить. Позицией никто не пользуется. Действие: прежде чем отменять подписку или удалять активацию, экспортировать данные (архив конфигурации, экспорт отчётов, дамп базы), если есть шанс, что они понадобятся, — отменённую SaaS-подписку восстановить с полным доступом к старым данным обычно уже нельзя.

Легализовать срочно. Лицензия истекла, продукт работает, от него зависит прод. Это не пункт «на потом» — это единственная категория, где промедление создаёт прямой юридический риск. Действие: в течение недели либо продлить лицензию, либо запустить миграцию на замену с чётким сроком — и до завершения одного из двух шагов держать в курсе того, кто отвечает за комплаенс в компании, а не тихо чинить самому.

Результат всей инвентаризации стоит зафиксировать не только как разовый отчёт, но и как обновлённый реестр — файл или таблица, которая живёт в общем доступе команды (а не в почте одного человека) и на которую можно сослаться через год. В идеале эта инвентаризация встаёт в один ряд с планированием годового бюджета на инфраструктуру — обе задачи закрывают одну и ту же слепую зону: расходы, о которых вспоминают только когда приходит счёт.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Сколько времени занимает инвентаризация на инфраструктуре из 3-5 серверов?

Ориентировочно день-полтора на первый проход, если ничего подобного раньше не делали: сбор списка, сверка с платежами, заполнение таблицы. В следующие годы, когда реестр уже есть, обновление занимает несколько часов — вы просто проверяете дельту, а не собираете всё заново.

Что делать, если нашли ПО с истёкшей лицензией, от которого прямо сейчас зависит прод?

Не отключать резко. Сначала оценить, сколько нужно на легализацию (продление или миграцию), затем действовать по этому плану в течение недели-двух, держа в курсе ответственного за комплаенс. Работать «как есть» месяцами после обнаружения — уже осознанный риск, а не забывчивость.

Нужна ли такая инвентаризация небольшой компании с одним сервером?

Да, но в облегчённом виде: достаточно списка из десятка строк и часа времени раз в год. Чем меньше инфраструктура, тем проще всё держать в одной таблице и тем обиднее платить за забытую подписку, которая для маленькой компании — заметная доля бюджета.

Как быть с бесплатными редакциями ПО (community/free tier), у которых есть скрытые лимиты?

Это отдельная категория риска — формально «бесплатно», но лимит по числу узлов, пользователей или объёму данных может быть превышен без предупреждения. Их тоже стоит вносить в реестр с пометкой «бесплатно, но с лимитом» и раз в год сверять фактическое использование с порогом.

Кто должен отвечать за инвентаризацию, если в команде нет отдельного администратора?

Один конкретный человек с именем, а не «мы все». Даже если это тот же человек, кто занимается сервером в целом, — важно, чтобы обязанность была явно закреплена, иначе через год инвентаризацию просто некому будет вспомнить провести.

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

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →