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

· 11 мин

Содержание

Кластер серверов 1С настраивают в четыре шага: ставят серверную часть платформы и запускают службу агента (ragent) на порту 1540, регистрируют консоль администрирования (radmin.dll), создают в консоли кластер (менеджер кластера на 1541, рабочие процессы в диапазоне 1560–1591) и подключают к нему информационные базы. Дальше идёт настройка рабочих процессов, отказоустойчивости и безопасности. Всё это одинаково для любой конфигурации: БП, ЗУП, УТ, ERP — кластер живёт на уровне платформы 8.3.

Ниже порядок, в котором это делают на практике, с командами, портами и параметрами, которые чаще всего ставят неправильно.

1. Подготовка серверов и выбор схемы кластера

Сначала решите, сколько машин будет в кластере и где стоит СУБД. От этого зависят лицензии, порты и требования к железу.

СхемаКогда подходитМинусы
Один сервер 1С + СУБД на той же машинедо 20–30 пользователей, одна-две базыобщий отказ, конкуренция за память
Сервер 1С и СУБД на разных машинах30–150 пользователейнужна быстрая сеть между ними
Два и более рабочих сервера, СУБД отдельноот 100 пользователей, тяжёлые регламентысложнее администрирование, больше лицензий
Два центральных сервера (резервирование)когда простой недопустимнужна вторая лицензия на сервер, отказоустойчивость СУБД настраивается отдельно

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

  • 🖥️ ОС. Windows Server 2016 и новее или поддерживаемый дистрибутив Linux (Debian/Ubuntu, RHEL-совместимые, отечественные сборки).
  • 🧩 Одна версия платформы на всех серверах кластера, вплоть до четвёртой цифры номера. Клиенты тоже должны работать на этой же версии.
  • 🌐 Разрешение имён. Серверы обращаются друг к другу по имени, а не по IP. Каждое имя должно резолвиться с каждой машины кластера и с клиентов: через DNS или файл hosts.
  • 👤 Учётная запись службы. Отдельный локальный или доменный пользователь, обычно USR1CV8, без прав администратора.
  • 💾 СУБД. PostgreSQL (сборка с патчами для 1С) или MS SQL Server, установленные и проверенные до установки сервера 1С.
  • 🔑 Лицензия на сервер. Программная или аппаратная, под нужную разрядность (x86-64).

Самая частая причина «кластер создан, а базы не открываются» — имя сервера, которое знает только сам сервер. Проверьте ping <имя-сервера> с клиентского компьютера до установки, а не после.

2. Установка сервера 1С и регистрация службы агента

Windows

  1. Запустите установщик платформы (полный дистрибутив, setup.exe).
  2. В списке компонентов отметьте «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия».
  3. На шаге установки службы выберите «Установить сервер 1С:Предприятия 8 как сервис Windows » и укажите пользователя USR1CV8 с паролем.
  4. Дождитесь окончания установки и проверьте в services.msc, что служба «1C:Enterprise 8.3 Server Agent (x86-64)» запущена.

Если служба не создалась или её нужно поставить вручную (например, второй экземпляр на других портах), используйте ragent.exe из каталога bin нужной версии:

cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
ragent.exe -start

Здесь -port — порт агента, -regport — порт менеджера кластера, -range — диапазон портов рабочих процессов, -d — каталог служебных файлов кластера (srvinfo). Удалить службу можно командой ragent.exe -rmsrvc (предварительно ragent.exe -stop).

Учётной записи службы нужны:

  • право «Вход в качестве службы» (выдаётся автоматически при установке через мастер);
  • полные права на каталог srvinfo и на временные каталоги;
  • членство в группе «Пользователи журналов производительности» — без неё консоль не покажет часть показателей рабочих процессов.

Linux

На Linux ставят пакеты сервера из дистрибутива платформы (deb или rpm) через штатный установщик. В актуальных версиях вместе с платформой поставляется unit-файл systemd: его подключают через systemctl link, затем systemctl enable и systemctl start. Служебные файлы кластера по умолчанию лежат в домашнем каталоге пользователя usr1cv8.

Регистрация консоли администрирования

Консоль 1CV8 Servers.msc работает через библиотеку radmin.dll. Её регистрируют отдельно, от имени администратора, именно той версии, на которой работает сервер:

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

После обновления платформы регистрацию повторяют с новым путём. Если консоль при подключении пишет об ошибке версии или вообще не открывает узел сервера — первым делом перерегистрируйте radmin.dll.

3. Создание кластера серверов 1С в консоли

