Кластер серверов 1С:Предприятие 8.3: от установки до мониторинга

· 10 мин

Содержание

Кластер серверов 1С настраивают в консоли «Администрирование серверов 1С:Предприятия»: регистрируют центральный сервер, задают свойства кластера и рабочего сервера, затем создают в кластере информационные базы с привязкой к СУБД. Сам кластер «Локальный кластер» появляется автоматически, когда при установке сервер 1С регистрируется как служба Windows и стартует агент.

Вариантов настройки два. Через графическую консоль — удобно на Windows и для разовых задач. Через утилиту rac и сервер администрирования ras — для Linux, скриптов и удалённого управления. Ниже оба пути для платформы 8.3 на Windows Server 2016 и новее; для Linux отличается только установка и запуск службы.

Из чего состоит кластер серверов 1С

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

КомпонентПроцессПорт по умолчаниюЧто делает
Агент сервераragent1540Принимает первое обращение клиента и консоли, хранит список кластеров на сервере
Менеджер кластераrmngr1541Управляет кластером: реестр баз, сеансы, лицензии, распределение нагрузки
Рабочие процессыrphost1560–1591Выполняют код конфигурации и обращаются к СУБД
Сервер администрированияras1545Нужен только для rac и сторонних консолей

Порядок подключения клиента такой: клиент стучится к агенту на 1540, агент передаёт его менеджеру кластера на 1541, менеджер назначает рабочий процесс из диапазона портов. Поэтому открыть в брандмауэре только 1540 недостаточно.

🔹 Центральный сервер — компьютер, на котором работает главный менеджер кластера. Он хранит реестр кластера. 🔹 Рабочий сервер — любой компьютер кластера, где запускаются рабочие процессы. Центральный сервер тоже обычно рабочий. 🔹 Сервер СУБД — MS SQL Server, PostgreSQL, IBM Db2 или Oracle. Может стоять на той же машине или отдельно.

Настройки кластера хранятся в каталоге srvinfo. На Windows по умолчанию это C:\Program Files\1cv8\srvinfo. Главный файл реестра — 1CV8Clst.lst в подкаталоге reg_1541.

Подготовка сервера и установка платформы

Перед установкой решите три вопроса: где будет СУБД, какие порты открыть и под какой учётной записью пойдёт служба.

Что проверить заранее

  • 🖥️ Разрядность. Ставьте 64-битный сервер 1С: 32-битный упирается в память одного процесса.
  • 🌐 Имя компьютера. Клиенты подключаются по имени, оно должно разрешаться через DNS со всех рабочих мест. Переименовывать сервер после настройки кластера неудобно: имя записано в реестре кластера.
  • 🔥 Брандмауэр. Входящие правила для TCP 1540, 1541, 1560–1591, а если нужен rac — ещё 1545. Порт СУБД (1433 для MS SQL, 5432 для PostgreSQL) открывайте только для серверов 1С, не для всей сети.
  • 🗄️ СУБД. Для PostgreSQL берите сборку, адаптированную для 1С: обычная сборка из репозитория дистрибутива не подходит. Для MS SQL заведите отдельный логин с правом создавать базы.
  • 🔑 Лицензия сервера. Программная лицензия или аппаратный ключ должны быть под рукой до первого запуска базы.

Установка компонентов

  1. Запустите setup.exe из дистрибутива технологической платформы (полный дистрибутив, не тонкий клиент).
  2. Отметьте компоненты «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия». На рабочие места консоль не нужна.
  3. На шаге установки сервера включите «Установить сервер 1С:Предприятия 8 как сервис Windows».
  4. Оставьте пользователя USR1CV8 или укажите доменную учётную запись. Установщик создаст локального пользователя сам, если выбрать вариант по умолчанию.
  5. После установки откройте services.msc и убедитесь, что служба «Агент сервера 1С:Предприятия 8.3» запущена и стоит в автозапуске.

Строка запуска службы выглядит примерно так (номер версии свой):

"C:\Program Files\1cv8\8.3.24.1467\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Ключи -port, -regport и -range задают те самые порты из таблицы. Если на одном компьютере нужно два кластера (например, разных версий платформы), второй поднимают на смещённых портах: 2540, 2541, 2560:2591 — и с отдельным каталогом srvinfo.

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

Настройка кластера 1С в консоли администрирования

Консоль — это оснастка MMC. Если при запуске она ругается или открывается пустой, зарегистрируйте библиотеку radmin.dll той версии платформы, что стоит на сервере. Командная строка от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1467\bin\radmin.dll"

