Агент сервера 1С:Предприятия 8.3: служба ragent, первый кластер и открытые порты

· 9 мин

Содержание

Агент сервера 1С:Предприятия 8.3 — это служба ragent, которая ставится из полного дистрибутива платформы вместе с компонентом «Сервер 1С:Предприятия». На Windows её создаёт сам установщик (флажок «Установить как сервис Windows »), на Linux — пакет сервера плюс unit-файл systemd. После первого запуска агент слушает порт 1540, поднимает менеджер кластера на 1541 и рабочие процессы в диапазоне 1560–1591.

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

Что проверить перед установкой агента сервера

Сервер 1С капризен не к железу, а к окружению. Пять вещей стоит решить до запуска инсталлятора.

  • 🖥 Разрядность и ОС. Ставьте 64-битный сервер. Для Windows — Windows Server 2016 и новее, для Linux — дистрибутив из списка поддерживаемых для вашей версии платформы (Ubuntu, Debian, Astra, РЕД ОС, Альт и др.).
  • 🔢 Версия платформы. Номер версии сервера и клиентов должен совпадать полностью, вплоть до сборки: клиент 8.3.24.1467 к серверу 8.3.24.1342 не подключится.
  • 🌐 Имя хоста. Кластер запоминает сервер по имени, и это имя потом получают клиенты. Имя должно резолвиться с каждого рабочего места в реальный IP — через DNS или файл hosts.
  • 🔐 Лицензия. Без серверной лицензии клиенты не смогут работать с базами на этом сервере. Решите заранее: программная лицензия (активируется на самом сервере) или аппаратный ключ HASP.
  • 🧱 Порты. 1540 (агент), 1541 (менеджер кластера), 1560–1591 (рабочие процессы). Если планируете утилиту rac — ещё 1545 для ras.

Про ресурсы: агент сам по себе лёгкий, нагрузку дают рабочие процессы rphost. Для 10–20 пользователей бухгалтерии ориентировочно хватает 4 ядер и 16 ГБ памяти на сервер 1С, если СУБД стоит на отдельной машине. При СУБД на той же машине памяти нужно заметно больше.

Как установить агент сервера 1С на Windows

Установка из дистрибутива

  1. Скачайте полный дистрибутив «Технологическая платформа 1С:Предприятия (64-bit) для Windows» нужной версии.
  2. Запустите setup.exe и в списке компонентов включите «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия». Клиент на сервере можно не ставить.
  3. На шаге «Установить сервер 1С:Предприятия как сервис Windows» оставьте флажок включённым.
  4. Выберите учётную запись: создать пользователя USR1CV8 или указать существующую. Задайте пароль и сохраните его — он понадобится при переустановке службы.
  5. Завершите установку. Защитный драйвер HASP ставьте только если используете аппаратный ключ.

После установки в оснастке services.msc появится служба «Агент сервера 1С:Предприятия 8.3 (x86-64)» в состоянии «Выполняется», а в C:\Program Files\1cv8\srvinfo — каталог реестра кластера.

Как выглядит строка запуска службы

Откройте свойства службы — в поле «Исполняемый файл» будет примерно такая команда:

"C:\Program Files\1cv8\8.3.24.1467\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Ключ -debug включает отладку на сервере. В рабочем контуре его часто убирают, на тестовом оставляют.

Ручная регистрация службы

Если служба не создалась или её нужно пересоздать с другими параметрами, зарегистрируйте её командой ragent из командной строки администратора:

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

-rmsrvc удаляет старую службу, -instsrvc создаёт новую, -start запускает её.

Удаление и остановка службы агента обрывает все сеансы пользователей на этом сервере. Делайте это вне рабочего времени и после предупреждения пользователей.

У учётной записи службы должно быть право «Вход в качестве службы» и полный доступ к каталогу srvinfo. Если используете не USR1CV8, а доменную учётку, выдайте эти права вручную.

Установка агента сервера 1С на Linux

Пакет сервера (платформа 8.3.20 и новее)

С версии 8.3.20 для Linux выпускается единый установщик setup-full-<версия>-x86_64.run. Сервер ставится в тихом режиме:

chmod +x setup-full-8.3.24.1467-x86_64.run
sudo ./setup-full-8.3.24.1467-x86_64.run --mode unattended --enable-components server,server_admin

Файлы окажутся в /opt/1cv8/x86_64/8.3.24.1467/. Установщик создаёт системного пользователя usr1cv8, от имени которого работает агент.

До установки поставьте шрифты: пакет fontconfig и шрифты Microsoft (в Ubuntu и Debian — ttf-mscorefonts-installer). Без них печатные формы на сервере формируются с другой метрикой шрифтов и «разъезжаются».

Запуск агента как службы systemd

В каталоге версии лежит шаблон unit-файла. Подключите его и запустите экземпляр default:

sudo systemctl link /opt/1cv8/x86_64/8.3.24.1467/srv1cv8-8.3.24.1467@.service
sudo systemctl enable srv1cv8-8.3.24.1467@default
sudo systemctl start srv1cv8-8.3.24.1467@default
sudo systemctl status srv1cv8-8.3.24.1467@default

Порты, диапазон рабочих процессов и каталог данных заданы в unit-файле переменными окружения. Посмотреть их — systemctl cat srv1cv8-8.3.24.1467@default. Менять — через systemctl edit с переопределением нужных строк, а не правкой исходного файла: при обновлении платформы он будет заменён.

Каталог реестра кластера по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8.

Старые версии до 8.3.20

