Перенос системы лицензирования на отдельный сервер или виртуальную машину — это стандартный шаг для обеспечения отказоустойчивости крупных систем «1С:Предприятие 8». Однако часто администраторы сталкиваются с ситуацией «казино»: лицензия то обнаруживается, то нет, а в журнале поиска появляются ошибки привязки. В этой статье мы подробно разберем, почему программные лицензии «слетают» на виртуальных машинах, как настроить систему мониторинга изменений оборудования, какие альтернативные методы привязки существуют и как выполняется установка комьюнити-лицензии на сервер 1С.
Программная лицензия 1С жестко привязывается к ключевым параметрам сервера. Для виртуальных машин (VM) этот список параметров расширяется, и любая динамическая настройка гипервизора может стать причиной «отвала» лицензии. Проанализируем основные факторы, которые 1С проверяет при каждом запуске:
CPU Compatibility Mode.Dynamic Memory недопустимо для сервера лицензирования. Система фиксирует точный объем RAM в байтах; любое автоматическое расширение или сжатие памяти гипервизором изменит «отпечаток» системы.MAC-адрес в панели управления гипервизором.BIOS UUID, что также критично для 1С.Если в окне поиска лицензий или в журнале вы видите текст Ошибка привязки программной лицензии к компьютеру... После получения лицензии удалены, это прямое указание на то, что один или несколько параметров оборудования изменились с момента активации. Выясним причину, используя Технологический Журнал (ТЖ).
Для того чтобы не гадать, какой именно параметр «плавает», настроим сбор события LErr (Licensing Error), а для удобства сбора данных можно использовать перенос логов технологического журнала в ClickHouse. Рассмотрим пример файла logcfg.xml, который нужно разместить в каталоге conf сервера 1С:
<config xmlns="http://v8.1c.ru/7.4/config/logcfg">
<log location="C:\LOGS\LIC_ERRORS" history="24">
<event>
<eq property="Name" value="LErr"/>
</event>
<event>
<eq property="Name" value="LIC"/>
</event>
<property name="all"/>
</log>
</config>
Для последующей обработки данных может пригодиться конвертер технологического журнала в новый формат.
Проанализировав логи в папке C:\LOGS\LIC_ERRORS (предварительно можно убрать лишние переносы строк), мы сможем увидеть сравнение характеристик оборудования в формате «Было / Стало». Это лучший аргумент в диалоге с системным администратором, утверждающим, что на виртуальной машине ничего не менялось.
Важно понимать разницу в логике потребления лицензий, когда вы выносите их на отдельный сервис лицензирования (License Server):
Если виртуальная среда остается нестабильной, самым надежным решением будет привязка программной лицензии не к «железу» сервера, а к аппаратному ключу HASP. Посмотрим на этот алгоритм подробнее:
При активации программной лицензии (вводе пин-кода) система позволяет выбрать способ привязки. Если к серверу (через USB-проброс) подключен любой сетевой ключ защиты (например, ORGL8 на 50 пользователей), мы можем выбрать его в качестве «якоря». В этом случае программная лицензия перестает зависеть от процессора, памяти и UUID виртуальной машины. Она будет работать до тех пор, пока сервер «видит» USB-ключ.
Нюанс для файловых баз: Если в вашей сети есть файловые базы, они не смогут самостоятельно забирать лицензии из сервиса лицензирования. В этом случае сервер 1С должен выступать в роли посредника, либо лицензии должны быть доступны через HASP License Manager.
Если базы стали грузиться долго (сообщение 8), это часто связано с неоптимальным порядком опроса ключей. Проанализируем типичный сценарий: клиент сначала ищет локальный ключ, потом опрашивает сеть широковещательными пакетами, и только в конце обращается к серверу.
Для ускорения процесса рекомендуется настроить файл nethasp.ini на стороне клиента. Рассмотрим пример настройки для прямой адресации к серверу лицензирования:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; IP-адрес сервера с ключом/сервисом
NH_USE_BROADCAST = Disabled ; Отключаем медленный поиск по всей сети
NH_TCPIP_METHOD = TCP
NH_SESSION_HOOK = Enabled
Такая настройка заставляет систему сразу обращаться по нужному адресу, минуя стадию длительного ожидания ответа от других сегментов сети.
Для администрирования выделенного «Сервиса лицензирования» (появившегося в платформе 8.3.9) используем утилиту ring. Она позволяет управлять инстансами службы и проверять их состояние. Разберем основные команды:
ring license list — просмотр всех установленных лицензий и их статусов.ring license info --name [ИмяЛицензии] — получение подробной информации о привязке конкретной лицензии.Проанализируем файл конфигурации сервиса srvls.ini. В нем можно увеличить таймауты ожидания ответа, если сервер лицензирования находится в другом сегменте сети и наблюдаются задержки. По умолчанию сервис работает на порту 1545, который должен быть открыт во всех межсетевых экранах между рабочими серверами 1С и сервером лицензий.
Выясним, какой путь наиболее эффективен в вашем случае. Если вы решили использовать выделенный сервер лицензирования на VM:
MAC-адрес и отключите Dynamic Memory.HASP — это снимет 90% проблем с «отвалом» лицензий при обновлении гипервизора.nethasp.ini на клиентских местах для мгновенного нахождения сервера лицензий.Соблюдение этих шагов позволит превратить систему лицензирования из «казино» в надежный и предсказуемый сервис.