Агент сервера 1С: установка, порты, администраторы кластера и диагностика

· 9 мин

Содержание

Агент сервера 1С не нужно «настраивать» в привычном смысле: это служба ragent, у которой пять параметров запуска. Остальное делается в кластере через консоль администрирования. Служба стартует, слушает порт 1540, создаёт кластер на 1541, а рабочие процессы получают порты из диапазона 1560–1591. Если эти порты открыты, а у пользователя службы есть права на каталог данных, кластер работает.

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

Что должно быть на сервере до установки

Агент входит в серверную поставку платформы. Версия платформы на сервере и на клиентах должна совпадать по первым трём числам, например 8.3.24. Разница в четвёртом числе допустима, но надёжнее держать одинаковую сборку.

Перед установкой проверьте:

  • 🧩 Разрядность. Для серверных баз ставят 64-разрядную сборку. Служба называется «Агент сервера 1С:Предприятия 8.3 (x86-64)».
  • 🧠 Память. Ориентир для старта: 2 ГБ на каждые 10–15 одновременных пользователей плюс запас под СУБД, если она на этой же машине. На тестовом стенде хватит 4 ГБ.
  • 💾 Диск. Каталог данных кластера (в нём лежит реестр кластера и журналы) держите на локальном быстром диске. Сетевая папка не подходит.
  • 🌐 Имя сервера. Клиент подключается по имени, которое вернёт ему кластер. Это имя должно разрешаться через DNS или файл hosts на каждом клиенте.
  • 🔑 Лицензия. Серверу нужна своя лицензия: программная (активируется на сервере) или аппаратная. Без неё рабочие процессы не получат лицензий, и базы не откроются.

Если на сервере уже стоит другая версия платформы, вторую ставят рядом. Но запускать два агента на одинаковых портах нельзя — об этом в разделе про порты.

Установка на Windows: служба и пользователь

Запустите установщик платформы и отметьте компонент «1С:Предприятие — сервер». Мастер предложит установить агент как службу. Соглашайтесь.

По умолчанию установщик создаёт локального пользователя USR1CV8 и запускает службу от его имени. Это правильный вариант для одиночного сервера. Домен нужен, только если базы лежат на ресурсах, куда нужен доступ по сети.

Что проверить после установки:

  1. Откройте services.msc и найдите службу агента сервера. Тип запуска — «Автоматически».
  2. Убедитесь, что она запущена, а в колонке «Вход от имени» стоит .\USR1CV8 или ваша учётная запись.
  3. На каталог данных кластера у этого пользователя должны быть права «Полный доступ». Каталог по умолчанию лежит в C:\Program Files\1cv8\srvinfo. Лучше вынести его на отдельный том, например D:\srvinfo.

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

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

Путь и номер сборки подставьте свои. Старую службу перед этим удаляют ключом -remsrvc.

Не делайте пользователя службы администратором сервера. Для 1С достаточно прав на каталог данных и на каталоги с файловыми базами, если они есть.

Установка на Linux: пакеты, пользователь, служба

На Linux серверная часть ставится из пакетов deb или rpm, которые лежат в дистрибутиве платформы для Linux. Нужны пакеты общих библиотек, самого сервера и, если планируете администрировать кластер с этой же машины, серверной администрации.

Установщик создаёт пользователя usr1cv8 и группу grp1cv8. Платформа ставится в /opt/1cv8/x86_64/<номер_сборки>/. Данные кластера по умолчанию кладутся в домашний каталог пользователя usr1cv8.

Параметры запуска хранятся в файле окружения службы. В Debian и Ubuntu это обычно /etc/default/srv1cv83, в семействе RPM — /etc/sysconfig/srv1cv83. Внутри задают каталог данных, порты и диапазон. Конкретные имена переменных смотрите в самом файле: они подписаны комментариями.

Перед первым запуском проверьте две вещи:

  • 🗣️ Локаль. В системе должна быть сгенерирована ru_RU.UTF-8. Без неё на кириллических именах баз и в сообщениях идут сбои.
  • 📂 Владелец каталога данных. Если вы вынесли данные на другой раздел, выдайте права:
sudo mkdir -p /data/srvinfo
sudo chown -R usr1cv8:grp1cv8 /data/srvinfo

Если на машине systemd и скрипт init.d ведёт себя капризно, службу можно описать своим юнитом. Он также даёт автоперезапуск после падения:

[Unit]
Description=1C:Enterprise server agent
After=network.target

[Service]
User=usr1cv8
Group=grp1cv8
LimitNOFILE=65536
ExecStart=/opt/1cv8/x86_64/8.3.24.1368/ragent -d /data/srvinfo -port 1540 -regport 1541 -range 1560:1591
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Сохраните в /etc/systemd/system/srv1cv83.service, затем выполните systemctl daemon-reload и systemctl enable --now srv1cv83. Если уже работает штатный скрипт, остановите и отключите его, иначе два агента подерутся за порт.

Лимит открытых файлов (LimitNOFILE) важен при сотнях сеансов. Значение по умолчанию в 1024 быстро заканчивается, и сервер начинает обрывать соединения.

Порты: что открыть и как проверить

Агент и кластер общаются с клиентами по нескольким портам. Все они TCP.

ПортЧто слушаетОткуда нужен доступ
1540агент сервера (ragent)клиенты, консоль администрирования
1541главный менеджер кластера (rmngr)клиенты, консоль
1560–1591рабочие процессы (rphost)клиенты
1545сервер администрирования ras (если запущен)только админские машины

Диапазон 1560–1591 — это 32 порта. Каждому рабочему процессу нужен свой порт, и ещё часть уходит на соединения. Если у вас много рабочих серверов или процессов, расширьте диапазон ключом -range.

Откройте порты в фаерволе. На Linux с ufw:

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp

На Windows добавьте правило входящих подключений для этих же портов в брандмауэре.

Проверьте, что служба их слушает:

ss -tlnp | grep -E '1540|1541|156|157|158|159'

На Windows: netstat -ano | findstr "1540 1541". Если порт слушает не ragent, а другой процесс, причина найдена.

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

Второй агент (другой версии) запускают на другом наборе портов. Например, -port 2540 -regport 2541 -range 2560:2591. Подключаясь, клиент указывает в строке соединения server:2540. Забыли поменять — вторая служба не запустится, а в журнале будет жалоба на занятый порт.

Кластер: создание и параметры

Кластер создаётся автоматически при первом запуске агента. Сначала он один и называется «Локальный кластер», порт 1541. Для управления нужна консоль администрирования серверов 1С:Предприятия. Она ставится вместе с платформой на Windows или отдельным пакетом на Linux.

Подключение к серверу в консоли:

  1. В дереве выберите «Центральные серверы 1С:Предприятия».
  2. Правая кнопка → «Создать» → «Центральный сервер 1С:Предприятия».
  3. В поле «Имя» введите сервер:1540. Если консоль на той же машине, подойдёт localhost:1540.
  4. Раскройте созданный сервер: внутри будут «Кластеры» и «Рабочие серверы».

Что стоит поменять у кластера сразу:

  • ⏱️ Перезапуск рабочих процессов. В свойствах кластера задайте интервал перезапуска и допустимый объём памяти процесса. Это защита от утечек: «забывшиеся» процессы по расписанию пересоздаются сами. Не делайте интервал слишком частым, чтобы пользователей не выбрасывало посреди дня.
  • 🧮 Число соединений на процесс. В свойствах рабочего сервера ограничьте нагрузку на один rphost. Тяжёлые базы лучше разнести по разным процессам.
  • 🛡️ Уровень безопасности. Параметр защищённого соединения кластера включают, если сервер доступен не только из локальной сети.

Реестр кластера лежит в подкаталоге reg_1541 внутри каталога данных. Не правьте и не удаляйте эти файлы вручную. Копию делайте при остановленной службе.

Администраторы агента и кластера: права и аутентификация

У платформы два уровня администраторов, и их часто путают.

