Менеджер кластера rmngr: запуск агента 1С в Windows и Linux

· 9 мин

Содержание

Чтобы запустить «шину» сервера 1С, то есть менеджер кластера rmngr, отдельно его стартовать не нужно: достаточно запустить агент сервера ragent. В Windows это служба «Агент сервера 1С:Предприятия 8.3», в Linux — юнит systemd srv1cv8-<версия>@default. Агент сам поднимает rmngr на порту 1541 и рабочие процессы rphost из диапазона 1560–1591.

Ручной запуск ragent из командной строки выбирают для отладки или нестандартных портов. Службу — для постоянной работы. Консоль администрирования подключается уже к работающему агенту и сама ничего не запускает.

«1С:Шина» — это ещё и отдельный продукт фирмы 1С для интеграции систем. Здесь речь о серверном кластере платформы 8.3: агент, менеджер кластера и рабочие процессы.

Как устроен сервер 1С: агент, менеджер кластера, рабочие процессы

Сервер 1С:Предприятия — это не один процесс, а связка из трёх. У каждого своя роль и свой порт.

ПроцессРольПорт по умолчанию
ragentАгент сервера: принимает первое подключение клиента и консоли, запускает остальные процессы1540
rmngrМенеджер кластера: реестр баз, сеансы, блокировки, распределение нагрузки1541
rphostРабочий процесс: выполняет серверный код конфигурации1560–1591
rasСервер администрирования для утилиты rac (запускается отдельно)1545

Путь клиента такой:

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

Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера. Если брандмауэр пропускает только 1540 и 1541, клиент увидит ошибку на третьем шаге.

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

Запуск сервера 1С в Windows через службу

Установщик платформы создаёт службу, если при установке отмечен компонент «Сервер 1С:Предприятия 8» и флажок установки как сервиса Windows.

Запуск через оснастку «Службы»

  1. Нажмите Win+R, введите services.msc.
  2. Найдите «Агент сервера 1С:Предприятия 8.3 (x86-64)». Если на сервере стоит несколько версий платформы, в имени будет номер версии.
  3. Откройте свойства и проверьте тип запуска — «Автоматически».
  4. На вкладке «Вход в систему» должна стоять учётная запись USR1CV8 или другая служебная запись с паролем.
  5. Нажмите «Запустить».

Запуск из командной строки

Точное имя службы отличается между версиями, поэтому сначала найдите его:

sc query state= all | findstr /i "1C:Enterprise"

Затем запустите службу по найденному имени (командная строка от имени администратора):

net start "1C:Enterprise 8.3 Server Agent (x86-64)"

В PowerShell то же самое:

Get-Service | Where-Object DisplayName -like "*1С*"
Start-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"

Если службы нет

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

cd "C:\Program Files\1cv8\8.3.24.1467\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
ragent.exe -start

Подставьте свою версию платформы. Ключ -rmsrvc удаляет службу, -stop останавливает её.

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

Открыть порты в брандмауэре Windows

Служба может работать идеально, а клиенты с других компьютеров всё равно не подключатся. Причина — закрытые порты. Одно правило закрывает агент, менеджер кластера и рабочие процессы:

netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591

Если вы меняли диапазон ключом -range, впишите в правило свой диапазон. Порт 1545 добавляйте, только если с других машин будут подключаться к ras.

Ручной запуск агента и менеджера кластера в Linux

В Linux порядок зависит от того, как ставилась платформа.

Установка единым дистрибутивом (systemd)

Современные версии ставятся в /opt/1cv8/x86_64/<версия>/. Рядом с бинарниками лежит шаблон юнита srv1cv8-<версия>@.service. Его нужно подключить к systemd:

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

Экземпляр default использует стандартные порты 1540/1541 и диапазон 1560–1591. Параметры экземпляра задаются через переменные окружения юнита; посмотреть их можно командой systemctl cat.

Старые пакетные установки (init-скрипт)

Если платформа стоит из deb- или rpm-пакетов старых сборок, используется скрипт:

sudo /etc/init.d/srv1cv83 start

Порты и каталог данных для него задаются в конфигурационном файле скрипта (в RHEL-подобных системах — /etc/sysconfig/srv1cv83).

Запуск вручную без службы

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

sudo -u usr1cv8 /opt/1cv8/x86_64/8.3.24.1467/ragent \
  -port 1540 -regport 1541 -range 1560:1591 \
  -d /home/usr1cv8/.1cv8/1C/1cv8 -daemon

Через несколько секунд в списке процессов должны появиться ragent и rmngr:

ps -eo user,pid,cmd | grep -E "ragent|rmngr|rphost" | grep -v grep

Параметры командной строки ragent

Одни и те же ключи работают при ручном запуске, в параметрах службы Windows и в systemd. Основные:

КлючЧто задаётПример
-portПорт агента-port 1540
-regportПорт менеджера кластера (rmngr)-regport 1541
-rangeДиапазон портов для процессов кластера-range 1560:1591
-dКаталог данных кластера (srvinfo)-d "D:\srvinfo"
-debugРазрешает отладку серверного кода-debug
-srvcРабота в режиме службы Windowsставит установщик
-daemonРабота в фоне (Linux)-daemon

Второй кластер на одном сервере

Частая задача — поднять рядом второй экземпляр, например для тестовой версии платформы. Ему нужны свои порты и свой каталог:

ragent.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 2540 -regport 2541 -range 2560:2591 -d "C:\Program Files\1cv8\srvinfo2"

Клиент тогда подключается к серверу как ИмяСервера:2541. В строке подключения указывают порт менеджера кластера, а не агента.

