Центральный сервер кластера 1С 8.3 с нуля: Windows и Linux
Содержание
Центральный сервер 1С создаётся установкой компонента «Сервер 1С:Предприятия» как службы: при первом запуске агент ragent сам поднимает кластер на порту 1541 и становится центральным сервером. Дальше в консоли администрирования вы регистрируете базы, назначаете администраторов, подключаете лицензию и при необходимости добавляете рабочие серверы.
Проблемы обычно начинаются не на установке, а потом: клиенты не видят сервер по имени, консоль не открывается, лицензия «не находится», а реестр кластера никто не сохранял. Все эти места проще закрыть сразу, при первичной настройке, — порядок для Windows и Linux одинаковый.
Что подготовить до установки сервера 1С
Центральный сервер — это машина, на которой хранится реестр кластера: список рабочих серверов, информационных баз, администраторов и настроек. Если у вас один сервер, он же и центральный, и рабочий.
Что нужно заранее:
- 🖥️ ОС. Windows Server 2016 и новее или поддерживаемый 64-битный Linux (Ubuntu, Debian, РЕД ОС, Astra и др. — список смотрите в системных требованиях своей версии платформы).
- 🧠 Память. Для 10–20 пользователей БП или ЗУП ориентир — от 16 ГБ на сервер 1С; если СУБД на той же машине, закладывайте ещё столько же.
- 🗄️ СУБД. MS SQL Server или PostgreSQL в сборке для 1С (Postgres Pro или сборка с патчами 1С). Файловые базы кластер не обслуживает.
- 🏷️ Постоянное имя машины. Сервер регистрируется в кластере по имени хоста. Переименовали машину после установки — кластер перестанет её узнавать.
- 🌐 Разрешение имени. Каждый клиент должен находить сервер по имени, а не только по IP. Без DNS — запись в
hostsна клиентах. - 🔓 Порты. Откройте во входящих правилах брандмауэра нужные порты (таблица ниже).
| Порт | Кто слушает | Зачем |
|---|---|---|
| 1540 | Агент сервера (ragent) | Точка входа: клиенты и консоль обращаются сюда |
| 1541 | Менеджер кластера (rmngr) | Управление кластером, реестр |
| 1560–1591 | Рабочие процессы (rphost) | Выполнение запросов пользователей |
| 1545 | Сервер администрирования (ras) | Только если нужна утилита rac или удалённое управление |
Диапазон 1560–1591 — значение по умолчанию. Его задают в свойствах рабочего сервера, и если вы его меняете, меняйте и правила брандмауэра.
Запись в hosts выглядит так: 192.168.1.10 srv1c. На Windows файл лежит в C:\Windows\System32\drivers\etc\hosts, на Linux — /etc/hosts. Добавьте её и на самом сервере, если у него несколько сетевых интерфейсов.
Установка сервера 1С:Предприятие на Windows и Linux
Для сервера нужен полный дистрибутив технологической платформы, а не тонкий клиент. Версия платформы на сервере и на клиентах должна совпадать до последней цифры сборки — иначе клиент не подключится.
Windows
- Запустите
setup.exeиз полного дистрибутива 64-битной платформы. - В списке компонентов включите «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия». Если на этой же машине будет веб-публикация — ещё «Модули расширения веб-сервера».
- На шаге параметров сервера отметьте «Установить сервер 1С:Предприятия как сервис Windows».
- Укажите пользователя, от имени которого будет работать служба. По умолчанию установщик создаёт локального
USR1CV8— для одной машины это нормально. В домене лучше заранее создать отдельную учётную запись. - Завершите установку и проверьте в
services.msc, что служба «Агент сервера 1С:Предприятия 8.3 (x86-64)» запущена.
Строка запуска службы показывает все ключевые параметры. Её видно в свойствах службы:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Здесь -port — порт агента, -regport — порт кластера, -range — диапазон рабочих процессов, -d — каталог реестра кластера srvinfo. Ключ -debug включает отладку на сервере; на рабочем сервере без разработчиков его можно убрать.
Linux
Начиная с платформы 8.3.20 есть единый установщик setup-full-8.3.xx.xxxx-x86_64.run. Запустите его от root и выберите компоненты сервера:
chmod +x setup-full-8.3.xx.xxxx-x86_64.run
sudo ./setup-full-8.3.xx.xxxx-x86_64.run
Платформа ставится в /opt/1cv8/x86_64/8.3.xx.xxxx/, служба работает от пользователя usr1cv8. В новых версиях файл юнита systemd лежит в каталоге платформы, его подключают и включают:
sudo systemctl link /opt/1cv8/x86_64/8.3.xx.xxxx/srv1cv8-8.3.xx.xxxx@.service
sudo systemctl enable --now srv1cv8-8.3.xx.xxxx@default
systemctl status srv1cv8-8.3.xx.xxxx@default
Реестр кластера на Linux по умолчанию находится в домашнем каталоге usr1cv8, в ~/.1cv8/1C/1cv8/.
Не запускайте ragent вручную от root «для проверки». Он создаст реестр с владельцем root, и потом служба от usr1cv8 не сможет его прочитать.
Первый кластер на центральном сервере
Как только служба агента стартовала, она создаёт «Локальный кластер» с портом 1541 и регистрирует в нём текущую машину как центральный рабочий сервер. Создавать кластер вручную не нужно.
Подключение консоли администрирования
- На Windows откройте «Администрирование серверов 1С Предприятия» из меню «Пуск».
- Если оснастка пишет об ошибке создания объекта или пустая, перерегистрируйте библиотеку консоли от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
- В дереве консоли: правой кнопкой по «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3».
- Укажите имя хоста (
srv1c), протокол TCP и порт1540. - Раскройте сервер → «Кластеры» — там уже есть «Локальный кластер».
Консоль radmin.dll должна быть той же версии, что и сервер. После обновления платформы перерегистрируйте её из каталога новой версии.
На Linux графической консоли нет. Запустите сервер администрирования и работайте через rac, либо подключитесь к серверу консолью с Windows-машины:
/opt/1cv8/x86_64/8.3.xx.xxxx/ras cluster --daemon
/opt/1cv8/x86_64/8.3.xx.xxxx/rac cluster list
Команда rac cluster list выведет идентификатор кластера (cluster), он нужен для остальных команд. Полный список подкоманд — в rac help.
Создание информационной базы в кластере
- В консоли: кластер → «Информационные базы» → «Создать» → «Информационная база».
- Заполните имя базы в кластере, тип СУБД, адрес сервера СУБД, имя базы данных, логин и пароль СУБД.
- Отметьте «Создать базу данных в случае её отсутствия».
- Отметьте «Разрешить выдачу лицензий сервером 1С:Предприятия», если клиентские лицензии будут выдаваться с сервера.
- Нажмите «ОК», затем добавьте базу в список у пользователя: «Добавить» → «На сервере 1С:Предприятия», кластер
srv1c, имя базы как в кластере.
Рабочие серверы и защита кластера
Как добавить ещё один рабочий сервер
Второй сервер нужен для распределения нагрузки или резервирования. На него ставится та же версия платформы и служба агента так же, как в предыдущем разделе.
Затем на центральном сервере в консоли:
- Кластер → «Рабочие серверы» → «Создать» → «Рабочий сервер».
- Укажите имя хоста нового сервера, порт
1540и диапазон портов1560:1591. - Флаг «Центральный сервер» ставьте, если этот сервер должен хранить копию реестра кластера и подменять основной при отказе. Для простого распределения нагрузки флаг не нужен.
В свойствах рабочего сервера задаются параметры отказоустойчивости, лимиты памяти и количество баз и соединений на процесс. Там же — «Требования назначения функциональности»: правила, какие базы и сервисы на каком сервере выполнять.
На новом рабочем сервере не нужно вручную создавать кластер. Если его служба уже успела создать свой «Локальный кластер», это не мешает: в общий кластер его включает именно регистрация на центральном сервере.
Администраторы и права
Пока администраторы не заданы, любой, кто дотянется до порта 1540, может управлять кластером и удалять базы. Закройте это сразу.
- Администратор агента: сервер → «Администраторы» → «Создать». Укажите имя и пароль либо отметьте аутентификацию ОС с пользователем вида
DOMAIN\admin1c. - Администратор кластера: кластер → «Администраторы» → «Создать».
- Сразу после этого консоль запросит логин и пароль при подключении — запишите их в менеджер паролей.
Потерянный пароль администратора кластера не восстанавливается через консоль. Его возвращают, остановив службу и подложив файл реестра из резервной копии. Поэтому копия реестра (последний раздел) нужна с первого дня.
Что ещё стоит сделать для безопасности:
- 👤 служба работает не от
LocalSystemи не от доменного администратора, а от отдельной учётной записи; - 📁 у этой учётной записи есть права на каталог
srvinfoи каталог временных файлов, но нет лишних прав на остальной диск; - 🧱 порты 1540–1591 открыты только для подсети пользователей, а не для интернета;
- 🔒 для баз с внешними обработками и расширениями сторонних разработчиков — профили безопасности в свойствах кластера, которые ограничивают доступ кода к диску, сети и COM.
Лицензия для центрального сервера 1С
Сервер 1С 8.3 не запускает рабочие процессы с базами без лицензии на сервер. Учебная версия — исключение, но кластер на ней не строят.
| Вариант | Где хранится | Когда выбирать |
|---|---|---|
| Программная лицензия | Файл .lic: Windows — C:\ProgramData\1C\licenses, Linux — /var/1C/licenses | Обычный случай, нет USB-портов в виртуализации |
| Аппаратный ключ HASP | USB-ключ + драйвер HASP License Manager | Ключ уже куплен, сервер физический |
Как активировать программную лицензию на сервер
- Установите на сервер клиентскую часть платформы (или используйте клиент на любой машине, подключённый к серверной базе).
- Запустите любую базу кластера в режиме 1С:Предприятие. При отсутствии лицензии появится окно получения лицензии.
- Выберите получение на компьютер, где работает сервер 1С:Предприятия, введите регистрационный номер и пинкод из комплекта, данные организации.
- После активации файл
.licпоявится в каталоге лицензий сервера.
На Linux без графики лицензию активируют утилитой ring с модулем лицензирования. Синтаксис зависит от версии утилиты: смотрите ring license help до ввода пинкода, чтобы не потратить его на ошибку.
Каждая активация расходует пинкод. Перед заменой процессора, материнской платы, сетевой карты или переносом виртуальной машины сохраните копию файла лицензии и запишите, какой пинкод использован.
Клиентские лицензии
Клиентские лицензии можно держать на сервере, чтобы пользователям ничего не активировать на своих ПК. Для этого у базы должен стоять флаг «Разрешить выдачу лицензий сервером 1С:Предприятия», а сами клиентские лицензии — активированы на сервер. Кто сколько лицензий занял, видно командой:
rac session list --licenses --cluster=<id_кластера>
Настройка производительности кластера и наблюдение
Значения по умолчанию рассчитаны на небольшой офис. Когда пользователей больше 30–50 или базы тяжёлые, смотрите на три вещи: память процессов, распределение баз и журнал событий сервера.
Ключевые параметры
| Параметр | Что делает | Ориентир |
|---|---|---|
| Режим распределения нагрузки | Приоритет производительности или приоритет памяти | Производительность, если памяти хватает |
| Количество ИБ на процесс | Сколько баз обслуживает один rphost | По умолчанию 8; 1 для тяжёлой ERP или УТ |
| Количество соединений на процесс | Сколько сеансов на один rphost | По умолчанию; уменьшайте, если процесс разрастается до гигабайтов |
| Временно допустимый объём памяти процессов | Порог, после которого процесс уходит на перезапуск | Около 70–80% свободной ОЗУ сервера |
| Безопасный расход памяти за один вызов | Обрывает один «прожорливый» вызов, а не весь процесс | Включите, если отчёты съедают всю память |
Порядок изменения: меняйте один параметр за раз и смотрите неделю. Если поменять три сразу, причину эффекта не найдёте.
Ручное завершение рабочего процесса rphost из консоли обрывает все сеансы пользователей на этом процессе без сохранения данных. Делайте это вне рабочего времени или после предупреждения пользователей.
Чем наблюдать за сервером
- 📊 Консоль администрирования: нагрузка процессов, число сеансов и соединений, занятая память у каждого
rphost. - 📝 Технологический журнал: включается файлом
logcfg.xmlв каталогеconfплатформы. Начните с событийEXCP(исключения) иTLOCK/TDEADLOCK(блокировки), чтобы не забить диск. - 🗃️ Счётчики ОС и СУБД: загрузка процессора, ожидания диска, рост базы
tempdbили каталога WAL у PostgreSQL. - 🧹 Каталог сеансовых данных в
srvinfoсо временем раздувается. Его чистка — тоже на остановленной службе.
Резервное копирование и восстановление кластера
Терять можно две разные вещи: данные баз и реестр кластера. Их сохраняют по-разному.
Данные информационных баз
- 🗄️ Основной способ — средства СУБД: план обслуживания в MS SQL или
pg_dump/pg_basebackupв PostgreSQL. Это быстро и не требует выгонять пользователей. - 📦 Выгрузка
.dtиз Конфигуратора — для переноса и разовых копий, а не для ежедневного бэкапа: на время выгрузки нужен монопольный доступ к базе.
Пример ежедневного дампа PostgreSQL:
pg_dump -U postgres -Fc -f /backup/buh_$(date +%F).dump buh
Реестр кластера
Реестр — файл 1CV8Clst.lst в каталоге srvinfo\reg_1541\. В нём список баз, рабочих серверов, администраторов и всех настроек кластера. Рядом лежит 1CV8Reg.lst с данными агента.
- Раз в неделю и перед каждым изменением кластера копируйте весь каталог
srvinfo\reg_1541в другое место. - Каталоги баз внутри
reg_1541(папки с GUID) содержат кэш и сеансовые данные, их тоже можно сохранять — пригодятся при полном переносе.
Как восстановить центральный сервер после сбоя
- Поставьте ту же версию платформы на новую машину с тем же именем хоста.
- Остановите службу агента сервера 1С.
- Положите сохранённые
1CV8Clst.lstи1CV8Reg.lstвsrvinfo\reg_1541\. - Запустите службу и откройте консоль: базы и администраторы вернутся.
- Восстановите лицензию: перенесите файл
.lic(если оборудование то же) или активируйте заново.
Остановка службы агента отключает всех пользователей кластера. На работающем сервере копируйте реестр без остановки, а замену файлов делайте только в окно обслуживания.
Если в кластере было два сервера с флагом «Центральный сервер», реестр реплицируется между ними. При отказе основного кластер продолжит работу на втором, а файл всё равно стоит иметь на диске: репликация не спасёт от ошибочно удалённой базы.
Частые вопросы
Можно ли держать два кластера на одном центральном сервере?
Нужно ли ставить сервер 1С и СУБД на разные машины?
Что делать, если клиент пишет, что сервер не обнаружен?
Как обновить платформу на центральном сервере?
srvinfo и обновите платформу на всех клиентах. Делайте это вне рабочего времени.