Перейти к основному содержимому
Версия: 1.12

Требования

Требования к серверной инфраструктуре​

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

ФлейворТопологияРесурсы на 1 узелНазначение
1VM1 сервер8 CPU
32 ГБ RAM
500 ГБ SSD
Локальное тестирование
3VM3 сервера8 CPU
32 ГБ RAM
500 ГБ SSD
Имитация распределенного кластера
Тестирование отказоустойчивости (HA)

Поддерживаются любые платформы виртуализации (KVM, VMware, Hyper-V) и bare-metal-серверы. Полные характеристики, ограничения по нагрузке и особенности архитектуры см. в отдельной статье: Флейворы Sage.

Примечание

Стандартные флейворы (1VM и 3VM) предназначены исключительно для тестовых и демонстрационных целей. Для продуктивной эксплуатации или тестирования при высоких нагрузках требуется расчет индивидуальной конфигурации.

Совет

Чтобы точнее рассчитать необходимый объем дискового пространства под нагрузку, воспользуйтесь калькулятором дисковых ресурсов.

Требования к контрольному хосту​

Контрольный хост (Control Plane) — это отдельный сервер под управлением Linux (ВМ или bare-metal), с которого запускаются Ansible-плейбуки для установки и управления кластером Sage. Не входит в состав кластера.

Аппаратные ресурсы и ОС​

ПараметрТребованияКомментарий
CPU2 ядраМинимальное требование
RAM4 ГБ
Disk200 ГБ SSDРекомендуется с запасом для локального кэширования Docker-образов. Если образы загружаются напрямую из реестра без сохранения на диск, допустимо меньше
ОСUbuntu 20.04 (Focal)
Ubuntu 22.04 (Jammy)
Ubuntu 24.04 (Noble)
Astra Linux 1.7 (Орёл)
Astra Linux 1.8 (Орёл)
Astra Linux 1.8 (Воронеж)
Другие дистрибутивы могут работать, но не протестированы официально

Программные зависимости​

На контрольном хосте должны быть установлены следующие утилиты:

КомпонентМинимальная версияКоманда для проверки
Docker EngineCommunity Edition 20.10+docker --version
GNU bash5.0+bash --version
OpenSSH8.2+ssh -V
OpenSSL3.0.0+openssl version
jq1.6+jq --version
Примечание

Требуется наличие клиентских утилит: ssh, ssh-add, ssh-agent.

Совет

Для быстрой проверки версий всех необходимых пакетов и утилит используйте утилиту Sage Precheck. Она автоматически проверит, соответствуют ли контрольный хост и целевые серверы требованиям.

Сетевые требования​

Контрольный хост должен иметь сетевую связность с внешними сервисами и внутренними компонентами Sage.

Доступ к внешним сервисам (Yandex Cloud)​

Требуется исходящий доступ по протоколу HTTPS (TCP/443) к следующим доменам:

  • storage.yandexcloud.net — скачивание скриптов установки и утилиты Sage Precheck из объектного хранилища.
  • cr.yandex — авторизация в регистре Docker-образов и скачивание установщика и компонентов Sage.

Доступ к внутренним сервисам Sage​

Требуется для управления кластером и работы с системой управления доступом (Spirit IAM).

НаправлениеПортПротоколНазначение
Контрольный хост → Узлы кластера22TCP/SSHУправление хостами (Ansible)
Контрольный хост → Узлы кластера443TCP/HTTPSВзаимодействие с API сервисов
Контрольный хост → Spirit IAM9443TCP/HTTPSДоступ к системе управления доступом

Требования к серверам Sage​

На всех целевых хостах должен быть установлен необходимый набор системных пакетов и настроены параметры ядра.

Системные пакеты​

Для систем, использующих пакетный менеджер apt:

  • Docker
    • docker-ce-cli=5:20.10.*
    • docker-ce=5:20.10.*
    • docker-compose-plugin=2.29.2.*
  • Python и PostgreSQL
    • python3-docker
    • python3-pip
    • python3-psycopg2>=2.5.1
    • python3-requests
    • postgresql-client
    • libpq-dev
  • Утилиты
    • gnupg2
    • apt-transport-https
    • ca-certificates
    • curl
Совет

Для быстрой проверки версий всех необходимых пакетов и утилит используйте утилиту Sage Precheck. Она автоматически проверит, соответствуют ли контрольный хост и целевые серверы требованиям.

Параметры ядра​

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

net.ipv4.tcp_retries2 = 5 # Быстрее детектировать обрыв соединения
vm.admin_reserve_kbytes = 64000 # Резерв памяти для root
vm.max_map_count = 262144 # Увеличить лимит областей памяти для БД/OpenSearch
vm.swappiness = 1 # Минимизировать свопинг
vm.user_reserve_kbytes = 256000 # Резерв памяти для пользовательских процессов

Для пошаговой проверки текущих значений выполните серию команд на каждом из целевых хостов:

sysctl net.ipv4.tcp_retries2
sysctl vm.admin_reserve_kbytes
sysctl vm.max_map_count
sysctl vm.swappiness
sysctl vm.user_reserve_kbytes

Настройки Docker​

Установите рекомендованные настройки Docker:

Файл /etc/docker/daemon.json
{
"bridge": "none",
"data-root": "/srv/docker",
"default-ulimits": {
"memlock": {
"Hard": -1,
"Name": "memlock",
"Soft": -1
},
"nofile": {
"Hard": 256000,
"Name": "nofile",
"Soft": 256000
},
"nproc": {
"Hard": 4096,
"Name": "nproc",
"Soft": 4096
}
},
"live-restore": true,
"log-driver": "json-file",
"log-opts": {
"env": "{{ prod }}",
"max-file": "2",
"max-size": "100m"
},
"storage-driver": "overlay2"
}

