Создание кластера ADG¶
После выполнения предварительных действий и загрузки бандла в кластер-менеджере ADCM содержится следующий список объектов:
- Прототип кластера мониторинга и установленный из этого прототипа кластер (в данном примере компоненты кластера мониторинга установлены на одном хосте ADG-monitoring);
- Прототип кластера ADG для создания экземпляра кластера;
- Предварительно сгенерированные два хоста в облачном провайдере YandexCloud. Иными словами, в разделе “Hosts” присутствуют две запиcи о соответствующих хостах, в этот момент все хосты физически созданы и запущены в среде провайдера (Рис.5).
Данным объектам доступна следующая функциональность:
- Создание экземпляра кластера;
- Конфигурация кластера;
- Добавление сервисов;
- Конфигурирование сeрвисов;
- Добавление узлов;
- Размещение компонентов сервисов на хостах;
- Установка сервисов ADG;
- Установка HTTP API Proxy;
- Установка сервиса резервного копирования;
- Установка клиентов мониторинга.
- Установка агентов журналирования событий.
Создание экземпляра кластера¶
Фактическая установка ADG на целевых хостах осуществляется после выполнения следующих шагов:
- Открыть в ADCM вкладку “CLUSTERS” (Рис.6).
- Нажать “Add cluster” и в открывшейся форме выбрать из списка бандл ADG, создав тем самым экземпляр кластера (Рис.7).
- В результате выполненных действий факт создания экземпляра кластера отображается в базе данных ADCM на вкладке “CLUSTERS” (Рис.8).
Конфигурация кластера¶
Для перехода к настройкам экземпляра кластера ADG необходимо нажать кнопку с пиктограммой шестеренки в соответствующей строке вкладки “CLUSTERS” (Рис.8) и перейти в раздел меню “Configuration”. При этом открывается окно конфигурации выбранного экземпляра (Рис.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).
Настройки включают в себя следующие элементы:
- Объем памяти в байтах для каждого типа инстанса 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).
Конфигурирование сeрвисов¶
Добавление узлов¶
По результатам предварительных действий в ADCM создано два узла посредством облачного провайдера YandexCloud (их адреса и учетные данные сохранены в их конфигурациях). Соответствующие ip-адреса машин и параметры доступа к ним задаются в разделе “Hosts → Configuration” при помощи кнопки с пиктограммой шестеренки. Теперь созданные хосты могут быть задействованы в ранее сконфигурированном кластере ADG:
- В меню кластера ADG открыть вкладку “Hosts” (Рис.13).
- Нажать “Add hosts” и в открывшейся форме выбрать необходимые узлы (Рис.14).
- В результате выполненных действий факт добавления хостов отображается в кластере ADG в списке вкладки “Hosts” (Рис.15).
Размещение компонентов сервисов на хостах¶
Каждый сервис состоит из компонентов, которые должны быть размещены на хостах в кластере. Для этого необходимо на вкладке кластера “Hosts - Components” выбрать компонент посредством нажатия на него мышкой в колонке “Components” и определить для него необходимый хост в колонке “Hosts” (Рис.16).
Поскольку службы сервера, клиента и мониторинга добавлены в кластер ADG, но еще не размещены на хостах, то изначально ни на одном из хостов нет компонентов:
- Привязка сервисов сервера и клиента
Кластер 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).
- Привязка компонентов мониторинга и логгирования (опционально):
- 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, конфигурационных файлов, работающих процессов.
Во время шага 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).
Установка кластера Grid¶
Для развертывания кластера согласно сгенерированной топологии необходимо в окне сервиса Grid нажать кнопку Install.
Установка HTTP API Proxy¶
HTTP-Proxy представляет собой единую точку входа в API приложения, развернутого в кластере Grid. Сервис является балансировщиком нагрузки между всеми инстансами Application API. Для установки данного сервиса необходимо:
- В окне кластера Grid добавить сервис HTTP Proxy for API service.
- В окне выбора хоста назначить сервис на желаемый хост.
- Призвести установку кнопкой Install.
- После успешной установки URL для API и UI Cartridge появляется во вкладе “Main” сервиса.
Установка сервиса резервного копирования¶
Данный сервис позволяет настроить автоматическое резервное копирование данных с инстансов Tarantool на выделенный сервер. Для установки сервиса необходимо:
- В окне кластера Grid добавить сервис Backup service.
- В окне выбора хоста назначить сервис на желаемый хост.
- Произвести настройку плана резервного копирования:
- 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 – период хранения резервных копий в днях.
- Произвести установку сервиса.
- После успешной установки для отключения сервиса необходимо воспользоваться кнопкой disable, а для применения измененных настроек – кнопкой reinstall.
Установка клиентов мониторинга¶
Сервис мониторинга опционален и требует импорта конфигурации из кластера Monitoring, поэтому данный кластер должен быть предварительно развернут. Кластер мониторинга предоставляет такие параметры, как ip-адреса серверов сбора метрик, пароль и логин:
- Для импорта конфигурации кластера Monitoring в кластер ADG необходимо в ADCM открыть вкладку “CLUSTERS”, выбрать опцию Import и в диалоговом окне отметить все опции сервиса (Рис.20).
- Установка клиентов мониторинга в кластер 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).