При установке службы через мастер локальный кластер «Локальный кластер» на порту 1541 создаётся автоматически. Если его нет или нужен новый:

  1. Откройте Администрирование серверов 1С Предприятия из меню «Пуск».
  2. Правой кнопкой по корню консоли → Создать → Центральный сервер 1С:Предприятия 8.3. Укажите имя компьютера и порт агента 1540.
  3. Раскройте сервер → узел Кластеры → правой кнопкой → Создать → Кластер. Задайте имя, имя компьютера и порт менеджера (1541).
  4. В кластере откройте Рабочие серверы и проверьте, что центральный сервер уже есть в списке. Для схемы с несколькими машинами добавьте остальные: Создать → Рабочий сервер, имя компьютера, порт агента и диапазон портов.
  5. Создайте базу: узел Информационные базы → Создать → Информационная база. Укажите имя базы в кластере, тип СУБД, сервер СУБД, имя базы данных, пользователя СУБД и пароль. Если база в СУБД ещё не существует, отметьте «Создать базу данных в случае ее отсутствия».

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

Администраторы кластера и центрального сервера

Пока администраторы не заданы, управлять кластером может любой, кто дотянется до порта 1540. Задайте двух администраторов:

  • Администратор центрального сервера — узел Администраторы под центральным сервером. Защищает создание и удаление кластеров.
  • Администратор кластера — в свойствах кластера, раздел Администраторы. Защищает базы, сеансы, настройки рабочих процессов.

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

4. Рабочие процессы и балансировка нагрузки в кластере 1С

Параметры рабочего сервера

Откройте свойства рабочего сервера (узел Рабочие серверы → двойной щелчок). Ключевые поля:

ПараметрЧто даётС чего начать
Диапазон IP-портовпорты для рабочих процессов этого сервера1560:1591, расширять при многих процессах
Количество ИБ на процесссколько баз обслуживает один rphost0 (без ограничения) для мелких баз, 1 для тяжёлой ERP
Количество соединений на процесссколько соединений принимает процесс до запуска нового128–256
Максимальный объём памяти рабочих процессовобщий потолок памяти всех rphost сервераоколо 80% свободной ОЗУ после СУБД
Безопасный расход памяти за один вызовзащита от одного «тяжёлого» отчёта, съедающего всю памятьнесколько гигабайт, по профилю нагрузки
Менеджер под каждый сервисвыносит сервисы кластера в отдельные процессы rmngrвключать на нагруженных кластерах
Центральный серверсервер хранит реестр кластера и участвует в его управленииотметить на основном и резервном

Пересчитайте лимиты памяти, если СУБД стоит на той же машине. Пример: 64 ГБ ОЗУ, MS SQL ограничен 24 ГБ, ОС оставляем 6 ГБ. На процессы 1С остаётся около 34 ГБ — эту цифру и ставят в общий потолок.

Параметры кластера

В свойствах самого кластера задают поведение при перегрузке:

  • 🔁 Интервал перезапуска — плановый перезапуск рабочих процессов, например раз в 86400 секунд (сутки). Процесс перед остановкой передаёт сеансы новому, но длинные серверные вызовы могут прерваться, поэтому интервал подбирают так, чтобы перезапуск приходился на ночь.
  • 📉 Допустимое отклонение количества ошибок сервера и Принудительно завершать проблемные процессы — кластер сам выключает процессы, которые сыплют ошибками. Включённое принудительное завершение обрывает сеансы этого процесса — пользователи увидят разрыв соединения.
  • ⚖️ Режим распределения нагрузки — «Приоритет по производительности» или «Приоритет по памяти». Первый подходит большинству, второй — когда памяти мало, а процессов много.
  • 🛡️ Уровень отказоустойчивости — сколько центральных серверов может выйти из строя без остановки кластера. Значение больше нуля имеет смысл только при двух и более центральных серверах.

Требования назначения функциональности

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

  • закрепить тяжёлую базу за мощным сервером: требование «Клиентское соединение с ИБ», имя базы, «Назначать»;
  • запретить фоновые задания на сервере для пользователей и вынести их на второй: требование «Фоновое задание», «Не назначать»;
  • держать сервис лицензирования только на одной машине, где стоит ключ.

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

5. Безопасность кластера и правила брандмауэра

Какие порты открыть

ПортПроцессКто подключается
1540ragent — агент сервераклиенты, консоль, другие серверы кластера
1541rmngr — менеджер кластераклиенты, серверы кластера
1560–1591rphost — рабочие процессы (и дополнительные менеджеры)клиенты, серверы кластера
1545ras — сервер администрированияrac, веб-консоли
1433 / 5432MS SQL / PostgreSQLтолько серверы 1С

Правило для Windows Firewall одной командой:

netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591

Порт СУБД открывайте только для IP-адресов серверов 1С, а не для всей сети. Пользователи к СУБД напрямую не ходят — все запросы идут через рабочие процессы.