Отладка на сервере

Ключ -debug включает возможность отлаживать серверный код из Конфигуратора. На рабочем сервере держать его включённым постоянно не стоит: это лишняя нагрузка. Чтобы добавить ключ к службе Windows, проще всего перерегистрировать её с нужными параметрами (-rmsrvc, затем -instsrvc).

Консоль сервера 1С: как открыть и подключиться

Консоль «Администрирование серверов 1С Предприятия» — оснастка MMC. Она ставится вместе с компонентом «Администрирование сервера 1С:Предприятия» и появляется в меню «Пуск».

Если ярлык есть, но оснастка не открывается или пишет об ошибке создания компонента, зарегистрируйте библиотеку той версии платформы, на которой работает сервер:

regsvr32 "C:\Program Files\1cv8\8.3.24.1467\bin\radmin.dll"

После этого:

  1. Откройте консоль, щёлкните правой кнопкой по «Central 1C:Enterprise 8.3 servers».
  2. Выберите создание нового центрального сервера.
  3. Укажите имя компьютера и порт агента — 1540 (не 1541).
  4. Раскройте сервер: в узле «Кластеры» появится кластер с портом 1541, внутри — базы, сеансы и рабочие процессы.

Версия radmin.dll должна совпадать с версией сервера. Если на ПК администратора стоит другая платформа, консоль подключится с ошибкой несовпадения версий.

Консоль через ras и rac

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

/opt/1cv8/x86_64/8.3.24.1467/ras cluster --daemon --port=1545 localhost:1540

Потом проверяют кластер:

/opt/1cv8/x86_64/8.3.24.1467/rac cluster list localhost:1545

В Windows ras обычно регистрируют отдельной службой через sc create с ключом --service. Остальные подкоманды rac смотрите в справке rac help.

Почему агент или rmngr не запускается: диагностика

Начинайте с трёх проверок: что пишет служба, кто держит порты, есть ли процессы.

Проверка портов

Windows:

netstat -ano | findstr ":1540 :1541"
tasklist /fi "PID eq 4321"

Linux:

sudo ss -tlnp | grep -E ":154[01]"

Если порт занят чужим процессом, агент не стартует или стартует без менеджера кластера. Освободите порт или переведите экземпляр на другие порты ключами из таблицы выше.

Где смотреть ошибки

  • 📄 Windows — «Просмотр событий» → «Журналы Windows» → «Приложение» и «Система», источник с названием 1С.
  • 📄 Linux — journalctl -u srv1cv8-8.3.24.1467@default -n 100.
  • 🧾 Подробнее — технологический журнал через logcfg.xml в каталоге conf платформы.
Диагностика: выберите симптом

Очистка кэша кластера

Если после аварийного завершения сервер ведёт себя странно (зависшие сеансы, ошибки при входе), помогает удаление сеансовых данных. Остановите службу, затем удалите папки snccntx* внутри srvinfo\reg_1541 и запустите службу снова.

Делайте это только при остановленной службе, когда пользователи вышли из баз. Файл 1CV8Clst.lst (список баз кластера) не трогайте: без него кластер «забудет» все зарегистрированные базы.

Автозапуск и контроль работы сервера 1С

Сервер должен подниматься сам после перезагрузки и после падения процесса.

Windows

Тип запуска службы — «Автоматически». На вкладке «Восстановление» в свойствах службы задайте перезапуск при первом и втором сбое. То же из командной строки:

sc failure "1C:Enterprise 8.3 Server Agent (x86-64)" reset= 86400 actions= restart/60000/restart/60000//

Здесь служба перезапускается через минуту после первого и второго сбоя, счётчик сбоев сбрасывается раз в сутки.

Linux

systemctl enable уже включает автозапуск. Чтобы systemd перезапускал упавший агент, добавьте переопределение:

sudo systemctl edit srv1cv8-8.3.24.1467@default

и впишите:

[Service]
Restart=on-failure
RestartSec=30

Простой мониторинг

Достаточно проверять порт агента и наличие кластера. Пример для cron в Linux:

#!/bin/bash
# check_1c.sh: пишет в syslog, если агент 1С не отвечает на 1540
if ! ss -tln | grep -q ":1540 "; then
  logger -t check_1c "Агент сервера 1С не слушает порт 1540"
fi

В Windows аналогичную проверку делает Test-NetConnection -ComputerName localhost -Port 1540 в PowerShell. Результат отправляйте в свою систему мониторинга (Zabbix, почта, мессенджер).

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

Можно ли запустить rmngr без ragent?
Нет. Менеджер кластера — дочерний процесс агента. Его запускает и перезапускает ragent, поэтому управлять нужно агентом или службой.
Почему в консоли я подключаюсь к 1540, а в базе указываю 1541?
Консоль работает с агентом сервера (1540). В строке подключения базы указывают кластер, то есть порт менеджера (1541). Порт можно не писать, если он стандартный.
Нужна ли лицензия, чтобы запустить сервер 1С?
Служба агента стартует и без неё, но пользователи не смогут работать в базах кластера: для этого нужна лицензия на сервер 1С:Предприятия.
Сколько процессов rphost должно быть после запуска?
Сразу после старта может быть один рабочий процесс или ни одного — это нормально. Новые процессы появляются по мере подключения пользователей и по настройкам рабочего сервера.
Можно ли запустить сервер 1С двух версий на одном компьютере?
Можно, если у каждого экземпляра свои порты (-port, -regport, -range) и свой каталог -d. Клиент должен быть той же версии, что и сервер, к которому он подключается.