Почему сервер 1С:Предприятия на CentOS 7 ограничивает количество пользователей до 10, несмотря на наличие лицензии на 100 человек, когда веб-доступ работает без ограничений?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При администрировании серверов 1С:Предприятия, особенно на платформах Linux, таких как CentOS 7, мы часто сталкиваемся с проблемами лицензирования. Одной из распространенных ситуаций является ограничение на количество одновременных подключений пользователей, несмотря на то что, казалось бы, все необходимые лицензии были приобретены. Давайте подробно разберем, почему может возникнуть такая ситуация, как ее диагностировать и какие шаги предпринять для устранения.

Мы рассмотрим конкретный случай, когда сервер 1С:Предприятия под управлением CentOS 7 с заявленной лицензией на 100 пользователей ограничивает работу с ПК до 10 человек, при этом веб-доступ работает без каких-либо ограничений. Ключевое сообщение, которое мы увидели при попытке подключиться более чем 10 пользователям, было: "На Сервере 1С не обнаружена программная лицензия." Это сообщение является отправной точкой для нашей диагностики.

1. Понимание типов лицензий 1С:Предприятия и их роли

Для начала, давайте проясним, какие типы лицензий существуют в экосистеме 1С:Предприятия и за что каждая из них отвечает. В нашем сценарии мы говорим о двух основных категориях:

  1. Серверная лицензия 1С:Предприятия: Эта лицензия необходима для запуска и функционирования самого кластера сервера 1С:Предприятия. Без нее сервер просто не сможет обрабатывать запросы от клиентов в клиент-серверном режиме. Именно эта лицензия позволяет использовать все преимущества клиент-серверного варианта работы, такие как масштабируемость, производительность и надежность. Серверные лицензии бывают 32-разрядными и 64-разрядными; 64-разрядная лицензия обычно позволяет использовать и 32-разрядные рабочие процессы.
  2. Клиентские лицензии 1С:Предприятия: Эти лицензии позволяют конкретным пользователям подключаться к информационным базам. Они определяют максимальное количество одновременных рабочих сеансов. Клиентские лицензии могут быть как программными (привязанными к параметрам рабочего места или сервера), так и аппаратными (USB-ключи HASP).

В случае с программными лицензиями, как в нашем примере, они привязываются к ключевым параметрам компьютера (или виртуальной машины), таким как операционная система, дата установки, серийный номер, сетевое имя, модель материнской платы, свойства BIOS, компоненты процессора, MAC-адреса и перечень дисков. Если эти параметры изменяются, лицензия может "слететь", то есть стать недействительной.

Также существуют специализированные серверные лицензии, например, "Сервер МИНИ", которая имеет ограничение до 5 пользовательских сеансов и 1 сеанса конфигуратора. Хотя в нашем случае ограничение в 10 человек не соответствует напрямую "Серверу МИНИ", всегда полезно проверить, не установлен ли случайно такой тип лицензии, если вы сталкиваетесь с неожиданными ограничениями.

Важно понимать, что для работы в клиент-серверном варианте всегда требуются две отдельные лицензии: серверная для приложения сервера 1С:Предприятия и клиентские для запуска клиентского приложения.

2. Диагностика проблемы: "На Сервере 1С не обнаружена программная лицензия"

Когда мы видим сообщение "На Сервере 1С не обнаружена программная лицензия", это однозначно указывает на проблему с серверной лицензией, а не с клиентскими. Это означает, что сам сервер 1С:Предприятия не может получить разрешение на свою работу, что, в свою очередь, блокирует или ограничивает выдачу клиентских лицензий и работу пользователей. Давайте проанализируем возможные причины и методы диагностики.

