Как устроен ragent и что делать, когда он не запускается

· 9 мин

Содержание

Агент сервера 1С — это процесс ragent (в Windows — служба «Агент сервера 1С:Предприятия 8.3»), который принимает первое подключение клиента на порту 1540, хранит список кластеров на машине и запускает остальные процессы: менеджер кластера rmngr и рабочие процессы rphost. Сам он запросы пользователей не выполняет. Он диспетчер: остановился агент — новых подключений к серверу нет.

Через агент же работает консоль администрирования серверов. Поэтому почти любая проблема «сервер 1С не виден» начинается с проверки трёх вещей: запущена ли служба, слушается ли порт 1540 и тот ли каталог данных указан в её параметрах.

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

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

ПроцессПорт по умолчаниюЧто делает
ragent — агент сервера1540Принимает первое подключение, ведёт список кластеров машины, запускает и контролирует rmngr, обслуживает консоль администрирования
rmngr — менеджер кластера1541Хранит реестр кластера: базы, рабочие серверы, администраторов, сеансы, блокировки
rphost — рабочий процесс1560–1591Выполняет серверный код конфигурации и запросы к СУБД
ras — сервер администрирования1545Посредник для утилиты rac и сторонних консолей

Сервер, на котором агент создал кластер, называют центральным. Агент хранит свои данные в каталоге srvinfo:

  • 📄 1CV8Clsts.lst — список кластеров этого агента и администраторов центрального сервера;
  • 📁 reg_1541 — каталог кластера с портом 1541: реестр 1CV8Clst.lst, сеансовые данные, служебные файлы баз;
  • 📁 snccntx… внутри reg_1541 — кэш сеансовых данных.

В Windows каталог по умолчанию — C:\Program Files\1cv8\srvinfo, в Linux — /home/usr1cv8/.1cv8/1C/1cv8. Фактический путь всегда смотрите в параметре -d строки запуска службы: администраторы часто выносят srvinfo на отдельный диск.

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

Как агент обрабатывает подключения и сеансы

Путь подключения клиента в клиент-серверном варианте выглядит так:

  1. Клиент обращается к агенту на сервер:1540 и спрашивает, где обслуживается база.
  2. Агент направляет его к менеджеру кластера на порт 1541.
  3. Менеджер выбирает рабочий процесс и выдаёт клиенту его порт из диапазона 1560–1591.
  4. Дальше клиент работает с рабочим процессом напрямую.

Из этого следует простая вещь: открыть в межсетевом экране только 1540 недостаточно. Клиент дойдёт до агента, но не сможет соединиться с rphost. Нужны все три группы портов — 1540, 1541 и весь диапазон рабочих процессов.

Сеансы и соединения видны в консоли администрирования: Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер → Сеансы. Там же разделы «Соединения», «Блокировки», «Рабочие процессы». Из контекстного меню сеанс можно завершить.

Тот же список доступен из командной строки через ras и rac. Сначала запускают сервер администрирования, затем смотрят кластер и сеансы:

ras cluster --port=1545 localhost:1540
rac localhost:1545 cluster list
rac localhost:1545 session list --cluster=<UUID кластера>
rac localhost:1545 session list --cluster=<UUID кластера> --licenses

UUID кластера берут из вывода cluster list. Остальные подкоманды и ключи смотрите в справке rac help и rac session help — они меняются от версии к версии.

Завершение сеанса обрывает работу пользователя без сохранения. Непроведённые документы и открытые формы пропадут. Предупредите людей или делайте это вне рабочего времени.

Параметры запуска службы и настройка безопасности

Агент запускается со строкой параметров. В Windows её видно в свойствах службы в services.msc, поле «Исполняемый файл». Типичный вид:

"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

Что означают параметры:

ПараметрЗначение
-srvcзапуск в режиме службы Windows
-agentрежим агента сервера
-portпорт агента (по умолчанию 1540)
-regportпорт менеджера кластера (по умолчанию 1541)
-rangeдиапазон портов для процессов кластера
-dкаталог данных srvinfo
-debugразрешает отладку конфигураций на этом сервере
-seclevуровень защищённости соединений: 0, 1 или 2

В Linux агент запускается демоном (-daemon вместо -srvc). Начиная с 8.3.21 платформа ставит юнит systemd с номером версии в имени, раньше использовался скрипт srv1cv83. Строку запуска смотрите в файле юнита или в выводе ps aux | grep ragent.

Второй агент другой версии на том же сервере

Частая задача: протестировать новую платформу, не останавливая рабочую. Регистрируют вторую службу со сдвинутыми портами и своим каталогом:

sc create "1C:Enterprise 8.3 Server Agent 2540" binPath= "\"C:\Program Files\1cv8\8.3.25.1286\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"D:\srvinfo2540\"" start= auto obj= ".\USR1CV8" password= "пароль"

Пробел после binPath=, start=, obj= обязателен — это синтаксис sc. Подключение к такой базе в клиенте указывают как сервер:2541.

Безопасность

  • 🔐 Учётная запись службы. Служба работает от отдельного пользователя (обычно USR1CV8) с правом «Вход в качестве службы». Запуск от «Локальной системы» даёт серверному коду конфигурации полный доступ к машине.
  • 👤 Администраторы центрального сервера. Пока список пуст, управлять агентом может любой, кто достучался до порта 1540. Добавьте администратора в консоли: Центральные серверы → имя сервера → Администраторы. Администраторы кластера задаются отдельно, в узле кластера.
  • 🧱 Права на каталог. Пользователь службы должен иметь полный доступ к srvinfo и к каталогу временных файлов. Остальным доступ туда не нужен.
  • 🌐 Сеть. Порты 1540, 1541 и диапазон рабочих процессов открывайте только для подсети пользователей, не наружу.
  • 🔒 Уровень защищённости -seclev. 0 — без защиты, 1 — защищено только при аутентификации, 2 — защищено всё соединение. Чем выше уровень, тем больше нагрузка на процессор.

