Как работает ragent и что делать, когда сервер 1С:Предприятия не запускается
Содержание
Агент сервера 1С:Предприятия — это процесс ragent.exe, который запускается службой Windows (или демоном в Linux) и по умолчанию слушает TCP-порт 1540. Он принимает первое подключение клиента и консоли администрирования, хранит список кластеров и администраторов центрального сервера, а также запускает и перезапускает остальные процессы: менеджер кластера rmngr и рабочие процессы rphost.
Если агент не стартовал, не работает ни одна клиент-серверная база на этой машине, даже когда СУБД в порядке. Поэтому при любой ошибке вида «сервер 1С не обнаружен» сначала проверяют службу агента, потом порты и только после этого — кластер и базы. Всё ниже относится к платформе 8.3 и одинаково для любых конфигураций: БП, ЗУП, УТ, ERP.
Из чего состоит сервер 1С:Предприятия и где в нём агент
Серверная часть 1С — это не одна программа, а связка процессов. Агент стоит у входа и раздаёт подключения дальше.
Как проходит подключение клиента к базе:
- Клиент обращается к агенту на порт
1540и спрашивает, где живёт нужный кластер. - Агент отвечает адресом менеджера кластера (по умолчанию порт
1541). - Менеджер кластера находит базу и выбирает рабочий процесс.
- Клиент устанавливает соединение с рабочим процессом на порт из диапазона
1560–1591. - Рабочий процесс выполняет код конфигурации и обращается к СУБД (MS SQL, PostgreSQL) или к файлу базы.
Понятия, которые путают чаще всего:
- 🖥 Центральный сервер — машина, где работает агент и хранится реестр кластера.
- 🧩 Кластер — логическая группа: список баз, рабочие серверы, сеансы, профили безопасности. На одном агенте может быть несколько кластеров на разных портах.
- ⚙️ Рабочий сервер — компьютер в кластере, на котором запускаются
rphost. В простой установке это та же машина, что и центральный сервер.
Сервер 1С и сервер СУБД могут стоять на разных компьютерах. Агенту безразлично, где лежит SQL: он знает только строку подключения, записанную в свойствах информационной базы.
Процессы ragent, rmngr и rphost: роли и порты
Каждый процесс отвечает за свой участок. В диспетчере задач их видно по именам.
| Процесс | Что делает | Порт по умолчанию |
|---|---|---|
ragent.exe | агент: точка входа, список кластеров, запуск и контроль остальных процессов | 1540 |
rmngr.exe | менеджер кластера: реестр баз, сеансы, блокировки, распределение нагрузки | 1541 |
rphost.exe | рабочий процесс: выполнение кода, запросы к СУБД | 1560–1591 |
ras.exe | сервер администрирования для утилиты rac и сторонних консолей | 1545 |
Пара наблюдений из практики:
- 📈 Процессов
rmngrможет быть несколько: отдельные менеджеры обслуживают сервисы кластера, если в свойствах рабочего сервера включён флажок «Менеджер под каждый сервис». - 🔁 Агент сам перезапускает упавший
rphostиrmngr. Поэтому «убить процесс в диспетчере задач» — не способ остановить сервер : через секунды он появится снова. - 💾 Реальную нагрузку на память и процессор дают
rphost. Если сервер «тормозит», смотрят именно их, а не агент.
ras не запускается автоматически вместе с агентом. Его ставят отдельной службой, когда нужна командная строка rac или мониторинг.
Служба агента сервера: параметры запуска и несколько версий
При установке платформы с компонентом «Сервер 1С:Предприятия» мастер регистрирует службу с именем вида 1C:Enterprise 8.3 Server Agent (x86-64) и создаёт пользователя USR1CV8. Посмотреть параметры можно в services.msc → свойства службы → поле «Исполняемый файл».
Типичная строка запуска:
"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
Что означают ключи:
-port— порт агента;-regport— порт менеджера главного кластера;-range— диапазон портов рабочих процессов;-d— каталог служебных файловsrvinfo;-debug— разрешает отладку на сервере (на рабочем сервере без нужды его не держат).
Как перерегистрировать службу вручную
Это нужно после обновления платформы, когда служба продолжает запускать старую версию, или если служба пропала. Команды выполняются из каталога bin новой версии в командной строке от имени администратора.
cd "C:\Program Files\1cv8\8.3.24.1548\bin"
ragent.exe -rmsrvc
ragent.exe -instsrvc -usr .\USR1CV8 -pwd ПарольПользователя -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
ragent.exe -start
Остановка и удаление службы обрывает все сеансы пользователей на этом сервере. Делайте это вне рабочего времени и предупредите людей заранее.
Две версии платформы на одном сервере
Две службы не могут занимать одни и те же порты. Вторую версию регистрируют со сдвигом, например -port 2540 -regport 2541 -range 2560:2591 и отдельным каталогом -d. В строке подключения клиента тогда указывают сервер с портом: srv1c:2541.
Linux
В Linux агент тоже называется ragent и работает от пользователя usr1cv8. Начиная с 8.3.21 сервер запускается через systemd-юнит, в имени которого есть номер версии. Список установленных юнитов и их состояние покажет systemctl list-units | grep 1cv8, а журнал — journalctl -u <имя юнита>.
Настройка кластера: консоль администрирования и rac
Агент сам по себе почти не требует настройки. Всё, что влияет на работу баз, задают в кластере и рабочем сервере.
Консоль администрирования серверов
Консоль — оснастка MMC. Если она открывается с ошибкой или пустая, зарегистрируйте библиотеку той же версии, что и сервер:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
После этого в консоли: Central 1C:Enterprise 8.3 servers → правой кнопкой → Создать → Центральный сервер 1С:Предприятия 8.3, укажите имя компьютера и порт агента 1540.
Что настраивают в первую очередь
- Администраторы центрального сервера. Пока список пуст, управлять агентом может любой, кто достучался до порта. Добавьте хотя бы одного администратора.
- Администраторы кластера. Отдельный список, без них любой пользователь консоли может удалить базу из кластера.
- Свойства рабочего сервера: диапазон портов, ограничения памяти рабочих процессов, количество баз и соединений на процесс, требования назначения функциональности.
- Перезапуск рабочих процессов в свойствах кластера: интервал перезапуска и допустимый объём памяти помогают бороться с утечками на долгих сеансах.
- Блокировка регламентных заданий и начала сеансов — в свойствах конкретной базы, на время обновления.
Утилита rac
rac работает через ras, а не напрямую с агентом. Сначала запустите сервер администрирования:
ras.exe cluster --service --port=1545 localhost:1540
Затем базовые команды:
rac localhost:1545 cluster list
rac localhost:1545 server list --cluster=<id кластера>
rac localhost:1545 process list --cluster=<id кластера>
rac localhost:1545 session list --cluster=<id кластера>
rac localhost:1545 infobase summary list --cluster=<id кластера>
Если в кластере заданы администраторы, к командам добавляют --cluster-user и --cluster-pwd. Полный список параметров выводит rac help.
Логи и диагностика агента сервера 1С
Когда агент молчит, информацию собирают из трёх мест.
Журнал событий Windows. eventvwr.msc → Журналы Windows → Приложение, фильтр по источнику с «1C:Enterprise». Там видно, почему служба не стартовала: занят порт, нет доступа к каталогу, не найдена библиотека.
Технологический журнал. Включается файлом logcfg.xml в каталоге conf платформы (например, C:\Program Files\1cv8\conf). Минимальная настройка для поиска исключений:
<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="PROC"/>
</event>
<property name="all"/>
</log>
<dump create="true" location="D:\1c_dumps" type="3"/>
</config>
Событие PROC показывает старт и остановку процессов сервера, EXCP — исключения. Параметр history задаёт, сколько часов хранить логи.
Технологический журнал без фильтров за день съедает десятки гигабайт. Указывайте диск с запасом места и выключайте журнал, когда причина найдена.
Сетевые проверки. Слушает ли агент порт:
netstat -ano | findstr :1540
tasklist /fi "imagename eq ragent.exe"
С клиентского компьютера доступность проверяет Test-NetConnection srv1c -Port 1540 в PowerShell. Если 1540 открыт, а 1560–1591 нет, клиент найдёт сервер, но не подключится к базе.
Ошибки запуска агента сервера и как их устранить
Ниже — симптомы, которые встречаются при запуске службы и первом подключении.
Кэш сервера: крайняя мера
Если после аварийного выключения процессы стартуют и падают, а в журнале ошибки чтения сеансовых данных, помогает очистка сеансовых данных кластера.
- Предупредите пользователей: все сеансы на сервере будут разорваны.
- Остановите службу агента.
- Скопируйте каталог
srvinfoцеликом в резервную папку. - В каталоге
srvinfo\reg_1541удалите папкиsnccntx*. Файлы1CV8Clst.lstи1cv8wsrv.lstне трогайте: в них список баз кластера и администраторы. - Запустите службу и проверьте подключение.
Если после чистки базы пропали из консоли, значит, задет 1CV8Clst.lst. Верните его из копии, сделанной на шаге 3, — пересоздавать кластер не нужно.
Безопасность и сеть: порты, брандмауэр, учётная запись службы
Агент открывает управление всем сервером, поэтому защищать его нужно не хуже, чем СУБД.
Брандмауэр. Разрешите входящие TCP-подключения только из сети пользователей:
| Порт | Кому нужен |
|---|---|
1540 | клиенты, консоль администрирования |
1541 | клиенты, другие серверы кластера |
1560–1591 | клиенты (соединение с рабочими процессами) |
1545 | только машины администраторов, если используется rac |
Правило для Windows можно создать одной командой:
netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540,1541,1560-1591
Учётная запись службы. Не запускайте агент от LocalSystem или доменного администратора. Пользователю USR1CV8 достаточно права «Вход в качестве службы», полного доступа к каталогу srvinfo и к каталогу технологического журнала. Права на SQL-сервер выдаются отдельно, учётной записи, указанной в свойствах базы.
Пароли администраторов. Задайте администраторов и для центрального сервера, и для кластера. Без этого любой сотрудник с установленной консолью может завершать чужие сеансы и снимать базы с регистрации.
Профили безопасности. В консоли у кластера есть узел Профили безопасности. Профиль ограничивает, к каким каталогам, COM-объектам и внешним компонентам может обращаться код базы. Его назначают базе в её свойствах — полезно, если на сервере крутятся базы с доработками от разных подрядчиков.
Доступ снаружи. Порты 1540–1591 не публикуют в интернет. Удалённым сотрудникам дают VPN, RDP-шлюз или веб-клиент через публикацию на веб-сервере.
Частые вопросы
Можно ли запустить сервер 1С без службы, вручную?
ragent.exe с теми же ключами, но без -srvc, запускается в консоли от текущего пользователя. Так удобно отлаживать старт: ошибки видно сразу. Закрыли окно — сервер остановился.Сколько рабочих процессов rphost нужно?
Почему в диспетчере задач несколько процессов rphost?
Где лежит список баз кластера?
1CV8Clst.lst в каталоге srvinfo\reg_1541. Его включают в резервное копирование вместе со всей папкой srvinfo.Можно ли сменить порт 1540 на другой?
-port, -regport и -range. Клиенты при нестандартном порту указывают его в адресе сервера, например srv1c:2541.