Возможные причины отсутствия серверной лицензии:

  1. Лицензия не активирована вовсе: Это самая простая и, как выяснилось в нашем случае, наиболее вероятная причина. Вы могли приобрести пин-код для серверной лицензии, но забыть или не успеть ее активировать на сервере.
  2. Лицензия "слетела": Программные лицензии очень чувствительны к изменениям параметров оборудования или операционной системы, к которым они привязаны. Если на сервере были произведены обновления ОС, заменены компоненты оборудования, изменена конфигурация виртуальной машины (например, добавлены/удалены сетевые адаптеры, изменены MAC-адреса, перенесены диски), лицензия могла стать недействительной. В этом случае требуется переактивация с использованием резервного пин-кода.
  3. Проблемы с файловой системой или правами доступа: Файлы лицензий должны быть доступны для чтения серверу 1С:Предприятия. Если произошли изменения в правах доступа к каталогу с лицензиями (обычно `/var/1C/licenses/` в Linux), сервер не сможет их обнаружить.

Как провести диагностику:

  1. Проверка журнала поиска лицензий: Это первый и самый важный шаг. В журнале поиска лицензий 1С (который можно найти в журнале регистрации 1С:Предприятия или в специализированных логах сервера) подробно указывается, почему лицензия не была найдена или почему она стала недействительной. Журнал может указать, какой именно параметр компьютера изменился, если лицензия "слетела".
  2. Использование утилиты ring на Linux: Для управления программными лицензиями 1С на Linux-серверах существует специальная утилита ring. Мы можем найти ее в каталоге установки компонентов 1С:Предприятия, например, в `/opt/1C/1CE/components/1c-enterprise-ring-X.X.X+X-x86` (где X.X.X+X — это номер версии).
  3. С помощью ring мы можем выполнить следующие действия:

  4. Исключение аппаратных ключей и nethasp.ini: Важно помнить, что для программных лицензий файл nethasp.ini (который используется для указания IP-адреса сервера ключей HASP) не имеет никакого значения. Он актуален только для аппаратных ключей, когда служба "Hasp License manager" раздает лицензии клиентам. В нашем случае, когда мы имеем дело с программными лицензиями, попытка настройки nethasp.ini на рабочих местах не принесет результата и лишь запутает диагностику.

В нашем конкретном случае, автор темы подтвердил: "у нас было 2 лицензии на сервер одна получена, другая нет. Нужна мне не получена." Это сразу сужает круг поиска и указывает на то, что серверная лицензия, которая должна была обеспечить 100 клиентских подключений, просто не была активирована.

3. Решение проблемы: Активация программной серверной лицензии на CentOS 7

Основываясь на проведенной диагностике, мы понимаем, что ключевым шагом является активация недостающей серверной лицензии. Для этого нам понадобится пин-код, входящий в комплект поставки лицензии на сервер 1С:Предприятия.

Процесс активации лицензии:

  1. Получение пин-кода: Убедитесь, что у вас есть пин-код именно для серверной лицензии. Если у вас несколько лицензий (например, несколько клиентских и одна серверная), важно не перепутать их.
  2. Активация через Конфигуратор:

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

    1. Создать временную файловую информационную базу на сервере или на любой машине с установленным клиентом 1С.
    2. Запустить эту базу в режиме Конфигуратора.
    3. В Конфигураторе найти меню, связанное с получением или управлением лицензиями (обычно это "Сервис" -> "Получение лицензий" или аналогичное).
    4. Следуя инструкциям мастера активации, ввести пин-код и данные о владельце (точно такие же, как при первичной регистрации, если это не первая активация).
    5. После успешной активации файл лицензии с расширением .lic будет создан в каталоге, который по умолчанию для Linux-серверов 1С является /var/1C/licenses/. Убедитесь, что этот файл появился и имеет корректные права доступа для пользователя, от имени которого запущен сервер 1С (обычно usr1cv8).
  3. Активация через утилиту ring (для опытных пользователей):

    Если нет возможности или желания использовать графический режим, активацию можно выполнить напрямую через утилиту ring, хотя это более сложный процесс и требует точного знания всех параметров.

    Пример команды для активации (параметры могут варьироваться в зависимости от версии 1С и типа лицензии):

    
    /opt/1C/1CE/components/1c-enterprise-ring-X.X.X+X-x86/ring license activate \
    --pin <пин-код_лицензии> \
    --owner-name "Название_Организации" \
    --owner-email "email@example.com" \
    --owner-country "RU" \
    --path /var/1C/licenses/
    

    После активации сервер 1С:Предприятия должен быть перезапущен, чтобы он смог обнаружить новую лицензию.

