Как устроен ragent и что делать, когда он не запускается
Содержание
Агент сервера 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. Общий каталог для двух агентов — прямой путь к повреждённому реестру кластера.
Как агент обрабатывает подключения и сеансы
Путь подключения клиента в клиент-серверном варианте выглядит так:
- Клиент обращается к агенту на
сервер:1540и спрашивает, где обслуживается база. - Агент направляет его к менеджеру кластера на порт 1541.
- Менеджер выбирает рабочий процесс и выдаёт клиенту его порт из диапазона 1560–1591.
- Дальше клиент работает с рабочим процессом напрямую.
Из этого следует простая вещь: открыть в межсетевом экране только 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.