Полезное

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

Вадим Заплетин 3 мин чтения
Администрирование кластера серверов 1С: управление RAS

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

Что такое RAS-сервер и как он работает

RAS (Remote Administration Server) — служба, которая принимает команды от консоли администрирования и передаёт их агентам кластера. Каждый кластер 1С имеет один главный менеджер кластера (Central Server), который координирует работу всех узлов.

Архитектура включает три уровня:

  • Консоль администрирования — инструмент управления (rac.exe, веб-интерфейс или сторонние утилиты)
  • RAS-сервер — обрабатывает запросы администратора и передаёт команды агентам
  • Агенты кластера — выполняют операции на серверах приложений (запуск/остановка процессов, сбор статистики)

По умолчанию RAS работает на порту 1545. Связь между компонентами происходит по TCP с использованием собственного протокола 1С.

Основные функции RAS

Функция Описание
Управление рабочими процессами Запуск, остановка, перезапуск процессов rphost на серверах кластера
Балансировка нагрузки Распределение пользовательских подключений между доступными процессами
Мониторинг производительности Сбор метрик: загрузка CPU, память, количество сеансов, длительность вызовов
Управление лицензиями Контроль доступных клиентских лицензий и их распределение
Администрирование информационных баз Блокировка фоновых заданий, установка расписаний, управление сеансами

Установка и первичная настройка RAS-сервера

Подготовка серверной инфраструктуры

Для работы кластера 1С требуется выделенное серверное оборудование с достаточной производительностью. Минимальные требования к серверу для RAS — 4 ГБ RAM и 2 ядра CPU, но для продуктивных кластеров с десятками пользователей рекомендуем конфигурации с 16-32 ГБ оперативной памяти и процессорами Intel Xeon уровня E5 или новее.

  1. Установите платформу 1С:Предприятие 8.3 на сервер, где будет работать агент кластера
  2. Откройте порты 1540-1541 (агент кластера) и 1545 (RAS) в брандмауэре Windows или iptables
  3. Создайте учётную запись службы в Active Directory с правами локального администратора на серверах кластера
  4. Запустите службу «Агент сервера 1С:Предприятие 8.3» от имени созданной учётной записи

Регистрация кластера и запуск RAS

После установки агента кластера регистрируем его как центральный сервер:

cluster --create --host=server1c-01 --port=1541 --name="Production Cluster"

Запускаем службу RAS:

ras cluster --daemon --port=1545

Проверяем доступность:

rac cluster list --cluster=<cluster-id>

Команда должна вернуть список кластеров с указанием host, port и состояния (started).

Добавление серверов в кластер 1С

Регистрация рабочих серверов

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

Процедура добавления сервера

  1. На новом сервере установите платформу 1С и запустите службу агента кластера
  2. В консоли администрирования подключитесь к центральному кластеру
  3. Выполните команду регистрации через rac:
    rac server --cluster=<cluster-id> insert --server=server1c-02 --agent-host=server1c-02 --agent-port=1541 --port-range=1560:1591
  4. Укажите диапазон портов для рабочих процессов (по умолчанию 1560-1591, можно изменить при необходимости)
  5. Проверьте статус сервера командой rac server list — он должен отображаться как active

Настройка профиля рабочих процессов

Профиль определяет количество рабочих процессов (rphost) на каждом сервере и их параметры. Создайте профиль через консоль:

rac profile --cluster=<cluster-id> insert --name="Standard" --descr="8 процессов по 2 ГБ" --max-memory=2048 --all-connection-max=128

Параметры профиля:

  • max-memory — максимальный объём оперативной памяти для одного процесса (в МБ)
  • all-connection-max — лимит одновременных подключений к процессу
  • avg-call-time-limit — средний лимит времени выполнения вызова (в мс), после превышения процесс перезапускается
  • avg-threads-limit — средний лимит активных потоков в процессе

Назначьте профиль серверу:

rac server --cluster=<cluster-id> --server=<server-id> update --profile=<profile-id>

Балансировка нагрузки в кластере

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

Алгоритмы балансировки

Платформа 1С использует два основных алгортима:

  • По производительности — новый сеанс открывается на процессе с наименьшей загрузкой CPU и памяти
  • По приоритету — администратор вручную назначает приоритеты серверам (0-100), сеансы открываются сначала на серверах с высоким приоритетом

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

rac server --cluster=<cluster-id> --server=<server-id> update --priority=90

Назначение серверов под конкретные задачи

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

