Центральный сервер кластера 1С 8.3 с нуля: Windows и Linux

· 11 мин

Содержание

Центральный сервер 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С
Выполнено: 0 / 6

Установка сервера 1С:Предприятие на Windows и Linux

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

Windows

  1. Запустите setup.exe из полного дистрибутива 64-битной платформы.
  2. В списке компонентов включите «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия». Если на этой же машине будет веб-публикация — ещё «Модули расширения веб-сервера».
  3. На шаге параметров сервера отметьте «Установить сервер 1С:Предприятия как сервис Windows».
  4. Укажите пользователя, от имени которого будет работать служба. По умолчанию установщик создаёт локального USR1CV8 — для одной машины это нормально. В домене лучше заранее создать отдельную учётную запись.
  5. Завершите установку и проверьте в 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 и регистрирует в нём текущую машину как центральный рабочий сервер. Создавать кластер вручную не нужно.

Подключение консоли администрирования

  1. На Windows откройте «Администрирование серверов 1С Предприятия» из меню «Пуск».
  2. Если оснастка пишет об ошибке создания объекта или пустая, перерегистрируйте библиотеку консоли от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
  1. В дереве консоли: правой кнопкой по «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3».
  2. Укажите имя хоста (srv1c), протокол TCP и порт 1540.
  3. Раскройте сервер → «Кластеры» — там уже есть «Локальный кластер».

Консоль 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. В консоли: кластер → «Информационные базы» → «Создать» → «Информационная база».
  2. Заполните имя базы в кластере, тип СУБД, адрес сервера СУБД, имя базы данных, логин и пароль СУБД.
  3. Отметьте «Создать базу данных в случае её отсутствия».
  4. Отметьте «Разрешить выдачу лицензий сервером 1С:Предприятия», если клиентские лицензии будут выдаваться с сервера.
  5. Нажмите «ОК», затем добавьте базу в список у пользователя: «Добавить» → «На сервере 1С:Предприятия», кластер srv1c, имя базы как в кластере.

Рабочие серверы и защита кластера

Как добавить ещё один рабочий сервер

Второй сервер нужен для распределения нагрузки или резервирования. На него ставится та же версия платформы и служба агента так же, как в предыдущем разделе.

Затем на центральном сервере в консоли:

  1. Кластер → «Рабочие серверы» → «Создать» → «Рабочий сервер».
  2. Укажите имя хоста нового сервера, порт 1540 и диапазон портов 1560:1591.
  3. Флаг «Центральный сервер» ставьте, если этот сервер должен хранить копию реестра кластера и подменять основной при отказе. Для простого распределения нагрузки флаг не нужен.

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

На новом рабочем сервере не нужно вручную создавать кластер. Если его служба уже успела создать свой «Локальный кластер», это не мешает: в общий кластер его включает именно регистрация на центральном сервере.

Администраторы и права

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

  1. Администратор агента: сервер → «Администраторы» → «Создать». Укажите имя и пароль либо отметьте аутентификацию ОС с пользователем вида DOMAIN\admin1c.
  2. Администратор кластера: кластер → «Администраторы» → «Создать».
  3. Сразу после этого консоль запросит логин и пароль при подключении — запишите их в менеджер паролей.

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

Что ещё стоит сделать для безопасности:

  • 👤 служба работает не от LocalSystem и не от доменного администратора, а от отдельной учётной записи;
  • 📁 у этой учётной записи есть права на каталог srvinfo и каталог временных файлов, но нет лишних прав на остальной диск;
  • 🧱 порты 1540–1591 открыты только для подсети пользователей, а не для интернета;
  • 🔒 для баз с внешними обработками и расширениями сторонних разработчиков — профили безопасности в свойствах кластера, которые ограничивают доступ кода к диску, сети и COM.

Лицензия для центрального сервера 1С

Сервер 1С 8.3 не запускает рабочие процессы с базами без лицензии на сервер. Учебная версия — исключение, но кластер на ней не строят.

ВариантГде хранитсяКогда выбирать
Программная лицензияФайл .lic: Windows — C:\ProgramData\1C\licenses, Linux — /var/1C/licensesОбычный случай, нет USB-портов в виртуализации
Аппаратный ключ HASPUSB-ключ + драйвер HASP License ManagerКлюч уже куплен, сервер физический

Как активировать программную лицензию на сервер

  1. Установите на сервер клиентскую часть платформы (или используйте клиент на любой машине, подключённый к серверной базе).
  2. Запустите любую базу кластера в режиме 1С:Предприятие. При отсутствии лицензии появится окно получения лицензии.
  3. Выберите получение на компьютер, где работает сервер 1С:Предприятия, введите регистрационный номер и пинкод из комплекта, данные организации.
  4. После активации файл .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 с данными агента.

  1. Раз в неделю и перед каждым изменением кластера копируйте весь каталог srvinfo\reg_1541 в другое место.
  2. Каталоги баз внутри reg_1541 (папки с GUID) содержат кэш и сеансовые данные, их тоже можно сохранять — пригодятся при полном переносе.

Как восстановить центральный сервер после сбоя

  1. Поставьте ту же версию платформы на новую машину с тем же именем хоста.
  2. Остановите службу агента сервера 1С.
  3. Положите сохранённые 1CV8Clst.lst и 1CV8Reg.lst в srvinfo\reg_1541\.
  4. Запустите службу и откройте консоль: базы и администраторы вернутся.
  5. Восстановите лицензию: перенесите файл .lic (если оборудование то же) или активируйте заново.

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

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

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

Можно ли держать два кластера на одном центральном сервере?
Да. В консоли создаётся второй кластер со своим портом, например 1641, и своим диапазоном рабочих процессов. Так разделяют рабочие и тестовые базы.
Нужно ли ставить сервер 1С и СУБД на разные машины?
До 20–30 пользователей обычно хватает одной машины с достаточной памятью. Дальше СУБД выносят отдельно, чтобы 1С и СУБД не конкурировали за ОЗУ и диск.
Что делать, если клиент пишет, что сервер не обнаружен?
Проверьте по порядку: разрешается ли имя сервера с клиента, открыт ли порт 1540, совпадает ли версия платформы клиента и сервера до номера сборки.
Как обновить платформу на центральном сервере?
Установите новую версию рядом, остановите службу старой, запустите службу новой с тем же каталогом srvinfo и обновите платформу на всех клиентах. Делайте это вне рабочего времени.
Где посмотреть, какая машина в кластере центральная?
В консоли: кластер → «Рабочие серверы», откройте свойства сервера и посмотрите флаг «Центральный сервер».