Создание кластера ADG

После выполнения предварительных действий и загрузки бандла в кластер-менеджере ADCM содержится следующий список объектов:

  • Прототип кластера мониторинга и установленный из этого прототипа кластер (в данном примере компоненты кластера мониторинга установлены на одном хосте ADG-monitoring);
  • Прототип кластера ADG для создания экземпляра кластера;
  • Предварительно сгенерированные два хоста в облачном провайдере YandexCloud. Иными словами, в разделе “Hosts” присутствуют две запиcи о соответствующих хостах, в этот момент все хосты физически созданы и запущены в среде провайдера (Рис.5).
../../../../_images/cc1.png

Рис. 5. Список объектов во вкладке “Hosts” ADCM

Данным объектам доступна следующая функциональность:

Создание экземпляра кластера

Фактическая установка ADG на целевых хостах осуществляется после выполнения следующих шагов:

  1. Открыть в ADCM вкладку “CLUSTERS” (Рис.6).
../../../../_images/cc2.png

Рис. 6. Вкладка “CLUSTERS”

  1. Нажать “Add cluster” и в открывшейся форме выбрать из списка бандл ADG, создав тем самым экземпляр кластера (Рис.7).
../../../../_images/cc3.png

Рис. 7. Создание экземпляра кластера

  1. В результате выполненных действий факт создания экземпляра кластера отображается в базе данных ADCM на вкладке “CLUSTERS” (Рис.8).
../../../../_images/cc4.png

Рис. 8. Результат успешного создания экземпляра кластера

Конфигурация кластера

Для перехода к настройкам экземпляра кластера ADG необходимо нажать кнопку с пиктограммой шестеренки в соответствующей строке вкладки “CLUSTERS” (Рис.8) и перейти в раздел меню “Configuration”. При этом открывается окно конфигурации выбранного экземпляра (Рис.9).

../../../../_images/cc5.png

Рис. 9. Окно конфигурации кластера

В блоке настроек “Repositories” указываются требуемые для установки ADG пакеты из различных yum-репозиториев, при этом в каждом из параметров можно изменить заданный по умолчанию url на необходимый (например, при установке без доступа к сети Интернет):

  • Репозиторий Arenadata ADG;
  • Репозиторий Arenadata Monitoring;
  • Репозиторий агента журналирования.

В блоке настроек “Сluster_wide” указывается произвольная cookie-строка для взаимной аутентификации инстансов кластера ADG.

Добавление сервисов

Кластер ADG включает в себя следующие сервисы:

  • Grid – хранение и обработка данных;
  • Monitoring Clients – агенты, отправляющие информацию о метриках хостов и показателях работы сервисов ADG в кластер мониторинга;
  • Logging Agents – агенты, отправляющие события с инстансов ADG в кластер ElasticSearch.

Не все сервисы являются обязательными для установки. Например, если мониторинг осуществляется сторонними средствами, нет необходимости устанавливать клиентов мониторинга. Тем не менее, если планируется создать полноценный экзепляр кластера, нужно добавить по крайней мере по одному экземпляру сервисов ADG.

В настоящем примере в кластер добавляются все сервисы.

Important

На текущий момент невозможно удалить из кластера уже добавленный сервис. Также невозможно удалить существующий сервис (за исключением инстансов ADG)

Настройка Grid

После добавления сервиса Grid для перехода к настройкам необходимо нажать кнопку с пиктограммой шестеренки в соответствующей строке вкладки “SERVICES” и перейти в раздел меню “Configuration”. При этом открывается окно конфигурации сервиса Grid (Рис.10).

../../../../_images/cc6.png

Рис. 10. Окно конфигурации сервиса Grid

Настройки включают в себя следующие элементы:

  • Объем памяти в байтах для каждого типа инстанса Grid;
  • cluster_topology – json с автогенерируемой топологией кластера (топология создается на одном из этапов установки, изначально она пуста);
  • app_config – json с конфигурацией инстансов Grid и схемы данных.

При включении отображения advanced-опций становится доступным редактирование префиксов сетевых портов инстансов.

Например, если storage-master-listener-port: 90, то для экземпляра storage-master 2 в шарде 1 результирующее значение сетевого порта равно 9012.

Значение портов генерируется автоматически в процессе создания топологии кластера.

Настройка клиентов мониторинга

После добавления сервиса Monitoring Clients для перехода к настройкам необходимо нажать кнопку с пиктограммой шестеренки в соответствующей строке вкладки “SERVICES” и перейти в раздел меню “Configuration”. При этом открывается окно конфигурации сервиса Monitoring Clients.

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

URL для подключения к серверам Graphite и Grafana определяются экспортом соответствующих параметров из предварительно установленного кластера мониторинга:

  • Перейти во вкладку “CLUSTERS”;
  • Нажать кнопку “Import” в строке кластера ADG;
  • Включить импорт настроек из кластера мониторинга (Рис.11).
