Процесс ragent в кластере 1С 8.3: роль, запуск, логи и тонкая настройка

· 10 мин

Содержание

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

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

Место агента сервера 1С в кластере серверов

Сервер 1С:Предприятия 8.3 — это не одна программа, а связка из трёх видов процессов. У каждого своя задача.

ПроцессПорт по умолчаниюЗа что отвечает
ragent — агент сервера1540Реестр кластеров на компьютере, администраторы центрального сервера, запуск остальных процессов
rmngr — менеджер кластера1541Реестр информационных баз кластера, сеансы, блокировки, лицензии, распределение нагрузки
rphost — рабочий процесс1560–1591Выполнение кода конфигурации, запросы к СУБД

Цепочка подключения клиента такая:

  1. 🔌 Клиент обращается к агенту на порт 1540 указанного в строке подключения сервера.
  2. 📋 Агент сообщает адрес менеджера кластера (порт 1541).
  3. ⚙️ Менеджер выбирает рабочий процесс и выдаёт его порт из диапазона.
  4. 🧠 Дальше клиент работает напрямую с рабочим процессом.

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

Центральный и рабочий сервер

В кластере из нескольких машин агент стоит на каждой. На центральном сервере агент дополнительно хранит список администраторов центрального сервера и реестр кластеров. На остальных рабочих серверах он запускает процессы по команде главного менеджера кластера.

Один агент может обслуживать несколько кластеров. Каждый кластер получает свой порт менеджера: первый — 1541, следующий создаётся вручную с другим портом, например 1641.

Запуск службы агента и её жизненный цикл

При установке сервера 1С на Windows мастер регистрирует службу «Агент сервера 1С:Предприятия 8.3». Типичная командная строка службы выглядит так:

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

Разбор параметров:

  • -srvc — запуск в режиме службы;
  • -agent — запуск именно агента;
  • -port 1540 — порт агента;
  • -regport 1541 — порт главного менеджера кластера;
  • -range 1560:1591 — диапазон портов рабочих процессов;
  • -d — каталог srvinfo с реестром кластера и служебными данными;
  • -debug — разрешает отладку на сервере (нужно только разработчикам; на рабочем сервере лучше убрать).

Номер версии в пути у вас свой. Посмотреть фактическую строку можно в свойствах службы: Win+R → services.msc → служба агента → вкладка «Общие» → поле «Исполняемый файл».

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

Если служба пропала после неудачного обновления платформы, её регистрируют заново из командной строки от имени администратора:

cd "C:\Program Files\1cv8\8.3.24.1548\bin"
ragent.exe -instsrvc -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -usr .\USR1CV8 -pwd ПарольПользователя

Удалить старую регистрацию: ragent.exe -rmsrvc. После перерегистрации служба стартует от той версии платформы, из каталога которой выполнена команда. Это и есть основной способ «переключить» сервер на новый релиз платформы.

Порядок запуска

При старте службы агент:

  1. читает реестр кластеров из каталога srvinfo;
  2. запускает процесс rmngr для каждого кластера;
  3. по команде менеджера поднимает рабочие процессы rphost;
  4. начинает принимать подключения на 1540.

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

Агент на Linux

На Linux агент запускается от пользователя usr1cv8. В актуальных версиях платформы в каталоге установки (/opt/1cv8/x86_64/<версия>/) лежит файл юнита systemd, который подключают командой systemctl link, затем включают через systemctl enable --now. Каталог данных по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8. Проверить, что агент слушает порт: ss -tlnp | grep 1540.

Диагностика проблем агента и анализ логов

Начинайте с простого: жив ли процесс и открыт ли порт.

  1. Проверьте службу: sc query с именем службы или вкладка «Службы» диспетчера задач.
  2. Убедитесь, что порт слушается: netstat -ano | findstr 1540.
  3. С клиентской машины проверьте доступность: Test-NetConnection имя_сервера -Port 1540 в PowerShell.
  4. Посмотрите журнал Windows: Просмотр событий → Журналы Windows → Приложение, источник с упоминанием 1С:Предприятия.
