Как развернуть кластер 1С:Предприятия 8.3 и не уронить его под нагрузкой
Содержание
Кластер серверов
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
- Запустите установщик платформы (полный дистрибутив,
setup.exe). - В списке компонентов отметьте «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия».
- На шаге установки службы выберите «Установить сервер
1С:Предприятия 8 как сервис Windows
» и укажите пользователя
USR1CV8с паролем. - Дождитесь окончания установки и проверьте в
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С:Предприятия 8.3. Укажите имя компьютера и порт агента 1540.
- Раскройте сервер → узел Кластеры → правой кнопкой → Создать → Кластер. Задайте имя, имя компьютера и порт менеджера (1541).
- В кластере откройте Рабочие серверы и проверьте, что центральный сервер уже есть в списке. Для схемы с несколькими машинами добавьте остальные: Создать → Рабочий сервер, имя компьютера, порт агента и диапазон портов.
- Создайте базу: узел Информационные базы → Создать → Информационная база. Укажите имя базы в кластере, тип СУБД, сервер СУБД, имя базы данных, пользователя СУБД и пароль. Если база в СУБД ещё не существует, отметьте «Создать базу данных в случае ее отсутствия».
Флажок «Установить блокировку регламентных заданий» при создании базы-копии ставьте сразу. Иначе копия начнёт выгружать данные в банк, обмениваться с сайтом и слать письма от имени рабочей базы.
Администраторы кластера и центрального сервера
Пока администраторы не заданы, управлять кластером может любой, кто дотянется до порта 1540. Задайте двух администраторов:
- Администратор центрального сервера — узел Администраторы под центральным сервером. Защищает создание и удаление кластеров.
- Администратор кластера — в свойствах кластера, раздел Администраторы. Защищает базы, сеансы, настройки рабочих процессов.
Пароль администратора кластера запишите в хранилище паролей сразу. Сбросить его штатно нельзя: при утере останавливают службу и восстанавливают служебные файлы кластера из резервной копии каталога srvinfo, либо обращаются к тому, кто администрирует сервер.
4. Рабочие процессы и балансировка нагрузки в кластере 1С
Параметры рабочего сервера
Откройте свойства рабочего сервера (узел Рабочие серверы → двойной щелчок). Ключевые поля:
| Параметр | Что даёт | С чего начать |
|---|---|---|
| Диапазон IP-портов | порты для рабочих процессов этого сервера | 1560:1591, расширять при многих процессах |
| Количество ИБ на процесс | сколько баз обслуживает один rphost | 0 (без ограничения) для мелких баз, 1 для тяжёлой ERP |
| Количество соединений на процесс | сколько соединений принимает процесс до запуска нового | 128–256 |
| Максимальный объём памяти рабочих процессов | общий потолок памяти всех rphost сервера | около 80% свободной ОЗУ после СУБД |
| Безопасный расход памяти за один вызов | защита от одного «тяжёлого» отчёта, съедающего всю память | несколько гигабайт, по профилю нагрузки |
| Менеджер под каждый сервис | выносит сервисы кластера в отдельные процессы rmngr | включать на нагруженных кластерах |
| Центральный сервер | сервер хранит реестр кластера и участвует в его управлении | отметить на основном и резервном |
Пересчитайте лимиты памяти, если СУБД стоит на той же машине. Пример: 64 ГБ ОЗУ, MS SQL ограничен 24 ГБ, ОС оставляем 6 ГБ. На процессы 1С остаётся около 34 ГБ — эту цифру и ставят в общий потолок.
Параметры кластера
В свойствах самого кластера задают поведение при перегрузке:
- 🔁 Интервал перезапуска — плановый перезапуск рабочих процессов, например раз в 86400 секунд (сутки). Процесс перед остановкой передаёт сеансы новому, но длинные серверные вызовы могут прерваться, поэтому интервал подбирают так, чтобы перезапуск приходился на ночь.
- 📉 Допустимое отклонение количества ошибок сервера и Принудительно завершать проблемные процессы — кластер сам выключает процессы, которые сыплют ошибками. Включённое принудительное завершение обрывает сеансы этого процесса — пользователи увидят разрыв соединения.
- ⚖️ Режим распределения нагрузки — «Приоритет по производительности» или «Приоритет по памяти». Первый подходит большинству, второй — когда памяти мало, а процессов много.
- 🛡️ Уровень отказоустойчивости — сколько центральных серверов может выйти из строя без остановки кластера. Значение больше нуля имеет смысл только при двух и более центральных серверах.
Требования назначения функциональности
Узел Требования назначения функциональности у каждого рабочего сервера определяет, какие сервисы и какие базы на нём работают. Типичные приёмы:
- закрепить тяжёлую базу за мощным сервером: требование «Клиентское соединение с ИБ», имя базы, «Назначать»;
- запретить фоновые задания на сервере для пользователей и вынести их на второй: требование «Фоновое задание», «Не назначать»;
- держать сервис лицензирования только на одной машине, где стоит ключ.
После изменения требований нажмите «Применить требования (полностью)» в контекстном меню. Полное применение переносит соединения между процессами и может оборвать часть сеансов — делайте это вне рабочего времени.
5. Безопасность кластера и правила брандмауэра
Какие порты открыть
| Порт | Процесс | Кто подключается |
|---|---|---|
| 1540 | ragent — агент сервера | клиенты, консоль, другие серверы кластера |
| 1541 | rmngr — менеджер кластера | клиенты, серверы кластера |
| 1560–1591 | rphost — рабочие процессы (и дополнительные менеджеры) | клиенты, серверы кластера |
| 1545 | ras — сервер администрирования | rac, веб-консоли |
| 1433 / 5432 | MS 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 — это запросы дольше одной секунды. Журнал быстро растёт: выделите под него отдельный диск и отключайте, когда диагностика закончена.
radmin.dll зарегистрирована той же версии, что и сервер.snccntx* в каталоге кластера srvinfo\reg_1541.Очистка сеансового кэша требует остановки службы агента. Все пользователи всех баз кластера будут отключены, незаписанные данные потеряются. Предупредите людей и делайте это вечером, предварительно скопировав каталог srvinfo.
7. Частые ошибки при настройке кластера 1С и как их обойти
- ❌ Разные сборки платформы на серверах. Рабочий сервер с другой версией не войдёт в кластер. Обновляйте все серверы одновременно и сразу перерегистрируйте консоль.
- ❌ Пересекающиеся диапазоны портов. Если на одной машине два экземпляра агента (например, 8.3.22 и 8.3.24 для тестов), второму задают свои порты: 2540, 2541, 2560:2591.
- ❌ СУБД и 1С без лимитов памяти на одной машине. MS SQL по умолчанию занимает почти всю ОЗУ, и рабочим процессам ничего не остаётся. Лимит памяти СУБД задают явно.
- ❌ Антивирус проверяет
srvinfoи каталог данных СУБД. Это даёт задержки на каждой операции. Добавьте каталоги в исключения по согласованию со службой безопасности. - ❌ Резервирование без второго центрального сервера. Уровень отказоустойчивости 1 при одном центральном сервере ничего не защищает.
- ❌ Копия базы без блокировки регламентных заданий. Обмены и выгрузки начинают идти из тестовой копии.
8. Частые вопросы
Нужна ли отдельная лицензия на каждый рабочий сервер кластера?
Можно ли держать в одном кластере базы на PostgreSQL и на MS SQL?
Сколько пользователей выдержит один рабочий сервер?
Как перенести кластер на новый сервер без пересоздания баз?
srvinfo и запустите службу на новом с тем же именем компьютера. При другом имени проще заново зарегистрировать базы в кластере на новом сервере, указав прежние базы СУБД.