../../../../_images/mi1.png

Рис. 11. Окно импорта настроек из кластера мониторинга

Настройка агентов журналирования

Переход к окну настроек сервиса Monitoring Agents производится аналогично остальным сервисам.

В разделе настроек необходимо заполнить список URL серверов кластера ElasticSearch для консолидации событий ADG (Рис.12).

../../../../_images/la1.png

Рис. 12. Окно настроек сервиса Logging Agents

Конфигурирование сeрвисов

Добавление узлов

По результатам предварительных действий в ADCM создано два узла посредством облачного провайдера YandexCloud (их адреса и учетные данные сохранены в их конфигурациях). Соответствующие ip-адреса машин и параметры доступа к ним задаются в разделе “Hosts → Configuration” при помощи кнопки с пиктограммой шестеренки. Теперь созданные хосты могут быть задействованы в ранее сконфигурированном кластере ADG:

  1. В меню кластера ADG открыть вкладку “Hosts” (Рис.13).
../../../../_images/cc7.png

Рис. 13. Вкладка “Hosts” кластера ADG

  1. Нажать “Add hosts” и в открывшейся форме выбрать необходимые узлы (Рис.14).
../../../../_images/cc8.png

Рис. 14. Выбор хостов

  1. В результате выполненных действий факт добавления хостов отображается в кластере ADG в списке вкладки “Hosts” (Рис.15).
../../../../_images/cc9.png

Рис. 15. Результат успешного добавления хостов

Размещение компонентов сервисов на хостах

Каждый сервис состоит из компонентов, которые должны быть размещены на хостах в кластере. Для этого необходимо на вкладке кластера “Hosts - Components” выбрать компонент посредством нажатия на него мышкой в колонке “Components” и определить для него необходимый хост в колонке “Hosts” (Рис.16).

../../../../_images/cc10.png

Рис. 16. Размещение компонентов сервисов на хостах

Поскольку службы сервера, клиента и мониторинга добавлены в кластер ADG, но еще не размещены на хостах, то изначально ни на одном из хостов нет компонентов:

  1. Привязка сервисов сервера и клиента

Кластер ADG включает в себя несколько компонент, многие из которых существуют в варинтах мастер/реплика:

  • Application – компонент REST API Grid;
  • Kafka connector – компонент подключения к кластеру Apache Kafka;
  • Grid Scheduler – планировщик задач кластера;
  • Grid Input Processor – обработчик входящих данных;
  • Grid Output Processor – обработчик исходящих данных;
  • Storage – экземпляр шарда in-memory хранилища;
  • Systemd log shipping agent – сервис сбора событий кластера;
  • System metrics agent – сервис сбора системных метрик хоста;
  • Cartridge cluster collector – сервис сбора внутренних метрик Grid.

На текущем шаге можно привязать компоненты к необходимым хостам. Для примера: все мастер-компоненты Grid привязаны к хосту adg1, все реплики – к adg2; агент сбора метрик и агент сбора событий – на обоих хостах, сервис сбора метрик Grid – на adg2 (Рис.17).

../../../../_images/cc11.png

Рис. 17. Пример привязки компонентов ADG к хостам

  1. Привязка компонентов мониторинга и логгирования (опционально):
  • System Metrics Agent – должен быть привязан ко всем хостам (adg1, adg2). Компонент позволяет собирать метрики с машин в кластере, а потому должен быть установлен на всех хостах;
  • Cartridge cluster collector – компонент запрашивает метрики через API кластера, поэтому необходим в одном экземпляре;
  • Systemd log shipping agent – компонент собирает события со всех инстансов Grid посредством journalctl и отправляет в кластер ElasticSearch. Должен быть установлен на всех хостах, содержащих компоненты Grid.

Установка сервисов ADG

Important

В первую очередь должны быть сконфигурированы и установлены компоненты Grid, a уже после – агенты сбора метрик и событий

Теперь все готово для установки сервисов ADG.

Предварительные процедуры

Для этого необходимо в поле “Actions” нажать на пиктограмму в строке сервиса Grid и выбрать действие Preinstall. В появившемся диалоговом окне можно выбрать следующие опции (по умолчанию выбраны рекомендованные значения, Рис.18):

  • Disable SElinux – отключение системы принудительного контроля доступа selinux;
  • Disable firewalld – отключение службы межсетевого экрана;
  • Clean hosts – очистка хостов после неудачной попытки установки Grid или иных сервисов Tarantool;
  • Check hosts for potential problems – проверка наличия предыдущих установок Grid, Tarantool, конфигурационных файлов, работающих процессов.
../../../../_images/pi1.png

Рис. 18. Предварительные шаги перед установкой Grid

Во время шага Preinstall на хостах настраиваются репозитории для установки компонентов ADG и устанавливаются необходимые пакеты.

Подготовка топологии

После шага Preinstall необходимо сгенерировать топологию кластера.

