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

· 10 мин

Содержание

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

Агент нужен, чтобы клиент мог обратиться по одному известному адресу сервер:1540, а дальше его перенаправили к менеджеру кластера и рабочему процессу. Всё относится к платформе 8.3 и не зависит от конфигурации: БП, ЗУП и УТ работают через агент одинаково.

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

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

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

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

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

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

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

Где агент хранит данные

Рабочий каталог задаётся параметром -d. По умолчанию это C:\Program Files\1cv8\srvinfo в Windows и /home/usr1cv8/.1cv8/1C/1cv8 в Linux. Внутри:

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

Файл 1CV8Clst.lst — это и есть ваш кластер. Потеряете его — потеряете регистрацию всех баз. Копируйте каталог srvinfo в резервную копию вместе с базами СУБД.

Как агент запускает и перезапускает рабочие процессы

Агент сам не выполняет код конфигурации. Он поднимает процессы по команде менеджера кластера и следит, чтобы они жили.

Схема такая:

  1. При старте службы агент запускает rmngr для каждого кластера из 1cv8wsrv.lst.
  2. Менеджер решает, сколько рабочих процессов нужно, исходя из настроек рабочего сервера.
  3. Агент на соответствующем сервере стартует rphost, выдаёт ему порт из диапазона.
  4. Если рабочий процесс упал, менеджер запросит новый, и агент его поднимет.

Типичная строка запуска службы в Windows:

"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 — порт агента, -regport — порт главного менеджера кластера;
  • -range — диапазон портов для рабочих процессов;
  • -d — рабочий каталог;
  • -debug — разрешает отладку на сервере.

Номер версии в пути — пример, у вас он свой. Строку смотрят в свойствах службы, поле «Исполняемый файл».

Плановый перезапуск рабочих процессов

В свойствах кластера есть параметры «Интервал перезапуска» и «Допустимый объём памяти». Когда процесс превысил порог или отработал заданное время, кластер запускает новый rphost, переводит на него соединения и гасит старый. Пользователи этого обычно не замечают.

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

Как проверить, что агент работает

Начинают с трёх простых проверок. Они занимают пару минут и отвечают на вопрос «жив ли агент вообще».

1. Служба запущена. В Windows: services.msc, служба «Агент сервера 1С:Предприятия 8.3». Состояние «Выполняется», тип запуска «Автоматически». В Linux с платформы 8.3.21 служба управляется через systemd и называется по шаблону srv1cv8-8.3.xx.xxxx@:

systemctl list-units | grep srv1cv8
systemctl status srv1cv8-8.3.24.1548@default

2. Порт слушается. В Windows:

netstat -ano | findstr :1540
tasklist /fi "imagename eq ragent.exe"

Если строка с LISTENING есть, а PID совпадает с ragent.exe, агент принял порт. Если порт занят другим PID — это конфликт, второй экземпляр агента не стартует.

3. Видны процессы кластера. В диспетчере задач должны быть ragent, rmngr и хотя бы один rphost. Нет rmngr — агент запустился, но не поднял кластер. Смотрите журнал событий Windows, источник «1C:Enterprise 8.3 Server Agent».

Мониторинг из консоли и через rac

В консоли кластера (Администрирование серверов 1С Предприятия) в ветке «Рабочие процессы» видно память, число соединений, время ответа и доступную производительность каждого rphost. Ветка «Сеансы» показывает, кто держит лицензии и соединения.

Для скриптов и мониторинга удобнее rac. Он работает через службу ras, которую запускают отдельно:

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

Идентификатор кластера берут из вывода cluster list. Остальные подкоманды и параметры — в rac help.

Если консоль не открывается с ошибкой о классе или компоненте, перерегистрируйте radmin.dll той же версии платформы, что и сервер: regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll" из командной строки от имени администратора.

Для глубокой диагностики включают технологический журнал: файл logcfg.xml в каталоге bin\conf нужной версии платформы. Агент подхватывает его без перезапуска. Пишите в журнал только нужные события — полный журнал за час съедает гигабайты.

