Перейти к содержанию

Описание и пример настройки HA-кластера

HA-кластер AFIGate повышает отказоустойчивость, снижает простои при отказе узла и позволяет распределять нагрузку между несколькими серверами. Ниже — обзор компонентов, архитектуры и пример развертывания кластера из двух узлов.

Компоненты кластера

Узлы AFIGate — серверы с установленным AFIGate; не хранят собственных данных и могут клонироваться, добавляться или удаляться без потери информации.

PostgreSQL/MySQL — основная СУБД: настройки системы, устройства, учетные записи, пароли к целевым системам и, по умолчанию, текстовые логи команд SSH, SQL-запросов и ввода с клавиатуры в RDP-сессиях.

Redis — кэш и очереди; для кластера рекомендуется единый Redis (или Sentinel) на всех узлах.

Хранилище записей сессий — по умолчанию /opt/afigate/core/data/media на каждом узле; для кластера используется общее хранилище — NFS, S3/MinIO, Ceph или аналог.

Хранилище логов команд — по умолчанию в основной БД; опционально — внешний Elasticsearch.

Балансировщик — обычно HAProxy, используется для автоматического распределения подключений на активные узлы кластера.

Архитектура кластера

Узлы кластера подключаются к общим PostgreSQL/MySQL и Redis, используют общее хранилище записей сессий и логов команд и работают за балансировщиком. Все узлы должны использовать одинаковые SECRET_KEY, BOOTSTRAP_TOKEN и конфигурацию /opt/afigate/config/config.txt; время и DNS на узлах должны быть синхронизированы.

Пример кластера из двух узлов

Пример ниже разворачивает кластер с единым PostgreSQL, единым Redis и общим хранилищем записей на базе NFS:

Результат: несколько узлов AFIGate, использующих один PostgreSQL/Redis и общее хранилище записей. Любой узел пригоден для доступа к целевым системам; балансировщик распределяет запросы между узлами и переключает пользователей при отказе одного из них.