Диагностика: выберите симптом

Перерегистрация radmin.dll

Консоль администрирования серверов — это оснастка MMC, которой нужна библиотека radmin.dll той же версии, что и сервер. После обновления платформы консоль часто перестаёт открываться или подключаться. Решение — зарегистрировать библиотеку новой версии из командной строки администратора:

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

Для 64-битного сервера регистрируйте 64-битную библиотеку из каталога 64-битной платформы.

Технологический журнал

Для разбора сбоев кластера включают технологический журнал. Он настраивается файлом logcfg.xml в каталоге conf платформы (например, C:\Program Files\1cv8\conf\). Пример минимальной настройки для событий кластера и исключений:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\1c_logs" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <event>
      <eq property="name" value="CLSTR"/>
    </event>
    <event>
      <eq property="name" value="ADMIN"/>
    </event>
    <property name="all"/>
  </log>
</config>
  • EXCP — исключения, в том числе аварийные завершения;
  • CLSTR — операции кластера: запуск и остановка процессов, изменения реестра;
  • ADMIN — действия администратора кластера;
  • history="24" — хранить логи 24 часа.

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

Журнал пишется в подкаталоги по процессам: ragent_<PID>, rmngr_<PID>, rphost_<PID>. Если в каталоге агента видны записи о падениях рабочих процессов с одним и тем же модулем — ищите причину в коде конфигурации или расширения, а не в сервере.

Производительность кластера и лимиты рабочих процессов

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

Свойства кластера

Открываются так: консоль → центральный сервер → «Кластеры» → правой кнопкой по кластеру → «Свойства». Здесь важны:

  • «Интервал перезапуска» — через сколько секунд рабочие процессы перезапускаются по плану. Ноль — без плановых перезапусков;
  • «Допустимый объём памяти» и «Интервал превышения допустимого объёма памяти» — порог, после которого процесс считается «распухшим» и будет перезапущен;
  • «Уровень отказоустойчивости» и «Режим распределения нагрузки».

Свойства рабочего сервера

Путь: кластер → «Рабочие серверы» → нужный сервер → «Свойства». Здесь задаются:

  • диапазон IP-портов рабочих процессов;
  • «Количество ИБ на процесс» и «Количество соединений на процесс» — от них зависит, сколько rphost поднимет сервер;
  • флаг «Менеджер под каждый сервис» — выносит службы кластера в отдельные процессы rmngr;
  • требования назначения функциональности — какие базы и службы обслуживает этот сервер.
СитуацияЧто поменятьГде
Память rphost растёт до перезапуска сервераЗадать допустимый объём памяти и интервал превышенияСвойства кластера
Одна тяжёлая база мешает остальнымОграничить «Количество ИБ на процесс» значением 1Свойства рабочего сервера
В брандмауэре закрыт диапазон портовСузить диапазон и открыть его целикомСвойства рабочего сервера
Нужно разнести нагрузку на две машиныДобавить второй рабочий сервер и требования назначенияКластер → Рабочие серверы

Перезапуск рабочих процессов по памяти проходит мягко: платформа поднимает новый процесс и переводит туда новые соединения, старый завершается, когда освободится. Сеансы при этом не теряются, в отличие от остановки службы.

Очистка сеансовых данных

Когда кластер после сбоя тормозит, не даёт войти в базу или показывает «призрачные» сеансы, практики чистят кэш сеансовых данных. Это каталоги snccntx* внутри srvinfo\reg_1541.

  1. Предупредите пользователей и дождитесь, пока все выйдут.
  2. Остановите службу агента.
  3. Скопируйте каталог srvinfo целиком в резервное место.
  4. Удалите только каталоги snccntx*, файлы реестра *.lst не трогайте.
  5. Запустите службу и проверьте вход.