Топология:Описание расположения компонентов кластера, их настройка, а также конфигурация прикладной части Grid в формате JSON. Топология служит для аркестрации установки кластера, последующего добавления, удаления компонентов, изменения конфигурации.
Инстанс:Экземпляр процесса, выполняющий определенную роль.

Например, инстанс типа storage: storage-2-master-1 – из наименования однозначно определяется:

  • storage – тип инстанса;
  • storage-2 – наименование репликасета, где 2 – индекс репликасета;
  • master – роль в репликасете;
  • 1 – индекс инстанса.

Таким образом репликасет storage-2 может содержать следующие инстансы:

  • storage-2-master-1
  • storage-2-replica-1
  • storage-2-replica-2

Для генерации первичной топологии в поле “Actions” необходимо нажать на пиктограмму в строке сервиса Grid и выбрать действие Create_topology. По завершении этого шага во вкладке с конфигурацией сервиса Grid будет заполнено поле “cluster_topology” (Рис.19).

../../../../_images/ct1.png

Рис. 19. Окно конфигурации Grid после генерации топологии

Установка кластера Grid

Для развертывания кластера согласно сгенерированной топологии необходимо в окне сервиса Grid нажать кнопку Install.

Установка HTTP API Proxy

HTTP-Proxy представляет собой единую точку входа в API приложения, развернутого в кластере Grid. Сервис является балансировщиком нагрузки между всеми инстансами Application API. Для установки данного сервиса необходимо:

  1. В окне кластера Grid добавить сервис HTTP Proxy for API service.
  2. В окне выбора хоста назначить сервис на желаемый хост.
  3. Призвести установку кнопкой Install.
  4. После успешной установки URL для API и UI Cartridge появляется во вкладе “Main” сервиса.

Установка сервиса резервного копирования

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

  1. В окне кластера Grid добавить сервис Backup service.
  2. В окне выбора хоста назначить сервис на желаемый хост.
  3. Произвести настройку плана резервного копирования:
  • path to store backup subtree – путь файловой системы на Backup-сервере. Данные располагаются по указанному пути, например, /var/backup в следующей структуре: /var/backup/$hostname/$timestamp/$instance_name, где:
    • $hostname – FQDN хоста, с которого снята резервная копия;
    • $timestamp – временная метка создания резервной копии;
    • $instance_name – имя экземпляра tarantool на данном хосте.
  • remote SSH user – UNIX-пользователь, с учетной записью которого будет производиться операция резервного копирования. Пользователь создается в процессе установки и добавляется в группу tarantool;
  • cron-style backup job schedule – расписание выполнения резервного копирования в формате cron;
  • random delay for parallel jobs – задает предел в минутах, из которого случайным образом выбирается задержка перед стартом процедуры резервного копирования на каждом хосте;
  • backups retention in days – период хранения резервных копий в днях.
  1. Произвести установку сервиса.
  2. После успешной установки для отключения сервиса необходимо воспользоваться кнопкой disable, а для применения измененных настроек – кнопкой reinstall.

Установка клиентов мониторинга

Сервис мониторинга опционален и требует импорта конфигурации из кластера Monitoring, поэтому данный кластер должен быть предварительно развернут. Кластер мониторинга предоставляет такие параметры, как ip-адреса серверов сбора метрик, пароль и логин:

  1. Для импорта конфигурации кластера Monitoring в кластер ADG необходимо в ADCM открыть вкладку “CLUSTERS”, выбрать опцию Import и в диалоговом окне отметить все опции сервиса (Рис.20).
../../../../_images/mi1.png

Рис. 20. Импорт конфигурации кластера Monitoring

  1. Установка клиентов мониторинга в кластер ADG:

В процессе установки сервиса Monitoring clients устанавливаются агенты сбора метрик и настраиваются дашборды в сервисе Grafana кластера Monitoring.

  • В кластере ADG на вкладке “Services” в поле “Actions” нажать на пиктограмму и выбрать действие install для сервиса Monitoring clients;
  • В диалоговом окне подтвердить выполнение указанного действия;
  • По результатам инсталляции сервис Monitoring clients меняет состояние с created – создан, на running – запущен.

Установка агентов журналирования событий

Сервис Logging agents опционален и может не устанавливаться при отсутствии кластера ElasticSearch.

  • В кластере ADG на вкладке “Services” в поле “Actions” нажать на пиктограмму и выбрать действие install для сервиса Logging agents;
  • В диалоговом окне подтвердить выполнение указанного действия;
  • По результатам инсталляции сервис Logging agents меняет состояние с created – создан, на running – запущен.

После запуска сервиса в кластере ElasticSearch должны появиться индексы journalbeat, содержащие события, собираемые с кластера Grid (Рис.21, Рис.22).

../../../../_images/es1.png

Рис. 21. Представление Index pattern

../../../../_images/es2.png

Рис. 22. Список событий Grid в ElasticSearch