В них сервер ставился deb- или rpm-пакетами 1c-enterprise83-common и 1c-enterprise83-server, а служба запускалась скриптом /etc/init.d/srv1cv83. Параметры (порты, каталог, отладка) задавались в файле /etc/sysconfig/srv1cv83. Если наследуете такой сервер — правьте этот файл и перезапускайте службу скриптом.

Имя хоста — главный подводный камень Linux

Многие дистрибутивы прописывают имя машины в /etc/hosts на адрес 127.0.1.1. Агент запускается, но клиенты получают от кластера имя, которое сервер считает локальным, и подключение рвётся. Проверьте:

hostname
getent hosts $(hostname)

Вторая команда должна вернуть реальный адрес сервера в сети, а не 127.0.1.1.

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

Агент работает, но пока его никто не видит. Следующий шаг — подключить его в «Администрирование серверов 1С:Предприятия» (MMC-консоль на Windows).

Если консоль не открывается

Консоль работает через библиотеку radmin.dll. Если оснастка пустая или ругается при запуске, зарегистрируйте библиотеку той версии, что совпадает с сервером:

regsvr32 "C:\Program Files\1cv8\8.3.24.1467\bin\radmin.dll"

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

Добавление сервера

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

Консоль на Windows спокойно управляет агентом на Linux: она ходит напрямую на порт 1540. А вот rac работает только через сервер администрирования ras: его запускают командой ras cluster --daemon, после чего rac cluster list показывает кластеры.

Сам реестр кластера хранится в файле 1CV8Clst.lst в подкаталоге reg_1541 каталога srvinfo. Это главный файл для резервной копии сервера 1С: в нём список баз, рабочие серверы и администраторы.

Порты и параметры запуска агента сервера

Параметры агента одинаковы для Windows и Linux, меняется только место, где их задают.

ПараметрЗначение по умолчаниюЧто задаёт
-port1540Порт агента: к нему подключаются клиенты и консоль
-regport1541Порт главного менеджера кластера
-range1560:1591Диапазон портов для рабочих процессов и менеджеров
-dsrvinfoКаталог реестра кластера и служебных файлов
-debugвыключенРазрешает отладку конфигурации на сервере

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

Два агента разных версий на одной машине

Типичная ситуация при тестировании нового релиза: старая версия работает, новую нужно проверить рядом. Две службы на одних портах не уживутся, поэтому второй агент регистрируют со сдвигом:

ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -regport 2541 -port 2540 -range 2560:2591 -d "C:\Program Files\1cv8\srvinfo_test"

Клиенты подключаются ко второму агенту как srv1c:2541 — в строке подключения указывают порт менеджера кластера.

Открыть порты в брандмауэре

На Windows (PowerShell от администратора):

New-NetFirewallRule -DisplayName "1C Server" -Direction Inbound -Protocol TCP -LocalPort 1540-1541,1560-1591 -Action Allow

На Linux с ufw:

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp

Открывать порты только для 1540 — частая ошибка. Клиент подключится к агенту, получит адрес рабочего процесса из диапазона и упрётся в закрытый порт.

Как обновить агент на новую версию платформы

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

  1. Скопируйте каталог srvinfo (или /home/usr1cv8/.1cv8/1C/1cv8) в резервную копию.
  2. Установите новую версию платформы с компонентом сервера, но службу на этом шаге не создавайте.
  3. В нерабочее время остановите службу старой версии — сеансы пользователей оборвутся.
  4. Зарегистрируйте службу новой версии с теми же портами и тем же каталогом -d. На Linux — systemctl link и enable для unit-файла новой версии, а старый экземпляр отключите systemctl disable.
  5. Запустите службу, перерегистрируйте radmin.dll новой версии и обновите клиентов до той же сборки.

Если на сервере используется программная лицензия, после смены версии она обычно остаётся рабочей. Перепроверить её стоит при замене оборудования или смене ОС: программная лицензия привязана к параметрам компьютера.

Агент не стартует или клиенты не видят сервер

Большинство проблем после установки сводится к именам, портам и правам. Начните с проверки, слушает ли агент порты:

netstat -ano | findstr :154
ss -tlnp | grep 154

С клиента доступность проверяется так: Test-NetConnection srv1c -Port 1540 в PowerShell.

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

На Linux причины остановки ищите в журнале службы: journalctl -u srv1cv8-8.3.24.1467@default -n 100. Права на каталог данных проверяйте у пользователя usr1cv8.

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

Можно ли поставить сервер 1С на ту же машину, что и PostgreSQL или MS SQL?
Можно, для небольших баз это обычная схема. Главное — заранее разделить память: ограничьте кэш СУБД, чтобы рабочим процессам 1С осталось достаточно.
Нужна ли отдельная лицензия на сервер, если клиентские лицензии уже есть?
Да. Клиентские лицензии дают право на рабочие места, а для работы баз в режиме клиент-сервер нужна серверная лицензия, установленная на сам сервер.
Чем агент сервера отличается от рабочего сервера и менеджера кластера?
Агент (ragent) — точка входа на порту 1540 и хранитель списка кластеров. Менеджер кластера (rmngr) управляет базами и сеансами. Рабочие процессы (rphost) выполняют код конфигурации.
Можно ли запустить агент без службы для проверки?
Для поиска проблем удобнее оставить службу и смотреть журнал событий Windows или journalctl на Linux. Ручной запуск от другого пользователя может создать файлы в srvinfo с неправильными правами.
Как перенести сервер 1С на другую машину без пересоздания кластера?
Установите ту же версию платформы, остановите агент на старой машине и скопируйте каталог srvinfo целиком. Имя нового сервера должно совпадать со старым, иначе клиентам придётся менять строку подключения.