Тип сервера Назначение Рекомендуемая конфигурация
Фронтальные серверы Интерактивная работа пользователей (тонкий/толстый клиент) Больше ядер CPU, меньше памяти на процесс (1-2 ГБ)
Фоновые серверы Регламентные задания, отчёты, обмены данными Много памяти на процесс (4-8 ГБ), SSD для временных файлов
Сервер HTTP-соединений Веб-клиент, REST API, публикации OData Высокая пропускная способность сети, производительные сетевые адаптеры

Чтобы ограничить типы подключений для сервера:

rac server --cluster=<cluster-id> --server=<server-id> update --enable=off --enable-http-service=on

Эта команда отключает интерактивные подключения, но разрешает HTTP-соединения через веб-клиент.

Настройка информационных баз в кластере

Создание и регистрация базы данных

Информационная база регистрируется в кластере через консоль администрирования. Процедура:

  1. Создайте пустую базу на SQL Server или PostgreSQL
  2. Зарегистрируйте её в кластере командой:
    rac infobase --cluster=<cluster-id> create --name="Production" --dbms=MSSQLServer --db-server=sql01 --db-name=1c_prod --db-user=1c_dbo --db-pwd="password" --locale=ru_RU --create-database
  3. Укажите учётные данные администратора информационной базы:
    rac infobase --cluster=<cluster-id> --infobase=<infobase-id> update --admin-name=Администратор --admin-pwd="admin"

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

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

rac infobase --cluster=<cluster-id> --infobase=<infobase-id> update-group-assignment --server=<server-id> --scheduled-jobs-enabled=on --operations-enabled=off

Параметры:

  • scheduled-jobs-enabled — разрешить выполнение регламентных заданий
  • operations-enabled — разрешить интерактивные операции пользователей

Мониторинг производительности кластера

Ключевые метрики для отслеживания

Администрирование кластера серверов 1с невозможно без контроля производительности. RAS-сервер собирает статистику по каждому рабочему процессу и информационной базе. Основные показатели:

Метрика Нормальное значение Критическое значение
Загрузка CPU процесса rphost < 70% > 90%
Использование памяти процесса < 80% от max-memory > 95% от max-memory
Количество активных сеансов < all-connection-max × 0.7 > all-connection-max × 0.9
Среднее время вызова СУБД < 50 мс > 200 мс
Количество блокировок транзакций 0-5 > 20

Сбор статистики через RAC

Получите список активных сеансов:

rac session list --cluster=<cluster-id> --infobase=<infobase-id>

Вывод содержит идентификаторы сеансов, имена пользователей, IP-адреса, время запуска и потребление памяти.

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

rac infobase --cluster=<cluster-id> --infobase=<infobase-id> update --event-log-level=Note --log-directory="\\server1c-01\TechLog"

Парсите логи утилитами вроде logcfg или сторонними анализаторами (например, Loginom, Log Parser Studio).

Автоматизация мониторинга

Для постоянного контроля настройте скрипты, которые опрашивают RAS каждые 1-5 минут:

#!/bin/bash
CLUSTER_ID="..."
INFOBASE_ID="..."
THRESHOLD=90

CPU=$(rac process list --cluster=$CLUSTER_ID | grep rphost | awk '{sum+=$5} END {print sum/NR}')

if (( $(echo "$CPU > $THRESHOLD" | bc -l) )); then
  echo "Высокая загрузка CPU: $CPU%" | mail -s "Alert 1C Cluster" admin@domain.com
fi

Альтернатива — интеграция с системами мониторинга (Zabbix, Prometheus). Существуют готовые экспортёры метрик 1С для этих платформ.

Типовые конфигурации кластера для разных нагрузок

Сценарий Серверы Конфигурация Компоненты
Малый кластер (до 30 пользователей) 1 сервер Intel Xeon E-2388G, 32 ГБ RAM, 2×480 ГБ SSD RAID-1 Агент + RAS + СУБД на одной машине, серверная память DDR4 ECC
Средний кластер (30-100 пользователей) 2 сервера приложений + 1 сервер СУБД 2× Intel Xeon Silver 4314, 64 ГБ RAM, 4×960 ГБ SSD RAID-10 Агент + RAS на каждом сервере приложений, выделенный SQL Server
Крупный кластер (100-500 пользователей) 4-6 серверов приложений + отказоустойчивый SQL кластер Intel Xeon Gold 6338, 128 ГБ RAM, NVMe SSD 2 ТБ Разделение фронтальных/фоновых серверов, быстрые SSD-накопители под временные файлы
Территориально распределённый кластер 2-3 кластера в разных ЦОД с репликацией БД Зависит от филиалов Каждый кластер — автономный, синхронизация через планы обмена 1С или репликацию СУБД

