Горизонтальное масштабирование¶
Начиная с версии 5.2 в Staffcop Enterprise доступен компонент Горизонтальное масштабирование, который позволяет создавать кластер из нескольких отдельных серверов Staffcop.
Преимущества:
объединение настроек политик: настройки политик для всех АРМ в кластере централизованы;
единая веб-консоль: информация со всех АРМ кластера отображается в одной веб-консоли;
объединённые отчёты: получение отчетов по всем пользователям кластера;
доступ ко всем узлам: всем администраторам системы имеют доступ ко всем узлам кластера.
Требования к мастер-серверу¶
Мастер-сервер — это центральный сервер, который управляет кластером и координирует взаимодействие между нодами.
Для корректной работы убедитесь:
что мастер-сервер соотвествует общим требованиям к серверу,
у вас достаточно места на диске: при создании кластера в обязательном порядке автоматически устанавливаются ClickHouse и PostgreSQL.
Подробнее о требованиях — в статье Сервер и базы данных.
Примечание
Функционал кластера оптимизирован для новой установки. Для предотвращения сбоев не создавайте кластер на сервере, который уже собирал данные.
Предварительная настройка¶
Перед развёртыванием кластера:
Проверьте версию серверов Staffcop, которые будут включены в кластер:
sudo staffcop infoВерсии серверов должны быть одинаковыми.
Обновите ПО на всех серверах, которые будут входить в кластер:
sudo apt update sudo apt upgrade
Подготовка мастер-сервера¶
Установите пакеты:
Добавьте в список репозиториев системы репозитории Staffcop:
wget -O - http://distr.staffcop.su/stable5.4/staffcop.gpg | sudo apt-key add - echo "deb http://distr.staffcop.su/stable5.4 stable5.4 non-free" | sudo tee /etc/apt/sources.list.d/staffcop.list
Обновите пакеты Ubuntu:
sudo apt-get update sudo apt-get upgrade
Установите пакет оркестрации:
sudo apt install staffcop-orchestrationsshpass установится автоматически как зависимость.
Установите пакет оркестрации:
sudo dpkg -i staffcop-orchestration-0.2.5-master.deb
Запустите предварительную настройку кластера.
Важно! Запускайте команду без sudo.
staffcop-cluster deploy prepare
В результате выполнения команды будет создан конфигурационный файл кластера /etc/staffcop/cluster.cfg.
Если конфигурационный файл успешно создан, предварительная настройка закончена. Переходите к развёртыванию кластера.
Развёртывание кластера¶
Настройка конфигурации¶
Откройте конфигурационный файл /etc/staffcop/cluster.cfg.
Примерное содержание файла /etc/staffcop/cluster.cfg
[all:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
# Connection to node
ansible_connection=ssh
ansible_user=support
ansible_ssh_pass=support
ansible_sudo_pass=support
ansible_python_interpreter=/usr/bin/python3
# Cluster configuration
clickhouse_database=staffcop
clickhouse_host=localhost
clickhouse_port=9000
clickhouse_user=staffcop
clickhouse_password=password2
staffcop_branch=stable5.4
sql_host=localhost
sql_port=5432
sql_database=staffcop
sql_user=staffcop
sql_password=password1
# Master server
api_key=apikey1
master_api_key=apikey1
master_server=10.10.14.71
[node]
node1 node=0 ansible_host=10.10.14.71 name="Мастер сервер"
node2 node=1 ansible_host=10.10.14.72 name="Слейв 1"
node3 node=2 ansible_host=10.10.14.73 name="Слейв 2"
В созданном файле измените строки:
Строка |
Содержимое |
Комментарий |
---|---|---|
ansible_user=… |
Имя пользователя |
Должно совпадать на всех нодах |
ansible_ssh_pass=… |
Пароль пользователя |
Должен совпадать на всех нодах |
ansible_sudo_pass=… |
Пароль пользователя |
Должен совпадать на всех нодах |
clickhouse_password=… |
Пароль от базы данных ClickHouse |
Пароль нужен, только если вы изменили его |
sql_password=… |
Пароль от базы данных PostgreSQL |
Укажите любой пароль, иначе мастер-сервер |
master_server=… |
Адрес мастер-сервера |
— |
… node=0 ansible_host=… name=“…“ |
Имя хоста, адрес и название для мастер-сервера |
Имя хоста должно содержать только латинские |
… node=1 ansible_host=… name=“…“ |
Имя хоста, адрес и название первого слейв-сервера |
|
… node=3 ansible_host=… name=“…“ |
Имя хоста, адрес и название второго слейв-сервера |
После внесения всех изменений проверьте правильность настроек и доступность узлов кластера. Для этого заново запустите:
staffcop-cluster deploy prepare
После успешной проверки переходите к сборке кластера.
Сборка кластера¶
Примечание
В ходе сборки будут настроены все основные элементы кластера. Недостающие элементы (сервер Staffcop, PostgreSQL, ClickHouse) будут установлены и настроены.
Сборка кластера осуществляется командой:
staffcop-cluster deploy
Это комплексная команда, включающая в себя все необходимые процедуры и дополнительные настройки. Выполнение команды может занять длительное время.
Чтобы получить больший контроль над процессом сборки кластера, используйте последовательный набор команд, дублирующих основную.
Пошаговая сборка кластера:
Настройте базу данных PostgreSQL:
staffcop-cluster deploy postgresql
Настройте базу данных ClickHouse:
staffcop-cluster deploy clickhouse
Настройте серверы Staffcop, входящие в кластер:
staffcop-cluster deploy server
Настройте узлы кластера (ноды):
staffcop-cluster deploy node
Если в ходе установки не возникло ошибок, кластер настроен и готов к использованию.
Если на слейв-серверах есть события, которые поступили до инициализации кластера, выполните команду для миграции ноды в кластер:
staffcop cluster migrate 1где 1 — номер ноды в конфиге /etc/staffcop/cluster.cfg в секции
node: node2 node=1 ansible_host=<IP слейв-сервера> name="имя слейв-сервера"
.Внимание
После миграции ID команда
staffcop cluster migrate 1
применит на сервере политики к старым событиям и перестроит отчеты. На этом этапе сервер будет функционировать, однако может возникнуть задержка в обработке новых событий. Отчеты не будут строиться, пока сервер не завершит перестройку. Время выполнения зависит от объема данных и конфигурация сервера.
Примечание
Перед началом работы активируйте на мастер-сервере лицензию с включенным компонентом Горизонтальное масштабирование. В лицензии должно быть указано количество нод кластера (серверов, входящих в состав кластера с учётом мастер-сервера).
После создания кластера, слейв-сервера будут периодически синхронизироваться с мастер-сервером, получая обновления по настройкам, политикам и списку администраторов системы.
В веб-интерфейсе сервера в разделе выбора базы данных вместе со стандартными PostgreSQL и ClickHouse станет доступен режим Cluster.
Примечание
Для правильной работы режима Cluster активируйте лицензию с опцией Горизонтальное масштабирование на всех слейв-серверах. В противном случае режим Cluster на слейв-серверах не отобразится.
При выборе режима отображения Cluster в Линзе событий будут показаны все события на всех серверах кластера.
Отследить, на каком из серверов кластера произошло событие, можно в Линзе событий в строке Сервер.
Если вы удалите агент и его данные с нода, в Конструкторе кластера останется запись о компьютере, но Линза событий не будет содержать события.