Версия консоли и сервера должна совпадать. Консоль от 8.3.22 к серверу 8.3.24 не подключится, это частая причина ошибки при попытке открыть кластер.

Регистрация центрального сервера

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. Правой кнопкой по узлу «Центральные серверы 1С:Предприятия 8.3» → Создать → Центральный сервер 1С:Предприятия 8.3.
  3. Укажите имя компьютера, протокол TCP и порт 1540.
  4. Раскройте сервер → Кластеры. Там уже есть «Локальный кластер» на порту 1541.

Свойства кластера

Откройте свойства кластера правой кнопкой. Ключевые параметры:

ПараметрЧто даётС чего начать
Интервал перезапускаПлановый перезапуск рабочих процессов, лечит утечки памяти86400 с (раз в сутки) или 0, если перезапуск не нужен
Допустимый объём памятиПорог, после которого процесс считается проблемнымПо объёму ОЗУ сервера, оставив запас СУБД
Принудительно завершать проблемные процессыАвтоматически гасит процесс, превысивший порогВключать осознанно
Уровень отказоустойчивостиСколько рабочих серверов может отказать без остановки работы0 для одного сервера
Режим распределения нагрузкиПриоритет по производительности или по памятиПо производительности

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

Администраторы кластера

Пока в узле Администраторы никого нет, кластером может управлять любой, кто дотянулся до порта 1540. Добавьте администратора с паролем: правой кнопкой → Создать → Администратор. После этого консоль и rac будут спрашивать логин.

Пароль запишите в хранилище паролей. При его потере придётся останавливать службу и восстанавливать каталог srvinfo из резервной копии.

Свойства рабочего сервера

Узел Рабочие серверы → свойства сервера. Здесь, а не в кластере, задаются:

  • 📌 диапазон портов рабочих процессов;
  • 📌 количество информационных баз и соединений на один процесс;
  • 📌 безопасный расход памяти за один вызов;
  • 📌 флажок «Центральный сервер» и признак «Менеджер под каждый сервис»;
  • 📌 требования назначения функциональности — какие сервисы (лицензирование, фоновые задания, работа с базами) этот сервер берёт на себя.

Второй рабочий сервер добавляют здесь же: Создать → Рабочий сервер, имя второго компьютера, порт 1540. На нём должна стоять та же версия платформы с запущенной службой агента.

Регистрация информационных баз и подключение к СУБД

Базу в кластере можно создать двумя способами: в консоли или из окна запуска 1С. Результат одинаковый.

Создание базы в консоли

  1. Кластер → Информационные базы → правой кнопкой → Создать → Информационная база.
  2. Имя — так база будет называться в кластере. Его вводят пользователи при подключении, поэтому без пробелов и кириллицы удобнее.
  3. Защищённое соединение — обычно «Выключено» в локальной сети.
  4. Сервер баз данных — имя сервера СУБД, для именованного экземпляра MS SQL через обратный слэш: SQLSRV\INST1.
  5. Тип СУБД — MS SQL Server, PostgreSQL, IBM DB2 или Oracle Database.
  6. База данных, пользователь и пароль сервера БД.
  7. Смещение дат — 2000 для MS SQL Server, для PostgreSQL оставьте 0.
  8. Флажок «Создать базу данных в случае её отсутствия», если базы в СУБД ещё нет.
  9. «Разрешить выдачу лицензий сервером 1С:Предприятия» — «Да», если клиентские лицензии стоят на сервере.

Флажок «Установить блокировку регламентных заданий» включайте для копий рабочих баз. Иначе тестовая копия начнёт отправлять отчёты, обмениваться данными и загружать банковские выписки от имени рабочей.

Подключение пользователей

В окне запуска 1С: Добавить → Добавление в список существующей информационной базы → На сервере 1С:Предприятия. Указываете кластер серверов (имя центрального сервера, при нестандартном порте через двоеточие: srv1c:2541) и имя базы в кластере.

Перенос существующей файловой базы в кластер — через выгрузку .dt: в Конфигураторе файловой базы Администрирование → Выгрузить информационную базу, затем в пустой серверной базе Администрирование → Загрузить информационную базу. Загрузка .dt требует монопольного доступа и заменяет все данные в базе-приёмнике.

Рабочие процессы и лицензирование

Рабочие процессы rphost менеджер кластера запускает сам. Их число зависит от настроек рабочего сервера: сколько баз и соединений допускается на один процесс. На небольшой базе на 20–30 пользователей обычно хватает одного-двух процессов.