Файлы 1CV8Clst.lst и 1cv8wsrv.lst не удаляйте: в первом — реестр баз кластера, во втором — администраторы и список кластеров. Без них все базы придётся регистрировать заново.

Связь агента с менеджером кластера

Агент и менеджер разделяют обязанности чётко. Агент знает, какие кластеры есть на машине и кто ими может управлять. Менеджер знает, какие базы в кластере, кто в них работает и какие у кого блокировки.

Отсюда практические следствия:

  • 📌 Порт менеджера (-regport) задаётся агенту при запуске службы. Поменять его «на лету» в консоли нельзя — нужна перерегистрация службы.
  • 📌 Если агент работает, а rmngr не стартовал, в консоли кластер виден, но список баз пуст или не открывается.
  • 📌 Удалённое администрирование через rac идёт не напрямую к агенту, а через сервер администрирования ras, который сам подключается к агенту.

Пример запуска ras и просмотра кластеров:

ras.exe cluster --port=1545 localhost:1540
rac.exe cluster list localhost:1545

Получив идентификатор кластера, можно смотреть сеансы: rac session list --cluster=<id> localhost:1545. Остальные команды и параметры — в справке rac help.

Несколько агентов на одном сервере

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

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

В строке подключения клиента тогда указывают сервер с портом: имя_сервера:2541. Порты двух агентов не должны пересекаться ни в одном диапазоне.

Права службы и защита агента сервера 1С

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

Учётной записи службы нужны:

  • право «Вход в качестве службы»;
  • полный доступ к каталогу srvinfo;
  • доступ на чтение к каталогу платформы;
  • права на каталоги, куда конфигурация пишет файлы (выгрузки, обмены), если они есть.

Администраторы центрального сервера и кластера

Это два разных уровня, и оба стоит заполнить:

УровеньГде задаётсяЧто защищает
Администратор центрального сервераКонсоль → центральный сервер → «Администраторы»Создание и удаление кластеров, управление агентом
Администратор кластераКонсоль → кластер → «Администраторы»Регистрацию баз, завершение сеансов, свойства кластера

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

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

Сетевая защита

  • 🔒 Откройте в брандмауэре 1540, 1541 и диапазон рабочих процессов только для подсетей клиентов и серверов приложений.
  • 🔒 Порт 1545 сервера администрирования оставьте доступным лишь с машины администратора.
  • 🔒 Не публикуйте порты кластера в интернет. Для удалённых пользователей используйте VPN, терминальный доступ или веб-публикацию.
  • 🔒 Уберите -debug из командной строки службы на рабочем сервере: отладка открывает возможность подключаться к выполняемому коду.
Проверка агента после установки или обновления платформы
Выполнено: 0 / 6

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

Можно ли перезапустить агент сервера днём?
Можно, но все пользователи потеряют сеансы и несохранённые данные. Для освобождения памяти лучше настроить плановый перезапуск рабочих процессов в свойствах кластера: он проходит без обрыва работы.
Почему в диспетчере задач несколько процессов rphost?
Так задумано. Их число зависит от настроек «Количество ИБ на процесс» и «Количество соединений на процесс» в свойствах рабочего сервера и от нагрузки.
Нужна ли лицензия на сам агент?
Лицензия нужна на сервер 1С:Предприятия целиком, отдельно агент не лицензируется. Без серверной лицензии клиенты не смогут работать с базами кластера.
Как узнать, какая версия агента запущена?
Посмотрите путь к ragent.exe в свойствах службы: номер версии входит в имя каталога. На Linux — в пути к файлу юнита или исполняемому файлу процесса.
Сколько портов открыть в брандмауэре для одного кластера?
Порт агента 1540, порт менеджера 1541 и весь диапазон рабочих процессов, по умолчанию 1560–1591. Для удалённого администрирования через rac добавьте порт ras, по умолчанию 1545.