ragent.exe и его окружение: где живёт агент сервера 1С и как его проверить

· 9 мин

Содержание

За агент сервера 1С отвечает файл ragent.exe (в Linux — ragent без расширения). Он лежит в каталоге bin установленной версии платформы: в Windows это обычно C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe, в Linux — /opt/1cv8/x86_64/8.3.xx.xxxx/ragent. Служба Windows называется 1C:Enterprise 8.3 Server Agent (x86-64) и запускает именно этот файл с параметрами портов и каталога данных.

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

Какое место агент занимает в кластере 1С

Сервер 1С:Предприятия — это не одна программа, а связка процессов. Агент стартует первым и поднимает остальные.

ПроцессФайлПорт по умолчаниюЧто делает
Агент сервераragent1540Принимает первое обращение клиента и консоли, хранит список кластеров, запускает менеджер кластера
Менеджер кластераrmngr1541Ведёт реестр кластера: информационные базы, рабочие серверы, сеансы, блокировки
Рабочий процессrphostдиапазон 1560–1591Выполняет серверный код конфигурации и запросы к СУБД
Сервер администрированияras1545Шлюз для утилиты rac и сторонних консолей; ставится отдельно

Путь соединения такой:

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

Консоль администрирования серверов (оснастка MMC) тоже ходит через агент. Если ragent не запущен, консоль не увидит кластер, а пользователи получат ошибку соединения — даже если СУБД и рабочие процессы на другом сервере живы.

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

Файлы агента сервера 1С в Windows

Каждая версия платформы ставится в свой каталог. Если на сервере стоят 8.3.22 и 8.3.24, у каждой свой ragent.exe, и служба запускает только один из них.

Что лежит в C:\Program Files\1cv8\<версия>\bin:

  • 🟢 ragent.exe — агент сервера;
  • 🟢 rmngr.exe — менеджер кластера;
  • 🟢 rphost.exe — рабочий процесс;
  • 🟢 ras.exe и rac.exe — сервер и клиент администрирования;
  • 📄 conf\logcfg.xml — настройка технологического журнала (по умолчанию файла нет, его создают вручную);
  • 🛠️ radmin.dll — библиотека консоли администрирования, её регистрирует скрипт RegMSC.cmd из того же каталога.

Как узнать, какой файл запускает служба

Самый надёжный способ — спросить саму службу. В командной строке от администратора:

sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"

В строке BINARY_PATH_NAME будет полный путь и параметры. Типичный вид:

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

То же видно в services.msc: свойства службы → поле «Исполняемый файл».

Если служба запускает ragent.exe старой версии, а клиенты уже обновлены, база не откроется: версии клиента и сервера должны совпадать до последней цифры. Проверьте путь в BINARY_PATH_NAME, а не только список установленных программ.

Каталог srvinfo — где хранятся настройки

В srvinfo лежит всё, что агент «помнит» между перезапусками:

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

Файлы 1cv8wsrv.lst и 1CV8Clst.lst — самое ценное на сервере 1С после самой СУБД. Без них кластер «забывает» базы и администраторов. Копируйте их регулярно вместе с остальными резервными копиями.

Агент сервера в Linux: файлы, юниты и каталоги

Начиная с версии 8.3.20 платформа в Linux ставится в каталог по номеру версии:

/opt/1cv8/x86_64/8.3.24.1342/ragent
/opt/1cv8/x86_64/8.3.24.1342/rmngr
/opt/1cv8/x86_64/8.3.24.1342/rphost

В более старых версиях путь был общий для всех сборок — /opt/1C/v8.3/x86_64/.

Процессы работают от пользователя usr1cv8, который создаётся при установке. Каталог данных по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8, внутри та же структура, что и в Windows: 1cv8wsrv.lst, reg_1541, 1CV8Clst.lst.

Запуск через systemd

В современных версиях в каталоге платформы лежит готовый юнит-файл вида srv1cv8-<версия>@.service. Его подключают и включают так:

sudo systemctl link /opt/1cv8/x86_64/8.3.24.1342/srv1cv8-8.3.24.1342@.service
sudo systemctl enable --now srv1cv8-8.3.24.1342@default
systemctl status srv1cv8-8.3.24.1342@default

В старых сборках использовался init-скрипт /etc/init.d/srv1cv83 с настройками в отдельном конфигурационном файле.

Проверить, что агент действительно слушает порт:

ps -u usr1cv8 -f | grep ragent
ss -tlnp | grep 1540

После обновления платформы в Linux старый юнит продолжает запускать старую версию. Новую нужно подключить отдельно, а старую — остановить и отключить. Остановка службы обрывает все сеансы, поэтому делайте это в окно обслуживания.