Как распределяются лицензии

  • 🔐 Лицензия на сервер нужна всегда. Без неё серверная база не запустится. Для 64-битного сервера нужна соответствующая лицензия, 32-битная к нему не подойдёт.
  • 👥 Клиентские лицензии можно держать на каждом рабочем месте или на сервере. Во втором случае в свойствах базы включают выдачу лицензий сервером.
  • 🏷️ Программные лицензии на Windows хранятся в C:\ProgramData\1C\licenses. При переносе на новое железо их нужно активировать заново по пин-коду, а не копировать файлы.

Какой сеанс какую лицензию получил, видно в консоли в списке сеансов базы. Из командной строки то же самое показывает rac session list --licenses.

Если серверов несколько

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

Управление кластером из командной строки: ras и rac

На Linux графической консоли нет, а на Windows скрипты удобнее для регулярных задач. Схема такая: на сервере запускается ras, утилита rac подключается к нему по порту 1545.

Запуск ras как службы Windows:

sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.24.1467\bin\ras.exe\" cluster --service --port=1545 localhost:1540" DisplayName= "Сервер администрирования 1С" start= auto
sc start "1C:Enterprise 8.3 Remote Server"

Базовые команды rac, которые точно есть в 8.3:

rac localhost:1545 cluster list
rac localhost:1545 infobase summary list --cluster=<UUID кластера> --cluster-user=admin --cluster-pwd=***
rac localhost:1545 session list --cluster=<UUID кластера> --cluster-user=admin --cluster-pwd=***
rac localhost:1545 process list --cluster=<UUID кластера> --cluster-user=admin --cluster-pwd=***

Первая команда выдаёт UUID кластера, его подставляют во все остальные. Полный перечень режимов и параметров показывает rac help и rac help <режим>, например rac help infobase.

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

Мониторинг и диагностика проблем кластера

Ежедневный контроль занимает пару минут в консоли.

  1. Рабочие процессы — колонки памяти, числа соединений и доступной производительности. Процесс, который за день вырос в разы и не освобождает память, — кандидат на утечку в коде конфигурации.
  2. Сеансы базы — кто подключён, с какого компьютера, сколько висит без активности.
  3. Блокировки — какие объекты держат сеансы. Длинный список по одному сеансу указывает на зависшую транзакцию.

Для разбора медленных операций включают технологический журнал: файл logcfg.xml в каталоге conf платформы. В нём описывают, какие события писать (например, EXCP, TLOCK, DBMSSQL) и куда. Журнал быстро растёт, поэтому задавайте ограничение по сроку хранения и включайте его на время расследования.

Ошибки старта службы смотрите в журнале событий Windows, раздел «Приложение», источник — 1С:Предприятие.

Диагностика: выберите симптом

Очистка сеансовых данных

Когда кластер ведёт себя странно после сбоя питания или обновления платформы (база не открывается, хотя всё настроено верно), чистят сеансовые данные: каталоги snccntx* в srvinfo\reg_1541.

Это делают только при остановленной службе агента, вне рабочего времени. Остановка службы обрывает все сеансы всех баз кластера. Порядок: предупредить пользователей → остановить службу → сохранить копию каталога srvinfo → удалить только каталоги snccntx* → запустить службу. Файл 1CV8Clst.lst не трогайте: в нём список баз кластера.

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

Можно ли держать на одном сервере кластеры двух версий платформы?
Да. Каждый кластер поднимают отдельной службой со своими портами (например, 1540/1541 и 2540/2541) и своим каталогом srvinfo. Клиенты указывают порт через двоеточие после имени сервера.
Нужен ли отдельный сервер под СУБД?
Нет, при небольшой нагрузке СУБД и сервер 1С уживаются на одной машине. Отдельный сервер оправдан, когда базы большие или пользователей много: так проще распределить память и диски.
Чем кластер отличается от файловой базы с точки зрения пользователя?
Внешне работа та же. Отличается способ подключения: вместо пути к каталогу указывают имя сервера и имя базы в кластере. Резервные копии в серверном варианте делают средствами СУБД.
Что делать после обновления платформы на сервере?
Обновить платформу на всех рабочих серверах кластера до одного номера, перерегистрировать radmin.dll новой версии и обновить клиентов. Номер версии клиента должен совпадать с номером версии сервера.
Где посмотреть, сколько пользователей сейчас в базе?
В консоли: кластер, Информационные базы, нужная база, Сеансы. Из командной строки — rac session list с UUID кластера.