Процесс ragent в кластере 1С 8.3: роль, запуск, логи и тонкая настройка
Содержание
Агент сервера 1С — это процесс ragent.exe (в Linux — ragent), который работает как служба и слушает порт 1540. Он отвечает за реестр кластеров на компьютере, запуск менеджера кластера (rmngr) и рабочих процессов (rphost), а также за проверку администраторов центрального сервера. Если агент не запущен, ни один клиент и ни одна консоль администрирования к серверу 1С не подключится.
Настраивается агент двумя способами: параметрами командной строки службы (порты, каталог данных, отладка) и через консоль администрирования серверов, где задаются свойства кластера и рабочего сервера.
Место агента сервера 1С в кластере серверов
Сервер 1С:Предприятия 8.3 — это не одна программа, а связка из трёх видов процессов. У каждого своя задача.
| Процесс | Порт по умолчанию | За что отвечает |
|---|---|---|
ragent — агент сервера | 1540 | Реестр кластеров на компьютере, администраторы центрального сервера, запуск остальных процессов |
rmngr — менеджер кластера | 1541 | Реестр информационных баз кластера, сеансы, блокировки, лицензии, распределение нагрузки |
rphost — рабочий процесс | 1560–1591 | Выполнение кода конфигурации, запросы к СУБД |
Цепочка подключения клиента такая:
- 🔌 Клиент обращается к агенту на порт
1540указанного в строке подключения сервера. - 📋 Агент сообщает адрес менеджера кластера (порт
1541). - ⚙️ Менеджер выбирает рабочий процесс и выдаёт его порт из диапазона.
- 🧠 Дальше клиент работает напрямую с рабочим процессом.
Консоль администрирования серверов тоже идёт через агент. Поэтому «консоль не подключается» почти всегда означает проблему именно с агентом: служба не запущена, порт закрыт или версия консоли не совпадает с версией сервера.
Центральный и рабочий сервер
В кластере из нескольких машин агент стоит на каждой. На центральном сервере агент дополнительно хранит список администраторов центрального сервера и реестр кластеров. На остальных рабочих серверах он запускает процессы по команде главного менеджера кластера.
Один агент может обслуживать несколько кластеров. Каждый кластер получает свой порт менеджера: первый — 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. После перерегистрации служба стартует от той версии платформы, из каталога которой выполнена команда. Это и есть основной способ «переключить» сервер на новый релиз платформы.
Порядок запуска
При старте службы агент:
- читает реестр кластеров из каталога
srvinfo; - запускает процесс
rmngrдля каждого кластера; - по команде менеджера поднимает рабочие процессы
rphost; - начинает принимать подключения на
1540.
При остановке службы все процессы кластера на этом компьютере завершаются. Остановка или перезапуск агента обрывает сеансы всех пользователей сервера: несохранённые документы пропадут, фоновые задания прервутся. Делайте это вне рабочего времени или после предупреждения пользователей.
Агент на Linux
На Linux агент запускается от пользователя usr1cv8. В актуальных версиях платформы в каталоге установки (/opt/1cv8/x86_64/<версия>/) лежит файл юнита systemd, который подключают командой systemctl link, затем включают через systemctl enable --now. Каталог данных по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8. Проверить, что агент слушает порт: ss -tlnp | grep 1540.
Диагностика проблем агента и анализ логов
Начинайте с простого: жив ли процесс и открыт ли порт.
- Проверьте службу:
sc queryс именем службы или вкладка «Службы» диспетчера задач. - Убедитесь, что порт слушается:
netstat -ano | findstr 1540. - С клиентской машины проверьте доступность:
Test-NetConnection имя_сервера -Port 1540в PowerShell. - Посмотрите журнал 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.
- Предупредите пользователей и дождитесь, пока все выйдут.
- Остановите службу агента.
- Скопируйте каталог
srvinfoцеликом в резервное место. - Удалите только каталоги
snccntx*, файлы реестра*.lstне трогайте. - Запустите службу и проверьте вход.
Файлы 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из командной строки службы на рабочем сервере: отладка открывает возможность подключаться к выполняемому коду.