Что ещё закрыть

  • 🔒 Профили безопасности (узел Профили безопасности в кластере) ограничивают, что может код конфигурации и расширений: доступ к файловой системе, COM-объектам, внешним компонентам, интернет-ресурсам. Профиль назначается базе в её свойствах. Особенно полезен, если пользователи подключают внешние обработки.
  • 🔐 Уровень безопасности соединения в свойствах кластера включает шифрование трафика между клиентом и кластером. Тонкому клиенту через интернет лучше давать доступ через веб-публикацию с HTTPS или VPN, а не открывать порты 1540–1591 наружу.
  • 🗝️ Учётная запись службы без прав локального администратора. Если служба работает от Локальная система, любой код в базе получает права системы на сервере.
  • 🚫 Доступ к консоли — пароль администратора кластера и ограничение порта 1540 по адресам администраторов на сетевом экране, если клиенты подключаются через терминальный сервер .

6. Мониторинг и диагностика кластера серверов 1С

Консоль: что смотреть каждый день

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

rac и ras из командной строки

Для скриптов и мониторинга через Zabbix или Prometheus используют сервер администрирования ras и утилиту rac. Запуск ras как службы Windows:

sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto DisplayName= "1C:Enterprise 8.3 Remote Server"

Проверенные команды rac:

rac localhost:1545 cluster list
rac localhost:1545 session list --cluster=<uuid-кластера>
rac localhost:1545 process list --cluster=<uuid-кластера>

UUID берут из вывода cluster list. Если задан администратор кластера, добавляют --cluster-user и --cluster-pwd. Полный список команд и ключей — в rac help и rac help <режим>.

Технологический журнал

Когда консоль показывает «что-то тормозит», а причина неясна, включают технологический журнал. Он настраивается файлом logcfg.xml в каталоге conf платформы (на Windows — C:\Program Files\1cv8\conf). Пример для поиска долгих запросов и ошибок:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\techlog" history="24">
    <event><eq property="name" value="EXCP"/></event>
    <event><eq property="name" value="TLOCK"/></event>
    <event>
      <eq property="name" value="DBMSSQL"/>
      <gt property="duration" value="1000000"/>
    </event>
    <event>
      <eq property="name" value="DBPOSTGRS"/>
      <gt property="duration" value="1000000"/>
    </event>
    <property name="all"/>
  </log>
</config>

history — сколько часов хранить журнал. duration в актуальных версиях 8.3 считается в микросекундах: 1000000 — это запросы дольше одной секунды. Журнал быстро растёт: выделите под него отдельный диск и отключайте, когда диагностика закончена.

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

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

7. Частые ошибки при настройке кластера 1С и как их обойти

  • ❌ Разные сборки платформы на серверах. Рабочий сервер с другой версией не войдёт в кластер. Обновляйте все серверы одновременно и сразу перерегистрируйте консоль.
  • ❌ Пересекающиеся диапазоны портов. Если на одной машине два экземпляра агента (например, 8.3.22 и 8.3.24 для тестов), второму задают свои порты: 2540, 2541, 2560:2591.
  • ❌ СУБД и 1С без лимитов памяти на одной машине. MS SQL по умолчанию занимает почти всю ОЗУ, и рабочим процессам ничего не остаётся. Лимит памяти СУБД задают явно.
  • ❌ Антивирус проверяет srvinfo и каталог данных СУБД. Это даёт задержки на каждой операции. Добавьте каталоги в исключения по согласованию со службой безопасности.
  • ❌ Резервирование без второго центрального сервера. Уровень отказоустойчивости 1 при одном центральном сервере ничего не защищает.
  • ❌ Копия базы без блокировки регламентных заданий. Обмены и выгрузки начинают идти из тестовой копии.

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

Нужна ли отдельная лицензия на каждый рабочий сервер кластера?
Лицензия на сервер нужна на каждый компьютер, где запускаются рабочие процессы кластера. Клиентские лицензии при этом общие и выдаются сервисом лицензирования.
Можно ли держать в одном кластере базы на PostgreSQL и на MS SQL?
Да. Тип СУБД задаётся для каждой информационной базы отдельно, кластеру это не мешает.
Сколько пользователей выдержит один рабочий сервер?
Зависит от конфигурации и сценариев. Ориентировочно для БП и ЗУП один сервер с 32–64 ГБ ОЗУ обслуживает 50–100 пользователей; для ERP с тяжёлыми закрытиями месяца нагрузку оценивают тестом.
Как перенести кластер на новый сервер без пересоздания баз?
Установите ту же версию платформы, остановите службу на старом сервере, скопируйте каталог srvinfo и запустите службу на новом с тем же именем компьютера. При другом имени проще заново зарегистрировать базы в кластере на новом сервере, указав прежние базы СУБД.
Чем отличается центральный сервер от рабочего?
Рабочий сервер запускает процессы и обслуживает сеансы. Центральный дополнительно хранит реестр кластера и управляет им. Центральных серверов может быть несколько — это и есть резервирование.