Проверка и управление службой агента

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

  1. Жив ли процесс. Windows: tasklist /fi "imagename eq ragent.exe". Linux: ps -u usr1cv8 -f.
  2. Слушает ли порт. Windows: netstat -ano | findstr :1540. Если порт занят процессом с другим PID — там сидит другая служба или вторая версия платформы.
  3. Доступен ли порт по сети. С клиентской машины: Test-NetConnection имя_сервера -Port 1540 в PowerShell.
  4. Доступны ли 1541 и диапазон 1560–1591. Частая картина: агент отвечает, а рабочие процессы закрыты файрволом. Консоль видит кластер, а база не открывается.
  5. Что пишет журнал. Windows: «Просмотр событий» → «Журналы Windows» → «Приложение», источник с 1С в названии. Linux: journalctl -u srv1cv8-<версия>@default.

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

Если службу удалили или нужно поставить вторую версию рядом, ragent.exe умеет регистрировать себя сам:

"C:\Program Files\1cv8\8.3.24.1342\bin\ragent.exe" -instsrvc -usr .\USR1CV8 -pwd "Пароль" ^
  -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Удаление службы — тот же файл с ключом -rmsrvc, запуск — -start, остановка — -stop.

Две версии платформы на одном сервере

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

Экземпляр-port-regport-range-d
Основной154015411560:1591...\srvinfo
Тестовый254025412560:2591...\srvinfo2

Каталог данных у каждого свой. В строке подключения к базе второго экземпляра указывают порт: сервер:2541.

Права доступа и безопасность агента

Служба агента работает от отдельного пользователя — в Windows по умолчанию USR1CV8. Запускать её от администратора домена или LocalSystem — плохая идея: уязвимость в серверном коде получит слишком много прав.

Минимум, который нужен пользователю службы:

  • ✅ право «Вход в качестве службы» (локальная политика безопасности → «Назначение прав пользователя»);
  • ✅ полный доступ к каталогу srvinfo;
  • ✅ чтение и выполнение для каталога bin версии платформы;
  • ✅ доступ к каталогу, куда пишет технологический журнал, если он включён;
  • ✅ при работе с MS SQL по Windows-аутентификации — права в СУБД.

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

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

  • 🔐 администраторы центрального сервера — в консоли на узле «Администраторы» центрального сервера, хранятся в 1cv8wsrv.lst;
  • 🔐 администраторы кластера — в узле «Администраторы» кластера, хранятся в 1CV8Clst.lst.

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

Отладка и сеть

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

Ошибки службы агента и как их разобрать

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

Отдельная история — испорченный кеш сеансовых данных. Симптомы: странные ошибки при входе в одну базу, «зависшие» сеансы, которые не удаляются из консоли. Лечение:

  1. Предупредите пользователей: остановка службы обрывает все сеансы на всех базах кластера.
  2. Остановите службу агента.
  3. Удалите или перенесите в сторону папки snccntx* внутри reg_1541. Файлы .lst не трогайте.
  4. Запустите службу — кеш создастся заново.

Нагрузка и производительность сервера 1С

Если в диспетчере задач видно, что сервер 1С съел всю память, почти всегда виноват не ragent, а rphost. Агент занимает десятки мегабайт и почти не грузит процессор. Настраивать нужно рабочие процессы и окружение.

Что даёт реальный эффект:

  • 💾 srvinfo на быстром диске. Кеш сеансовых данных и журналы регистрации пишутся постоянно. На медленном HDD это заметно тормозит вход пользователей.
  • 🛡️ Исключение для антивируса. Добавьте в исключения srvinfo и каталог bin. Сканирование каждого обращения к файлам кеша даёт задержки «на ровном месте».
  • 📊 Лимиты памяти рабочих процессов. В свойствах рабочего сервера задаются «Временно допустимый объём памяти процессов» и интервал превышения. При превышении кластер перезапускает рабочий процесс мягко, без падения всего сервера.
  • 🔢 Число баз и сеансов на процесс. Там же, в свойствах рабочего сервера: ограничение количества ИБ и соединений на процесс. Для крупных баз полезно уменьшить, чтобы одна тяжёлая база не тормозила соседей.
  • 📝 Технологический журнал без лишнего. Журнал со сбором всех событий быстро забивает диск и грузит сервер. Включайте его под конкретную задачу и выключайте после.
  • 🔄 Журнал регистрации в формате SQLite. Для больших баз удобнее и быстрее старого текстового формата; переключается в Конфигураторе.

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

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

Можно ли запустить ragent.exe двойным щелчком без службы?
Можно из командной строки без ключа -srvc, процесс будет работать, пока открыто окно. Для отладки годится, для рабочего сервера — нет.
Где хранится список баз кластера?
В файле 1CV8Clst.lst внутри srvinfo\reg_1541. Порт в имени папки совпадает с портом менеджера кластера.
Зачем ставить ras, если есть консоль MMC?
ras нужен для утилиты rac, скриптов мониторинга и консолей под Linux. Консоль MMC работает через агент напрямую и без ras.
Почему в диспетчере задач несколько rphost.exe?
Это нормальная работа: кластер поднимает несколько рабочих процессов под нагрузку и по настройкам рабочего сервера.
Переносится ли кластер вместе с переустановкой платформы?
Да, если новая служба смотрит в тот же каталог srvinfo через ключ -d. Реестр кластера и список баз сохранятся.