Что делает служба ragent в кластере 1С:Предприятия 8.3

· 9 мин

Содержание

Агент сервера 1С — это процесс ragent, который принимает первое подключение клиента на порту 1540, хранит список кластеров и запускает на своём компьютере менеджер кластера rmngr и рабочие процессы rphost. Без запущенного агента клиент-серверная база недоступна: ни пользователи, ни консоль администрирования не смогут к ней подключиться.

В Windows агент работает как служба «Агент сервера 1С:Предприятия 8.3», в Linux — как юнит systemd. Ниже — как он устроен, где меняются порты и каталог данных, как его диагностировать и какие права ему выдать.

Место агента в архитектуре кластера

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

ПроцессПорт по умолчаниюЧто делает
ragent1540Точка входа на компьютер-сервер, реестр кластеров, запуск остальных процессов, администраторы центрального сервера
rmngr1541Менеджер кластера: список баз, сеансы, блокировки, распределение нагрузки
rphost1560–1591Рабочий процесс: выполняет серверный код и запросы к СУБД

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

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

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

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

Когда агент не нужен

Файловым базам агент не нужен вообще. Не нужен он и на компьютерах пользователей: клиенту хватает установленной платформы. Ставить компонент «Сервер 1С:Предприятия» на рабочие места незачем — служба будет занимать порты и память впустую.

Как устроена служба: исполняемый файл и каталог srvinfo

Исполняемый файл лежит в каталоге платформы конкретной версии:

C:\Program Files\1cv8\8.3.24.1342\bin\ragent.exe

Рабочие данные агент держит в каталоге кластера, по умолчанию C:\Program Files\1cv8\srvinfo. Что там лежит:

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

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

В Linux платформа ставится в /opt/1cv8/x86_64/<версия>/, а каталог кластера по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8. Структура внутри та же.

Параметры запуска агента: реестр, порты, отладка

Где хранится командная строка службы

В Windows параметры запуска записаны в реестре, в значении ImagePath раздела службы:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя службы агента>

Имя службы видно в свойствах службы в оснастке services.msc (поле «Имя службы»). Типичное значение ImagePath:

"C:\Program Files\1cv8\8.3.24.1342\bin\ragent.exe" -debug -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
КлючЗначение
-srvcзапуск в режиме службы
-agentзапуск в роли агента
-portпорт агента (1540)
-regportпорт менеджера кластера (1541)
-rangeдиапазон портов для процессов кластера (1560:1591)
-dпуть к каталогу данных кластера (srvinfo)
-debugразрешает отладку серверного кода

Как поменять порт или каталог srvinfo

  1. Предупредите пользователей и выберите окно без работы: остановка службы обрывает все сеансы всех баз кластера.
  2. Остановите службу агента в services.msc.
  3. Откройте regedit, найдите раздел службы и отредактируйте ImagePath.
  4. Если переносите каталог — скопируйте старый srvinfo в новое место целиком.
  5. Запустите службу и проверьте, что порт слушается.

Если поменяли -regport, существующий кластер останется в каталоге reg_1541 и на старом порту в реестре кластеров. Порт менеджера уже созданного кластера проще не трогать, а для нового набора портов завести отдельный агент.

Вместо regedit можно использовать стандартную команду Windows sc config, но в её синтаксисе легко ошибиться с кавычками. Правка ImagePath нагляднее.

Два агента на одном компьютере

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

"C:\Program Files\1cv8\8.3.25.1257\bin\ragent.exe" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d "C:\Program Files\1cv8\srvinfo2"

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

Флаг -debug

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

Linux

Начиная с платформы 8.3.21 сервер в Linux запускается юнитом systemd. Файл юнита поставляется в каталоге платформы, его подключают и запускают через systemctl. Порты и каталог задаются переменными окружения юнита или параметрами в файле настроек службы. Состояние смотрят так:

systemctl status 'srv1cv8-*'
ss -tlnp | grep -E '1540|1541'

Как агент работает с рабочими процессами rphost

Агент не выполняет серверный код сам. Его задача по отношению к rphost — запустить нужное количество процессов на своём компьютере и перезапускать их по команде менеджера кластера.

Сколько процессов поднять, решают настройки рабочего сервера. Они задаются в консоли администрирования: Кластеры → <кластер> → Рабочие серверы → <сервер> → Свойства. Там же:

  • 🔢 диапазон IP-портов для процессов этого сервера;
  • 👥 число информационных баз и соединений на процесс;
  • 💾 допустимый и критический объём памяти рабочих процессов;
  • 🛡 параметры отказоустойчивости;
  • 🎯 требования назначения функциональности.

Каждый rphost занимает порт из диапазона. При 8–10 процессах и дополнительных менеджерах стандартных 32 портов (1560–1591) обычно хватает. Если процессов больше, расширьте диапазон в свойствах рабочего сервера и откройте его в брандмауэре.