Пароль администратора центрального сервера не восстанавливается из консоли. Если его забыли, остановите службу и верните 1CV8Clsts.lst из резервной копии или обратитесь к тому, кто администрирует сервер. Не удаляйте реестр кластера ради «сброса» — пропадут все зарегистрированные базы и настройки.

Диагностика агента: службы, порты и технологический журнал

Проверку ведите от простого к сложному.

1. Работает ли служба. В services.msc найдите службу агента. Если она остановлена и не стартует, откройте журнал событий Windows (eventvwr.msc), разделы «Система» и «Приложение»: там будет ошибка диспетчера служб с причиной — неверный пароль учётной записи, нет права на вход как служба, не найден исполняемый файл после удаления старой версии платформы.

2. Слушается ли порт. На сервере:

netstat -ano | findstr :1540
tasklist /FI "IMAGENAME eq ragent.exe"

В Linux — ss -tlnp | grep 1540. PID из netstat должен совпадать с PID процесса ragent. Порт занят чужим процессом — агент не стартует.

3. Доступен ли порт с клиента. В PowerShell на компьютере пользователя:

Test-NetConnection сервер -Port 1540
Test-NetConnection сервер -Port 1541

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

4. Технологический журнал. Когда служба запущена, но процессы падают или клиенты получают ошибки, включают технологический журнал файлом logcfg.xml в каталоге 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="PROC"/></event>
    <event><eq property="name" value="CLSTR"/></event>
    <event><eq property="name" value="ADMIN"/></event>
    <property name="all"/>
  </log>
  <dump create="true" location="D:\dumps" type="3"/>
</config>
  • EXCP — исключения в процессах;
  • PROC — запуск и завершение процессов, в том числе аварийное;
  • CLSTR — события кластера: регистрация серверов, перезапуск процессов;
  • ADMIN — действия администраторов через консоль и rac.

Платформа подхватывает файл без перезапуска службы. history — сколько часов хранить журнал.

Журнал с <property name="all"/> на загруженном сервере растёт на гигабайты в час. Включайте его точечно на время разбора и выключайте, удалив или переименовав logcfg.xml. Каталог журнала держите на диске со свободным местом.

Как разгрузить кластер и снизить потребление памяти

Сам ragent потребляет мало. Нагрузку дают рабочие процессы, и управляют ими настройки рабочего сервера и кластера, а не агента.

В свойствах рабочего сервера (Кластеры → кластер → Рабочие серверы → сервер → Свойства):

  • 📊 «Количество ИБ на процесс» и «Количество соединений на процесс» — сколько баз и соединений обслуживает один rphost. Значение 0 — без ограничения. Чтобы тяжёлая база не мешала остальным, ставят 1 базу на процесс.
  • 💾 «Критический объём памяти процессов» — при его превышении кластер начинает завершать процессы.
  • ⏱ «Временно допустимый объём памяти процессов» и «Интервал превышения» — процесс, который дольше заданного времени держит память выше порога, перезапускается после завершения его соединений.
  • 🧮 «Безопасный расход памяти за один вызов» — ограничивает один серверный вызов, чтобы ошибка в коде не съела всю память.
  • 🔀 «Требования назначения функциональности» — какие сервисы и базы обслуживает этот сервер, если серверов несколько.

В свойствах кластера:

  • 🔁 «Интервал перезапуска» — плановый перезапуск рабочих процессов, лечит медленное накопление памяти. Типичное значение — 86400 секунд (сутки).
  • ⚖️ «Уровень отказоустойчивости» и режим распределения нагрузки — по производительности или по памяти.

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

Если сервер всё равно тормозит, причину ищут уже в СУБД, в блокировках и в коде конфигурации: агент к этому отношения не имеет.

Частые сбои агента сервера и что с ними делать

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

Команда перерегистрации консоли для конкретной версии:

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

После неё в оснастке 1CV8 Servers.msc версии будут совпадать с агентом.

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

Ещё две ошибки администраторов, которые встречаются постоянно:

  • ❌ Обновили платформу, а служба осталась старой. Установщик новой версии не всегда перенастраивает службу. Проверьте путь к ragent.exe в её свойствах после каждого обновления.
  • ❌ Подняли второй агент на тех же портах. Вторая служба либо не стартует, либо перехватывает порт у рабочей. Всегда сдвигайте все три параметра: -port, -regport, -range.

Вопросы об агенте сервера 1С

Можно ли перезапустить агент сервера в рабочее время?
Нет, если на сервере работают пользователи. Перезапуск службы завершает все сеансы всех баз. Для перезапуска одного зависшего рабочего процесса это не нужно: его можно выключить в консоли.
Нужна ли отдельная лицензия на агент сервера?
Агент — часть сервера 1С:Предприятия. Нужна лицензия на сам сервер и клиентские лицензии на пользователей; отдельно агент не лицензируется.
Чем ragent отличается от ras?
ragent управляет кластером и принимает подключения клиентов. ras — посредник для утилиты rac и сторонних консолей, он подключается к агенту и сам ничего не запускает.
Обязателен ли параметр -debug?
Нет. Он нужен, только если разработчики отлаживают конфигурацию на этом сервере. На рабочем сервере без необходимости его лучше не включать.
Где посмотреть, каким каталогом srvinfo пользуется агент?
В строке запуска службы, параметр -d. В Windows — свойства службы в services.msc, в Linux — файл юнита systemd или вывод ps aux | grep ragent.