При выборе оборудования учитывайте не только количество пользователей, но и специфику конфигурации 1С. Например, для систем с тяжёлыми отчётами и сложной логикой потребуется больше процессорных ядер и памяти, чем для простых CRM-систем. Подбирайте конфигурацию исходя из нагрузочного тестирования на реальных данных.

Частые ошибки при администрировании кластера

Ошибка подключения к RAS-серверу

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

Причины:

  • Служба RAS не запущена или остановлена
  • Порт 1545 заблокирован брандмауэром
  • Неправильно указан адрес центрального сервера кластера

Решение:

  1. Проверьте статус службы: systemctl status ras (Linux) или в диспетчере служб Windows
  2. Убедитесь, что порт 1545 открыт: netstat -an | grep 1545
  3. Попробуйте подключиться локально с сервера кластера: rac cluster list localhost:1545

Рабочие процессы не запускаются автоматически

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

Причины:

  • Не назначен профиль рабочих процессов для сервера
  • Служба агента кластера работает под учётной записью без прав доступа к каталогу данных платформы
  • Порты диапазона рабочих процессов (1560-1591) заняты другими приложениями

Решение:

  1. Назначьте профиль командой rac server update --profile=<profile-id>
  2. Проверьте права учётной записи службы на папку C:\Program Files\1cv8\srvinfo (Windows) или /opt/1cv8/srvinfo (Linux)
  3. Измените диапазон портов в профиле или освободите занятые порты

Медленная работа при высокой нагрузке

Симптомы: пользователи жалуются на «зависания», выполнение операций занимает десятки секунд.

Причины:

  • Недостаточно рабочих процессов на серверах кластера
  • Слишком много сеансов на один процесс (превышен параметр all-connection-max)
  • Узкое место в дисковой подсистеме или сети
  • Блокировки транзакций на уровне СУБД

Решение:

  1. Увеличьте количество рабочих процессов в профиле (но не более числа ядер CPU × 2)
  2. Добавьте серверы в кластер для распределения нагрузки
  3. Проанализируйте технологический журнал — найдите медленные запросы и оптимизируйте индексы СУБД
  4. Используйте блоки питания с высоким КПД и эффективные системы охлаждения, чтобы избежать троттлинга процессоров под нагрузкой

Потеря связи с агентом кластера

Симптомы: сервер отображается как offline в консоли администрирования, но операционная система и службы работают.

Причины:

  • Служба агента кластера аварийно завершилась (out of memory, crash процесса)
  • Сетевая недоступность между центральным сервером и агентом
  • Рассинхронизация версий платформы 1С на серверах кластера

Решение:

  1. Перезапустите службу агента на проблемном сервере
  2. Проверьте сетевое соединение командой ping и telnet <host> 1541
  3. Обновите платформу на всех серверах до одинаковой версии (важно: обновляйте только в режиме обслуживания, предварительно заблокировав новые подключения)

Часто задаваемые вопросы

Можно ли использовать несколько RAS-серверов для одного кластера?

Да, можно настроить несколько RAS-серверов для отказоустойчивости. Каждый RAS подключается к одному и тому же центральному серверу кластера. Если основной RAS недоступен, консоль администрирования автоматически переключается на резервный. Для этого укажите список адресов RAS через запятую при подключении: rac cluster list server1c-01:1545,server1c-02:1545.

Как ограничить количество одновременных сеансов пользователя?

Настройте лимит в параметрах информационной базы командой: rac infobase --cluster=<cluster-id> --infobase=<infobase-id> update --sessions-deny=on --denied-from="2025-01-15T09:00" --denied-to="2025-01-15T18:00" --permission-code="maintenance". Пользователи без специального кода доступа не смогут создать новый сеанс в указанный период. Для ограничения числа сеансов одного пользователя используйте внешние средства контроля или настройте правила в самой конфигурации 1С.

Какие порты нужно открыть в брандмауэре для работы кластера?

Минимальный набор портов: 1540-1541 (агент кластера), 1545 (RAS-сервер), 1560-1591 (рабочие процессы по умолчанию), 1538 (служба лицензирования). Также откройте порты для подключения к СУБД: 1433 (MS SQL Server), 5432 (PostgreSQL) или другие в зависимости от используемой системы. Для веб-клиента дополнительно потребуется порт веб-сервера (обычно 80 или 443).