Требования к учетной записи​

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

Имя пользователя и доступ​

Рекомендуемое имя: sage

Используйте единое имя пользователя на всех целевых хостах, участвующих в развертывании. Это удобно для унификации среды развертывания и упрощает автоматизацию и аудит действий (все операции Sage видны в логах под одним пользователем).

Требования к правам доступа:

  • Учетная запись должна существовать и быть доступна по SSH на:

    • контрольном хосте;
    • всех целевых хостах Sage;
    • любых дополнительных узлах (балансировщики, базы данных).
  • Инженер, ответственный за развертывание Sage, должен знать логин и пароль этой учетной записи.

Права на выполнение команд через sudo​

Учетная запись для управления Sage должна иметь возможность выполнять привилегированные операции. Для корректной работы скриптов Ansible разрешите выполнение команд без запроса пароля (NOPASSWD) одним из способов ниже.

Вариант 1. Через файл sudoers.d​

Добавьте правило, разрешающее выполнение любых команд без пароля.

  1. Создайте файл /etc/sudoers.d/sage со следующим содержимым:

    sage ALL=(ALL) NOPASSWD:ALL
  2. Убедитесь, что файл имеет корректные права доступа:

    sudo chmod 440 /etc/sudoers.d/sage

Вариант 2. Через группу администраторов​

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

Требования к разрешению DNS-имен​

Корректная настройка DNS критична для работы TLS-сертификатов, внутренней аутентификации и взаимодействия между компонентами Sage.

Правила именования хостов​

Каждый узел, входящий в кластер Sage, должен соответствовать следующим требованиям:

  • Только FQDN

    • Использование коротких имен (shortnames) запрещено.
    • Хосты должны быть доступны по полным доменным именам.
    • Пример: sage-node1.sage.example.com
  • Единый домен

    • Хосты должны принадлежать одному родительскому домену, который будет использоваться для генерации TLS-сертификатов и работы с registry.
    • Пример: *.sage.example.com
  • Динамический резолвинг

    • Разрешение имен для всех хостов, участвующих в развертывании Sage, включая контрольный хост, должно выполняться динамически через доступные в сети DNS-серверы.
    • Пример: dig sage-node1.example.com возвращает IP.
Внимание

Запрещается использовать статические записи вида <IP> <Имя_хоста> в локальных конфигурационных файлах (например, /etc/hosts). Это приведет к сбоям при автоматическом перевыпуске или проверке TLS/SSL-сертификатов и сбоям в работе скриптов Ansible.

Доменные имена сервисов​

Для работы системы необходимо зарезервировать и настроить следующие доменные имена:

Тип доменаПримерНазначениеОбязательность
Основной доменsage.example.comТочка входа для пользователей (UI, API)Обязательно
Домен Spiritspirit.example.comСистема управления доступом и группами (IAM)Обязательно для Production
Опционально для 1VM/3VM
Wildcard-домен*.internal.sage.example.comВнутренняя коммуникация сервисовОбязательно для Production
Не требуется для 1VM/3VM
Внимание

Домен для Spirit не должен быть поддоменом основного домена Sage, и наоборот. Это требование обусловлено особенностями работы Cookies.

Требования к сетевой инфраструктуре кластера​

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

Пропускная способность​

Минимальная скорость: 100 Мбит/с между всеми узлами кластера и контрольным хостом.

Внутренняя связность​

  • Узлы кластера ↔ Узлы кластера

    • Требуется полный доступ по всем портам сервисов для внутреннего общения и репликации данных. Подробнее см. в разделе Получение списка портов.
    • При использовании фаерволов, групп безопасности или сетевых политик необходимо явно разрешить трафик между серверами кластера.
  • Узлы кластера → Контрольный хост

    • Не требуется. Узлы кластера не инициируют соединения на контрольный хост.

Требования к внешним сервисам​

Для развертывания Sage в отказоустойчивой конфигурации обязательны сервисы для балансировки нагрузки (LBaaS) и хранения данных (DBaaS).

Балансировщик нагрузки (LBaaS)​

Балансировщик уровня L4 доводит трафик до внутренних балансировщиков Sage, построенных на Nginx. Используется для трех направлений трафика:

  • балансировка запросов от пользователей;
  • балансировка приема телеметрии;
  • внутренняя балансировка между компонентами Sage.

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

Примечание

Вместо внешнего балансировщика допускается обеспечить Anycast IP или Virtual IP непосредственно на хостах с Nginx.

Управляемый кластер PostgreSQL (DBaaS)​

Внешний управляемый кластер PostgreSQL является хранилищем для следующих данных:

  • пользователи и их роли;
  • информация о правах доступа;
  • код алертов, адреса их получателей;
  • настройки скрейпинга (группы хостов, окружения, таргеты)
  • временные данные (например, токены доступа).

Требования к DBaaS ограничены только ресурсными характеристиками. Реализация, настройка, резервное копирование и обеспечение отказоустойчивости остаются на стороне внешнего сервиса. Подробнее см. в разделе Внешние сервисы и интеграции.

Требования к клиентской части​

Доступ к веб-интерфейсу Sage осуществляется через браузер. Система оптимизирована для работы на движке Chromium. Использование других браузеров (Mozilla Firefox, Apple Safari, Internet Explorer) может привести к ошибкам отображения или некорректной работе интерфейса.