Учётная запись службы и администраторы агента

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

Учётная запись службы

При установке сервера создаётся пользователь USR1CV8. Требования к учётке:

  • ✅ право «Вход в качестве службы»;
  • ✅ полный доступ к каталогу srvinfo;
  • ✅ доступ к каталогу установки платформы на чтение и выполнение;
  • ❌ не нужна в группе локальных администраторов.

Запускать агент под LocalSystem или доменным администратором — плохая идея. Серверный код конфигурации выполняется с правами службы, и любая внешняя обработка получит те же права.

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

Это разные списки, и их часто путают.

КтоГде хранитсяЧто может
Администратор центрального сервера (агента)1cv8wsrv.lstСоздавать и удалять кластеры на компьютере
Администратор кластера1CV8Clst.lstРегистрировать базы, управлять сеансами и процессами
Администратор базыСама базаВходить в базу, давать права пользователям

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

Пароль администратора кластера утерян — не удаляйте и не пересоздавайте кластер. Остановите службу агента (предупредив пользователей: все сеансы оборвутся), восстановите 1CV8Clst.lst из резервной копии и запустите службу. Если копии нет — обратитесь к тому, кто администрирует сервер.

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

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

Большинство проблем с агентом сводится к пяти сценариям.

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

Очистка сеансового кэша: порядок

Это частый и действенный приём, но делать его надо аккуратно.

  1. Выберите время без пользователей: при остановке службы оборвутся все сеансы во всех базах кластера.
  2. Остановите службу агента сервера 1С.
  3. Убедитесь, что в диспетчере задач не осталось rphost и rmngr.
  4. Скопируйте каталог reg_1541 целиком в сторону.
  5. Удалите только папки snccntx*. Файл 1CV8Clst.lst и остальное не трогайте.
  6. Запустите службу и проверьте вход в базу.

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

Иногда нужно держать две версии платформы: старую для одной базы, новую для остальных. Это допустимо, если у каждого агента свои порты и свой каталог -d. Например, второй экземпляр на портах 2540, 2541 и диапазоне 2560:2591. Клиенты второй версии подключаются к базе как сервер:2541.

Регистрация второй службы делается через сам ragent:

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

Удалить службу — ragent.exe -rmsrvc. Запускайте команды из каталога bin той версии, которой служба должна принадлежать. Если в системе уже есть служба с таким именем, сначала проверьте, чью службу вы удаляете.

Настройки агента и кластера, которые влияют на скорость

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

ПараметрГдеНа что влияет
Количество ИБ на процессСвойства рабочего сервераСколько баз обслуживает один rphost; 1 — изоляция баз друг от друга
Количество соединений на процессСвойства рабочего сервераКогда запускать новый рабочий процесс
Максимальный объём памяти рабочих процессовСвойства рабочего сервераОбщий потолок памяти всех rphost сервера
Безопасный расход памяти за один вызовСвойства рабочего сервераОбрывает тяжёлый вызов, а не весь процесс
Интервал перезапуска, допустимый объём памятиСвойства кластераПлановая замена «распухших» процессов
Уровень отказоустойчивостиСвойства кластераСколько серверов может отказать без потери сеансов

Практические приёмы:

  • 🚀 Уберите -debug на рабочем сервере, если отладка там не нужна. Флаг добавляет накладные расходы. После правки строки запуска службы её перезапускают — с предупреждением пользователей.
  • 🧠 Ставьте «Безопасный расход памяти за один вызов». Без него один кривой отчёт съедает память процесса, и падают все пользователи на нём. С ним прерывается только этот вызов.
  • 🗂️ Выносите тяжёлые базы в отдельный процесс через «Количество ИБ на процесс» = 1, если одна база мешает другим.
  • 💾 Держите srvinfo на быстром диске. Сеансовые данные пишутся постоянно, медленный диск даёт задержки на ровном месте.
  • 🛡️ Добавьте srvinfo в исключения антивируса в режиме проверки при доступе. Сканер на каждом обращении к сеансовым файлам заметно тормозит кластер.

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

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

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

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