Администраторы центрального сервера управляют агентом: создают и удаляют кластеры, добавляют рабочие серверы. Администраторы кластера управляют базами, сеансами, процессами внутри конкретного кластера.

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

  1. Откройте консоль, выберите центральный сервер, раздел «Администраторы».
  2. Добавьте администратора с типом аутентификации «Пароль», задайте имя и пароль.
  3. Повторите то же в разделе «Администраторы» самого кластера.

После этого консоль будет запрашивать вход. Для скриптов используйте утилиту rac:

rac cluster list --agent-user=admin --agent-pwd=ПАРОЛЬ сервер:1545

Для неё нужен запущенный ras:

ras cluster --port=1545 сервер:1540

Не открывайте 1545 во внешний мир. Достаточно одного адреса вашей админской машины.

Отдельный уровень — пользователи информационных баз. Они не связаны с администраторами кластера: пользователя базы не пустят в консоль, а администратора кластера — в базу без записи в её списке пользователей.

Диагностика: служба не стартует, кластер недоступен

Первое действие при любой проблеме — запустить агент вручную в консоли и посмотреть, что он напишет. На Linux:

sudo -u usr1cv8 /opt/1cv8/x86_64/8.3.24.1368/ragent -d /data/srvinfo -port 1540 -regport 1541 -range 1560:1591 -debug

Ключ -debug включает отладку для этого запуска. Нужен он только для диагностики, в боевой строке его не оставляйте. На Windows запустите ragent.exe с ключом -d из командной строки от имени администратора.

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

Технологический журнал

Когда сбой не воспроизводится вручную, включайте технологический журнал. Он настраивается файлом logcfg.xml в каталоге conf платформы: на Windows это папка conf рядом с bin, на Linux — /opt/1cv8/conf/. В файле указывают, какие события писать (EXCP — исключения, CONN — соединения) и куда складывать логи.

Правила обращения с ним:

  • 📏 Включайте только нужные события. Журнал на CALL и DBMSSQL разрастается на гигабайты в час.
  • 🗑️ Задайте срок хранения в history или чистите каталог по расписанию.
  • 📍 Складывайте журнал на отдельный диск, не на тот, где лежит реестр кластера.

После того как ошибка поймана, верните настройку в исходное состояние.

Эксплуатация: что делать, чтобы не возвращаться к теме

Настроенный сервер живёт месяцами без вмешательства, если за ним следят по минимуму:

  • Следите за свободным местом в каталоге данных и журналов. Заполненный диск обрушивает кластер без внятной ошибки.
  • Обновляйте платформу на сервере вместе с клиентами. После обновления перезапустите службу и проверьте, что в консоли виден кластер.
  • Делайте резервную копию каталога данных кластера при остановленной службе. Хотя бы раз после значимой смены настроек.
  • Тестируйте изменения портов и пользователей на тестовой машине, а не на боевом сервере в рабочее время.
  • Храните параметры запуска (строку ragent, файл окружения, юнит) в вашей админской документации. Через год вы их уже не вспомните.

Сразу после настройки подключитесь тестовой базой с клиентской машины из другой подсети. Так вы проверите порты и разрешение имени, а не только доступность сервера с самого сервера.

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

Можно ли изменить порты 1540 и 1541?
Да. Порт агента задаёт ключ -port, порт главного менеджера кластера — -regport, диапазон рабочих процессов — -range. После смены откройте новые порты в фаерволе и укажите новый порт агента в подключении клиентов.
Нужно ли перезапускать службу после смены параметров?
Да. Параметры запуска агент читает один раз при старте. Консольные настройки кластера (перезапуск процессов, число соединений) применяются без перезапуска службы.
Что будет, если не задать администратора кластера?
Консоль подключится без пароля. Для сервера в изолированной сети это допустимо на время теста. В боевом контуре администратора задают сразу.
Агент и сервер администрирования `ras` — это одно и то же?
Нет. Агент (ragent) обслуживает клиентов и кластер. ras — отдельный процесс для утилиты rac и сторонних скриптов. Без него консоль тоже работает: она подключается к агенту напрямую.
Работает ли агент сервера без отдельной СУБД?
Нет, для серверных баз нужна клиент-серверная СУБД. Агент управляет кластером, а данные баз хранятся в PostgreSQL или другой поддерживаемой СУБД.