Регистрация рабочего сервера в кластере 1С через консоль и ras
Содержание
Чтобы зарегистрировать сервер
1С в кластере, запустите на нём службу агента (ragent), откройте в консоли администрирования кластер, выберите «Рабочие серверы» и создайте новый сервер с адресом агента и портом 1540. То же делается из командной строки: поднимаете ras, затем вызываете rac server insert.
Чаще всего регистрация ломается не на самой команде, а раньше: закрытый порт, другая версия платформы на втором сервере или служба, запущенная не от того пользователя. Поэтому начинаем с подготовки, потом идут оба способа, настройка параметров и разбор сбоев.
Что проверить до регистрации сервера в кластере
Кластер 1С — это группа процессов, которой управляет агент сервера. Первый кластер создаётся сам при первом запуске агента на машине. Когда вы «регистрируете сервер», вы добавляете в существующий кластер ещё один рабочий сервер: другую машину со своим агентом.
Перед этим сверьте четыре вещи.
- Версия платформы. На всех серверах кластера стоит одна и та же сборка, вплоть до последнего числа. Разные сборки в одном кластере не работают.
- Служба агента запущена. В Windows это служба «Агент сервера 1С:Предприятия 8.3», в Linux — сервис с
ragent. Проверьте, что она в статусе «Выполняется» и стартует автоматически. - Имя сервера разрешается. С машины, где стоит консоль, имя второго сервера должно превращаться в адрес. Проверьте
ping имя-сервера. Если DNS не настроен, пропишите запись в файлhosts, а лучше сразу в DNS. - Порты открыты. Между серверами и консолью должны проходить нужные порты.
| Порт | Что слушает | Кому нужен |
|---|---|---|
1540 | агент сервера (ragent) | консоль, клиенты, другие серверы кластера |
1541 | менеджер кластера (rmngr) | клиенты и другие серверы |
1560–1591 | рабочие процессы (rphost) | клиенты и другие серверы |
1545 | сервер администрирования (ras) | консоль и утилита rac |
Диапазон рабочих процессов задаётся в свойствах рабочего сервера, так что в вашей установке он может быть другим. Проверить порт с клиентской машины в Windows можно командой Test-NetConnection имя-сервера -Port 1540 в PowerShell.
Если на серверах включён брандмауэр Windows, правило для порта 1540 нужно создать на обоих. Частый случай: первый сервер открыт, на втором правило забыли, и консоль пишет, что сервер недоступен.
Регистрация рабочего сервера через консоль администрирования
Это основной способ, и он работает без ras. Консоль подключается к центральному серверу по порту 1540.
Подключение к центральному серверу
- Запустите «Администрирование серверов 1С:Предприятия». Она ставится вместе с платформой на сервер или как отдельный компонент на рабочее место администратора.
- В дереве выберите «Центральные серверы 1С:Предприятия 8.3». Если вашего сервера там нет, вызовите на узле контекстное меню и создайте новый центральный сервер.
- Укажите имя или адрес первого сервера. Порт по умолчанию
1540можно не писать. - Раскройте узел. Появятся «Кластеры», «Администраторы» и «Рабочие серверы».
Добавление второго сервера
- Откройте нужный кластер. Если у кластера задан администратор, консоль спросит имя и пароль.
- Выберите узел «Рабочие серверы» и в контекстном меню создайте новый рабочий сервер.
- В форме укажите имя компьютера со службой агента и порт агента
1540. Имя лучше писать так, как оно записано в DNS. - Задайте диапазон портов рабочих процессов. Если на сервере будут стоять и другие службы, проверьте, что диапазон не пересекается с их портами.
- Сохраните. Сервер появится в списке со статусом работы.
После добавления кластер сам решит, куда направлять новые сеансы. Если нужно, чтобы второй сервер брал только часть нагрузки, откройте его свойства и настройте требования назначения функциональности. Это отдельная тема, но знайте, что там же задаётся, какие сервисы сервер вообще обслуживает.
Пока сервер не прошёл проверку связи, не включайте его в боевую нагрузку. Сначала откройте тестовую базу и убедитесь, что сеанс на нём поднимается.
Как зарегистрировать сервер через утилиту ras
ras — это сервер администрирования. Он принимает команды от консоли и от утилиты rac. Нужен он, когда регистрацию надо автоматизировать или консоли под рукой нет.
Запуск ras
Файл лежит в каталоге bin установленной платформы. Базовый запуск, который подключается к локальному агенту:
ras.exe cluster --port=1545 localhost:1540
В Linux команда та же, без расширения. Параметр --port — порт самого ras, а в конце стоит адрес агента, которым он будет управлять. Для постоянной работы ras оформляют как службу, иначе он закроется вместе с сеансом.
Команды rac для сервера
Утилита rac лежит рядом и работает как клиент ras. Сначала узнайте идентификатор кластера:
rac cluster list localhost:1545
В выводе будет строка cluster с идентификатором в виде GUID. Дальше список серверов кластера:
rac server list --cluster=<идентификатор> localhost:1545
Добавление нового сервера делает команда server insert. Основные параметры: имя сервера, адрес и порт агента, диапазон портов процессов. Точный набор ключей зависит от сборки платформы, поэтому сверьтесь со справкой:
rac server help
Если у кластера есть администратор, добавьте параметры --cluster-user и --cluster-pwd. Пароль в командной строке виден в списке процессов, поэтому в скриптах хранить его в открытом виде не стоит.
Идентификаторы в rac — это GUID, и переписывать их руками неудобно. Сохраняйте нужные в переменные скрипта и подставляйте оттуда.
Удаление сервера из кластера — rac server remove. Перед ним проверьте, что на сервере нет активных сеансов, иначе пользователи вылетят.
Параметры рабочего сервера, которые стоит выставить
Добавить сервер — полдела. Параметры по умолчанию подходят для пробы, но не для нагрузки.
- Диапазон портов — достаточно широкий, чтобы вместить все рабочие процессы. По умолчанию это
1560–1591. - Объём памяти рабочих процессов — допустимое значение, после которого процесс перезапускается. Без лимита одна утечка может съесть всю оперативную память.
- Количество соединений на процесс и количество информационных баз на процесс — управляют тем, как делятся нагрузка и изоляция баз.
- Безопасное потребление памяти за вызов — защита от запросов, которые просят слишком много за один раз.
- Каталог сервера — место, где хранятся служебные файлы кластера. Он должен быть на быстром диске, а права на запись есть у пользователя, от которого запущена служба.
Параметры отказоустойчивости тоже находятся в свойствах рабочего сервера, и менять их стоит осознанно, понимая, зачем.
Пользователь, от которого работает служба, — отдельная история. Это должна быть учётная запись с правом на каталог платформы и на каталог данных кластера. Если служба стартует под «Локальной системой», а каталог на сетевом ресурсе, доступа не будет.
Если не получается: ошибки при регистрации
Вот симптомы, с которыми приходят чаще всего, и что проверять в первую очередь.
1540 в брандмауэре обоих серверов. Затем убедитесь, что имя сервера разрешается именно с компьютера, где открыта консоль.ras запущен и слушает 1545, а адрес в команде совпадает с тем, на котором он поднят.Если ничего из списка не подошло, откройте журнал службы агента. В каталоге данных кластера лежат подкаталоги журнала технологического журнала и служебные файлы reg_1541 и подобные. Ошибки старта процессов и проблемы с портами видны именно там.
Управление списком серверов кластера
Когда серверов больше одного, пригодятся три операции: посмотреть состояние, поменять роль и вывести сервер из работы.
Посмотреть состояние. В консоли это узел «Рабочие серверы» и вложенные «Рабочие процессы». В командной строке — rac server list и rac process list. Для процессов видно, сколько соединений держит каждый, и какой объём памяти он занимает.
Остановить приём новых сеансов. Перед обслуживанием сервера в его свойствах можно запретить использование. Новые подключения пойдут на другие серверы, старые доработают. Затем дождитесь, пока пользователи выйдут сами.
Удалить сервер. Удаляют его из списка рабочих серверов командой в консоли или rac server remove. Служба агента на самой машине продолжит работать, и если она была единственной, на ней останется собственный кластер.
Если сервер был центральным (менеджер кластера работал на нём), его удаление меняет схему работы всего кластера. Сначала перенесите менеджер на другой сервер.
Автоматизация регистрации скриптом
Разовую регистрацию проще сделать мышкой. Скрипт нужен, если вы разворачиваете серверы пачками или поднимаете окружение для тестов.
Минимальный сценарий на bat. Он получает идентификатор кластера, подставляет его и добавляет сервер. Названия и адреса замените на свои.
@echo off
set RAC="C:\Program Files\1cv8\8.3.XX.XXXX\bin\rac.exe"
set RAS=localhost:1545
for /f "tokens=3" %%i in ('%RAC% cluster list %RAS% ^| findstr /b "cluster"') do set CL=%%i
%RAC% server list --cluster=%CL% %RAS%
Пример выводит список серверов. Команду добавления сервера впишите после server list с ключами из rac server help: при автоматизации это надёжнее, чем копировать ключи из чужих инструкций, потому что набор параметров зависит от платформы.
Что учесть, когда пишете такой скрипт:
- 🔑 пароль администратора кластера не хардкодьте: берите из защищённого хранилища или переменной окружения;
- 🧪 запускайте сначала на тестовом кластере и проверяйте код возврата после каждой команды;
- 📝 логируйте вывод
racв файл, чтобы позже понять, на каком шаге всё остановилось; - 🔁 делайте скрипт повторяемым: перед добавлением проверяйте, нет ли такого сервера в списке.
Проверьте, что получилось, вручную. Откройте консоль, найдите сервер в списке и запустите на нём сеанс в тестовой базе.
Консоль или ras: какой способ выбрать
Оба способа делают одно и то же, но подходят для разных ситуаций.
| Способ | Когда подходит | Минусы |
|---|---|---|
| Консоль администрирования | разовая настройка, один-два сервера, нужна наглядность | не автоматизируется, нужен доступ с графической машины |
ras + rac | скрипты, развёртывание пачкой, серверы без графики | нужна служба ras, ключи зависят от сборки платформы |
Для Linux-сервера без графической оболочки обычно ставят консоль на рабочее место администратора и подключаются по сети. Если открывать порт 1545 наружу, ограничьте доступ по адресам: ras принимает команды управления, и выставлять его в интернет нельзя.
Отдельно про безопасность. Администратор кластера и администратор сервера — разные роли. Первый управляет настройками кластера в консоли, второй — самой машиной. Не давайте пароль кластера тем, кому нужен только просмотр сеансов: для таких задач заведите отдельную учётную запись с ограниченными правами.
Перед завершением пройдитесь по короткому списку. Он не повторяет шаги выше, а проверяет итог.
Частые вопросы
Нужен ли ras, чтобы зарегистрировать сервер в кластере?
1540. ras нужен для утилиты rac и сторонних средств управления.Какой порт использует ras по умолчанию?
1545. Его можно поменять параметром --port при запуске.