Важные моменты при активации и работе с лицензиями:

  1. Сохранение файла LicData.txt: При активации лицензии, помимо файла .lic, часто создается файл LicData.txt, который содержит информацию о владельце, использованную при активации. Крайне важно сохранять этот файл, так как при повторной активации (например, после "слета" лицензии) вам потребуется ввести те же самые данные.
  2. Резервные пин-коды: Лицензии 1С обычно предоставляются с несколькими пин-кодами (основным и резервными). Резервные пин-коды используются для повторной активации лицензии в случае ее "слета" или переноса на другой сервер. Используйте их только при необходимости, так как количество активаций обычно ограничено.
  3. Стабильность параметров виртуальной машины: Если сервер 1С работает на виртуальной машине, старайтесь не изменять ее ключевые параметры (MAC-адреса, количество процессоров, объем ОЗУ, названия дисков) и не использовать режим динамического перераспределения ресурсов. Это поможет избежать "слета" лицензий.

4. Особенности лицензирования для различных типов клиентов (веб, тонкий, толстый)

Возникший в нашем случае вопрос, почему веб-доступ работает без ограничений, а доступ с ПК (тонкий/толстый клиент) ограничен, также имеет свое объяснение в механизмах поиска и получения лицензий:

  1. Веб-клиент:

    Веб-клиент работает в среде интернет-браузера и не имеет возможности использовать локальные клиентские лицензии (файлы .lic или аппаратные ключи HASP, установленные на рабочей станции пользователя). Он получает лицензию исключительно от сервера 1С:Предприятия. Если серверная лицензия была частично не найдена (например, сервер мог запуститься в ограниченном режиме, или какие-то части лицензии были найдены, позволяющие веб-серверу функционировать), то веб-клиенты, подключенные через веб-сервер (например, Apache или Nginx), могли получать лицензии от него.

    Для корректной выдачи лицензий веб-клиентам в параметрах информационной базы в кластере сервера 1С:Предприятия необходимо убедиться, что параметр "Разрешить выдачу лицензий сервером 1С:Предприятие" установлен в значение "Да".

  2. Тонкий/Толстый клиент:

    Приоритет поиска лицензии для тонкого и толстого клиентов следующий:

    1. Сначала клиент пытается использовать клиентскую лицензию, установленную локально на машине пользователя (если таковая имеется).
    2. Если локальная лицензия не найдена, клиент обращается к серверу 1С:Предприятия (в случае клиент-серверного режима) или к модулю расширения веб-сервера (для файловой базы, опубликованной на веб-сервере) с запросом на выдачу лицензии.

    В нашем случае, поскольку серверная лицензия была не активирована или не обнаружена, сервер 1С:Предприятия не мог выдавать клиентские лицензии. При этом, если локальных клиентских лицензий у пользователей не было, они сталкивались с ограничением. Это объясняет, почему доступ с ПК был ограничен, в отличие от веб-доступа, который полностью полагается на серверную часть.

5. Дополнительный вопрос: Лицензии для тестовых баз данных

В процессе обсуждения часто возникает вопрос о лицензировании тестовых баз данных. Мы можем однозначно утверждать следующее:

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

Если все необходимые серверные и клиентские лицензии уже получены и активированы, и вы создаете тестовые информационные базы:

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

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

Заключение

Проблема ограничения количества пользователей на сервере 1С:Предприятия на CentOS 7, особенно когда веб-доступ работает без проблем, чаще всего указывает на отсутствие или некорректную активацию программной серверной лицензии 1С:Предприятия. Тщательная диагностика с использованием журнала поиска лицензий и утилиты ring на Linux-сервере, а также понимание различий в механизмах получения лицензий различными типами клиентов, позволяют быстро выявить и устранить проблему.

Мы настоятельно рекомендуем всегда внимательно проверять статус всех приобретенных лицензий, сохранять пин-коды и данные о владельце, а также быть осторожными при изменении параметров серверного оборудования или виртуальных машин для избежания "слета" программных лицензий. Эти меры помогут обеспечить стабильную и бесперебойную работу вашей системы 1С:Предприятия.

← На главную