Когда рабочий процесс превышает лимит памяти, кластер запускает новый rphost и переводит на него соединения, а старый процесс завершается. В списке процессов консоли это видно как процесс с отметкой «выключен», который скоро исчезнет. Это штатное поведение, а не сбой.

Список процессов удобно смотреть из командной строки через сервер администрирования ras и утилиту rac: rac cluster list, затем rac process list --cluster=<id кластера>. Остальные подкоманды — в rac help.

ras — отдельная служба (по умолчанию порт 1545), которая сама подключается к агенту на 1540. Без запущенного ras утилита rac работать не будет.

Диагностика: служба не стартует или клиенты не подключаются

Начните с трёх проверок — они закрывают большую часть случаев.

1. Служба запущена? Откройте services.msc и посмотрите состояние службы агента. Если она падает сразу после старта, причина записана в журнале Windows.

2. Порт слушается?

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

Если порт занят чужим процессом (PID в выводе netstat не совпадает с ragent.exe), агент не сможет его открыть.

3. Доступен ли сервер с клиента?

Test-NetConnection srv01 -Port 1540
Test-NetConnection srv01 -Port 1541

Удачная проверка 1540 при неудачной 1541 или портах диапазона — почти всегда брандмауэр.

Где смотреть журналы

  • 📋 Журнал Windows — eventvwr.msc → Журналы Windows → Приложение, фильтр по источнику с «1C». Сюда попадают ошибки запуска и аварийные завершения процессов.
  • 🧾 Технологический журнал — настраивается файлом logcfg.xml в каталоге bin\conf платформы. Для разбора сбоев включают события EXCP и PROC с ограничением по размеру и сроку хранения.
  • 💥 Дампы — при падении процесса платформа пишет дамп, если в logcfg.xml задан элемент <dump>. Дамп отправляют в поддержку вместе с версией платформы.
Диагностика: выберите симптом

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

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

  1. Дождитесь нерабочего времени — все пользователи будут отключены.
  2. Остановите службу агента и убедитесь, что в диспетчере задач не осталось ragent, rmngr, rphost.
  3. Сделайте копию каталога srvinfo.
  4. Удалите в srvinfo\reg_1541 только каталоги snccntx….
  5. Запустите службу.

Файлы 1CV8Clst.lst и 1cv8wsrv.lst не удаляйте. Удаление каталогов с GUID баз тоже возможно — там кеш, — но после этого первый вход в каждую базу будет заметно дольше.

Права учётной записи и защита агента

Под кем запускать службу

Установщик по умолчанию создаёт локального пользователя USR1CV8. Запускать агент от LocalSystem или администратора домена — лишний риск: серверный код конфигурации выполняется с правами этой учётной записи.

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

  • ✅ право «Вход в качестве службы» в локальной политике безопасности;
  • ✅ полный доступ к каталогу srvinfo;
  • ✅ чтение и запуск в каталоге платформы C:\Program Files\1cv8\<версия>;
  • ✅ доступ к каталогам, куда база пишет или откуда читает файлы (обмены, выгрузки);
  • ✅ доступ к СУБД — если используется вход по Windows-аутентификации.

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

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

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

Защита ставится в консоли администрирования:

  1. Центральный сервер → Администраторы — добавьте учётную запись. Хранится в 1cv8wsrv.lst.
  2. Кластеры → <кластер> → Администраторы — отдельный список для кластера. Хранится в 1CV8Clst.lst.

Для администратора можно разрешить вход по паролю или по учётной записи операционной системы.

Забыли пароль администратора кластера? Не пересоздавайте кластер. Остановите службу (сеансы оборвутся), восстановите 1CV8Clst.lst из резервной копии с известным паролем или обратитесь к тому, кто администрирует сервер.

Брандмауэр

На сервере откройте входящие соединения для 1540, 1541, диапазона 1560–1591 и, если используете rac с других машин, 1545. Ограничьте источник подсетями пользователей. Публиковать эти порты в интернет нельзя: для удалённой работы есть веб-публикация и VPN.

Проверка агента сервера после установки
Выполнено: 0 / 6

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

Можно ли обновить платформу, не теряя список баз в кластере?
Да. Новая служба указывает в -d тот же каталог srvinfo, и реестр кластера подхватывается. Старую службу останавливают и отключают, чтобы она не заняла те же порты.
Нужна ли отдельная лицензия на агент сервера?
Лицензия нужна на сервер 1С:Предприятия в целом, отдельно агент не лицензируется. Клиентские лицензии нужны для сеансов пользователей.
Сколько ресурсов потребляет сам ragent?
Немного: основную память и процессор забирают рабочие процессы rphost. Если растёт именно ragent, это повод смотреть технологический журнал.
Чем агент отличается от сервера администрирования ras?
Агент — часть кластера, без него базы не работают. ras — посредник для утилиты rac и сторонних консолей, кластер работает и без него.
Можно ли запустить агент вручную, не как службу?
Да, запуском ragent.exe без ключа -srvc из командной строки. Так делают для отладки запуска: ошибки видны сразу в окне. Для постоянной работы используют службу.