Сервер 1С:Предприятия с нуля: ragent, rphost, СУБД и первая база в кластере
Содержание
Чтобы установить кластер серверов
1С, на одну машину ставят компонент «Сервер 1С:Предприятия» из дистрибутива платформы и запускают его как службу. Служба поднимает агент ragent на порту 1540, менеджер кластера rmngr на 1541 и рабочие процессы rphost в диапазоне 1560–1591. Рядом ставят СУБД (MS SQL Server или PostgreSQL в сборке для 1С), открывают порты, а базу создают в консоли кластера или прямо из окна запуска 1С.
Типичная ситуация: файловая база на 15 человек начала тормозить, обмены идут по полчаса, а файл 1Cv8.1CD перевалил за десятки гигабайт. Переход в клиент-серверный вариант решает это, но только если кластер настроен правильно: порты, лимиты памяти рабочих процессов и имя сервера, которое находят клиенты.
Как устроен кластер серверов 1С и что подготовить заранее
Кластер — это группа процессов, которые обслуживают информационные базы. В минимальном варианте весь кластер живёт на одном компьютере. Разберитесь, за что отвечает каждый процесс: от этого зависят и порты, и настройки памяти.
| Процесс | Роль | Порт по умолчанию |
|---|---|---|
ragent | агент сервера: принимает первое обращение клиента и консоли | 1540 |
rmngr | менеджер кластера: сеансы, блокировки, распределение нагрузки | 1541 |
rphost | рабочий процесс: выполняет код конфигурации и запросы к СУБД | 1560–1591 |
ras | сервер администрирования для rac и сторонних консолей | 1545 |
Клиент обращается к агенту на 1540, затем к менеджеру кластера на 1541, а дальше работает с рабочими процессами в диапазоне портов, заданном в свойствах рабочего сервера. Консоль администрирования тоже идёт через агент.
Что подготовить до установки:
- 🖥️ Сервер. Ориентировочно для 20–30 пользователей с СУБД на той же машине: 6–8 ядер, 32 ГБ памяти, SSD или NVMe под базы и логи. Для 50+ пользователей СУБД лучше вынести на отдельную машину.
- 🔑 Лицензия на сервер. Серверная лицензия покупается отдельно от клиентских. Без неё пользователи при подключении получат ошибку получения лицензии сервера.
- 🗄️ СУБД. MS SQL Server или PostgreSQL. Для PostgreSQL нужна сборка, адаптированная под 1С (от фирмы 1С или Postgres Pro): обычная «ванильная» не подойдёт, в ней нет нужных расширений.
- 🌐 Имя сервера. Клиенты должны находить сервер по имени, а не только по IP. Пропишите его в DNS или в файле
hostsна клиентах. - 📦 Дистрибутив. Платформа той же версии, что стоит у пользователей. Версия клиента и сервера должна совпадать до последней цифры.
На одной машине можно держать несколько версий сервера 1С одновременно. Главное — развести их по разным портам, об этом ниже.
Установка сервера 1С на Linux
На Linux сервер 1С ставят из единого установщика setup-full-8.3.xx.xxx-x86_64.run. Для Debian и Ubuntu, для РЕД ОС и Astra Linux порядок одинаковый, отличаются только команды пакетного менеджера.
Шаг 1. Подготовка системы
- Задайте имя хоста и проверьте, что оно разрешается в IP-адрес сервера, а не в
127.0.1.1. Это частая причина того, что клиенты с других машин не подключаются. - Установите русскую локаль
ru_RU.UTF-8. Без неё возможны ошибки сортировки и проблемы при создании базы. - Поставьте шрифты Microsoft Core Fonts: они нужны для формирования печатных форм на сервере.
hostnamectl set-hostname srv1c
echo "192.168.1.10 srv1c" >> /etc/hosts
locale-gen ru_RU.UTF-8
Шаг 2. Запуск установщика
Скопируйте архив платформы на сервер, распакуйте и запустите установщик от root. Для сервера без графики удобен тихий режим:
chmod +x setup-full-8.3.xx.xxx-x86_64.run
./setup-full-8.3.xx.xxx-x86_64.run --mode unattended --enable-components server,server_admin
Компонент server — сам сервер 1С, server_admin — сервер администрирования ras и утилита rac. Платформа встаёт в /opt/1cv8/x86_64/<версия>/. Установщик создаёт пользователя usr1cv8, от его имени и работает служба.
Шаг 3. Регистрация службы в systemd
В современных версиях платформы в каталоге установки лежит шаблонный юнит systemd. Его подключают и запускают так (подставьте свою версию):
systemctl link /opt/1cv8/x86_64/8.3.xx.xxx/srv1cv8-8.3.xx.xxx@.service
systemctl enable srv1cv8-8.3.xx.xxx@
systemctl start srv1cv8-8.3.xx.xxx@default
systemctl status srv1cv8-8.3.xx.xxx@default
Рядом с ним лежит юнит для ras. Подключите его так же, если собираетесь управлять кластером через rac или консоль с Windows-машины.
Данные кластера по умолчанию хранятся в /home/usr1cv8/.1cv8/1C/1cv8/. Там каталог reg_1541 с реестром кластера и сеансовыми данными.
Если включён межсетевой экран (ufw, firewalld), откройте TCP 1540, 1541 и 1560–1591. Порт 1545 открывайте только для машин администраторов.
Установка и настройка сервера 1С на Windows Server
На Windows Server 2016 и новее запустите setup.exe из дистрибутива «Технологическая платформа 1С:Предприятия (64-bit) для Windows».
Компоненты и служба
- В списке компонентов отметьте «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия». Клиент на сервер можно не ставить, но для первой проверки он удобен.
- Включите флажок установки сервера как сервиса Windows.
- Укажите пользователя, от имени которого будет работать служба. По умолчанию установщик создаёт локального
USR1CV8. Если базы или файлы выгрузки лежат на сетевых ресурсах, лучше сразу использовать доменную учётную запись с нужными правами. - Завершите установку и проверьте в
services.msc, что служба «Агент сервера 1С:Предприятия 8.3» запущена.
Строка запуска службы выглядит так:
"C:\Program Files\1cv8\8.3.xx.xxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Здесь видно всё, что пригодится при диагностике: порты, диапазон рабочих процессов и каталог srvinfo, где лежит реестр кластера.
Консоль администрирования
Консоль кластера — оснастка MMC. Ярлык на неё появляется в меню «Пуск» после установки компонента администрирования. Если консоль пишет, что класс не зарегистрирован, зарегистрируйте библиотеку той версии, что установлена на сервере:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxx\bin\radmin.dll"
После обновления платформы это действие повторяют: консоль должна совпадать по версии с сервером.
Порты в брандмауэре
netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591
Две версии на одном сервере
Вторую версию ставят без регистрации службы, а службу создают вручную со сдвинутыми портами: -port 2540 -regport 2541 -range 2560:2591 и свой каталог -d. В строке подключения к базе такой сервер указывают с портом: srv1c:2541.
Регистрация кластера и создание информационной базы
При первом запуске агент сам создаёт кластер «Локальный кластер» на порту 1541. Отдельно регистрировать его не нужно, достаточно подключиться к серверу в консоли.
Подключение в консоли
- Откройте консоль администрирования серверов 1С.
- На узле «Central 1C:Enterprise 8.3 servers» через контекстное меню создайте новый центральный сервер.
- Укажите имя компьютера, протокол TCP и порт 1540.
- Раскройте сервер → «Кластеры» → «Локальный кластер».
Создание базы
Перед созданием базы заведите в СУБД пользователя с правом создавать базы данных. Для MS SQL это логин с ролью dbcreator или sysadmin, для PostgreSQL — роль с правом CREATEDB или суперпользователь postgres.
В консоли откройте «Информационные базы» → «Создать» → «Информационная база» и заполните:
| Поле | Что указать |
|---|---|
| Имя | короткое имя базы в кластере, латиницей, например buh_main |
| Сервер баз данных | имя сервера СУБД (для MS SQL — с именем экземпляра, если он не по умолчанию) |
| Тип СУБД | MSSQLServer или PostgreSQL |
| База данных | имя базы в СУБД, удобно такое же, как имя в кластере |
| Пользователь и пароль | учётная запись СУБД |
| Создать базу данных в случае её отсутствия | включить |
| Блокировка регламентных заданий | включить для копий, тестовых баз и баз в процессе переноса |
То же можно сделать без консоли. В окне запуска 1С нажмите «Добавить» → «Создание новой информационной базы», на шаге выбора расположения укажите «На сервере 1С:Предприятия» и заполните те же поля.
На Linux базу удобно создавать из командной строки через ras и rac:
rac cluster list
rac infobase --cluster=<uuid> create --create-database --name=buh_main \
--dbms=PostgreSQL --db-server=localhost --db-name=buh_main \
--locale=ru --db-user=postgres --db-pwd=<пароль>
UUID кластера берут из вывода rac cluster list. Если какой-то параметр не принимается, сверьтесь со справкой rac help infobase: набор ключей зависит от версии платформы.
Перенос рабочей базы: выгрузите её в .dt в Конфигураторе файловой базы (Администрирование → Выгрузить информационную базу), создайте пустую базу на сервере и загрузите туда файл. На время загрузки нужен монопольный доступ к новой базе.
Рабочие процессы rphost и лимиты памяти
Большинство жалоб на «кластер падает» и «всё виснет к обеду» связано с памятью рабочих процессов. Настройки лежат в двух местах, и их легко перепутать.
Свойства рабочего сервера
Откройте «Локальный кластер» → «Рабочие серверы» → свойства сервера. Ключевые параметры:
- ⚙️ Количество ИБ на процесс и Количество соединений на процесс. Определяют, когда кластер поднимет новый
rphost. Значение 0 — без ограничений. Для 2–3 тяжёлых баз удобно ставить 1 ИБ на процесс, чтобы одна база не влияла на другую. - 📈 Временно допустимый объём памяти процессов. Порог суммарной памяти всех
rphost. При превышении дольше заданного интервала кластер помечает процессы на перезапуск: новые соединения уходят в свежий процесс, старый завершается, когда его покинут сеансы. - 🛑 Критический объём памяти процессов. Аварийный порог: при его достижении кластер прерывает самые «прожорливые» вызовы, а не ждёт.
- 🧮 Безопасный расход памяти за один вызов. Ограничивает отдельную операцию: тяжёлый отчёт с ошибкой в запросе прервётся сам, а не съест память всего сервера.
- 🔌 Диапазон IP-портов. По умолчанию 1560:1591, его же открывают в брандмауэре.
Пример расчёта для сервера с 64 ГБ памяти, где на той же машине работает MS SQL. Под СУБД ограничиваем 32 ГБ параметром max server memory, 4 ГБ оставляем системе. Временно допустимый объём для 1С — около 24 ГБ, критический — около 28 ГБ. Итого 32 + 4 + 28 = 64 ГБ: даже на аварийном пороге память не уходит в своп.
Свойства кластера
В свойствах самого кластера задаются:
- Интервал перезапуска — плановый перезапуск рабочих процессов, например раз в сутки (86400 секунд). Помогает от медленных утечек памяти.
- Режим распределения нагрузки — приоритет по производительности или по памяти. Для одного сервера разница мала.
- Уровень отказоустойчивости — сколько серверов могут выйти из строя без остановки работы. Имеет смысл только при двух и более серверах.
Изменение параметров рабочих процессов и интервала перезапуска применяйте вне рабочего времени. При перезапуске rphost сеансы пользователей обрываются, а незаписанные данные теряются.
Второй сервер в кластере и балансировка нагрузки
Когда одного сервера мало, к кластеру добавляют второй рабочий сервер. На него ставят ту же версию платформы и запускают службу.
- В консоли на «Рабочих серверах» кластера создайте новый сервер с именем второй машины и портом 1540.
- Отметьте у него флаг центрального сервера, если он должен подстраховывать первый при отказе.
- Задайте уровень отказоустойчивости кластера равным 1.
Распределять функции по серверам помогают требования назначения функциональности в свойствах рабочего сервера. Например, регламентные задания и фоновые обмены можно закрепить за вторым сервером, чтобы пользователи на первом не ловили тормоза во время ночных выгрузок.
Балансировка не ускорит медленную СУБД. Если узкое место — диск или запросы к базе, второй сервер 1С не поможет: сначала смотрите на загрузку СУБД.
Диагностика и мониторинг кластера серверов 1С
Первое, что проверяют при любой проблеме: служба запущена, порты слушаются, имя сервера разрешается с клиента.
netstat -ano | findstr 154
ping srv1c
На Linux вместо netstat используйте ss -tlnp | grep 154 и systemctl status.
Что смотреть в консоли
- 👥 Сеансы — кто подключён, сколько вызовов и памяти расходует каждый сеанс. Здесь видно, кто «повесил» сервер.
- 🔒 Блокировки — какие объекты заблокированы и каким сеансом.
- ⚙️ Рабочие процессы — память, число соединений, средняя длительность вызова. Растущая память одного
rphostбез падения — признак утечки или тяжёлой операции.
Для массовой проверки удобен rac: rac session list --cluster=<uuid> выводит сеансы, а с ключом --licenses — выданные им лицензии.
Технологический журнал
Для разбора падений и медленных операций включают технологический журнал. Его настраивают файлом logcfg.xml в каталоге conf платформы: на Windows — C:\Program Files\1cv8\conf\, на Linux — /opt/1cv8/conf/. В нём указывают папку для логов, события (например, EXCP для исключений) и срок хранения.
Не включайте сбор всех событий без фильтра на рабочем сервере: журнал за час займёт десятки гигабайт и сам станет причиной тормозов.
Очистка сеансовых данных
Если после аварии кластер ведёт себя странно, остановите службу, удалите в каталоге reg_1541 папки snccntx* и запустите службу снова. Делайте это только в нерабочее время: остановка службы обрывает все сеансы. Файлы реестра кластера 1CV8Clst.lst и 1CV8Reg.lst не трогайте: в них список баз и настроек кластера.
Частые вопросы
Можно ли поставить сервер 1С и СУБД на одну машину?
Нужна ли отдельная лицензия на сервер 1С?
Что выбрать: MS SQL или PostgreSQL?
Как обновить платформу на сервере кластера?
radmin.dll для консоли.