Перейти к основному содержимому

08 Установка с помощью ADCM

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

  1. Наличие Arenadata Cluster Manager, сокращённо ADCM. Это универсальный оркестратор гибридного ландшафта. Минимально совместимая версия 2022.04.18.13 или выше.
  2. Наличие установочного бандла Datacatalog BI Luxms Edition.
  3. Соответствие целевых машин следующим параметрам:
  • Наличие трёх-четырех серверов для установки в зависимости от выбора конфигурации.
  • Все сервера обладают статическими IP адресами.
  • Все сервера имеют уникальные hostname.
  • Минимальные требования для машин:
    • CPU: 4
    • Memory: 4GB
    • HDD/SSD: 20GB
  1. Наличие на машинах доступа к следующим репозиториям в зависимости от операционной системы. На данный момент поддерживается Rocky 9, AstraLinux SE 1.8, Redos 8.

Репозитории:

На Rocky:

  • Main Rocky9 repo
  • Epel repository
  • Datacatalog BI Luxms Edition
  • Datacatalog BI Luxms Edition Thirdparty
На Astra Linux 1.8:
  • Astra base repo
  • Astra extended repo
  • Datacatalog BI Luxms Edition
  • Datacatalog BI Luxms Edition Thirdparty
На Redos 8:
  • Redos 8 base repo
  • Redos 8 updates repo
  • Datacatalog BI Luxms Edition
  • Datacatalog BI Luxms Edition Thirdparty

Доступ к репозиториям Datacatalog BI Luxms Edition и Datacatalog BI Luxms Edition Thirdparty осуществляется при наличии соглашения и предоставляется по запросу. Остальные репозитории можно получить из официальных источников.

  1. Наличие пользователя через которого осуществляется доступ к хостам в группах sudo или wheel.
  2. Наличие включенных firewalld или ufw сервисов, что даёт дополнительную защиту.

Возможные архитектуры

Данный способ развертывания подразумевает под собой 2 варианта конфигурации системы с тремя и четырьмя хостами.

Рассмотрим вариант с 3 хостами.

Описание компонентов:

  • Consul - это Distributed Control Service (DCS), обеспечивает обнаружение сервисов, проверку работоспособности, балансировку нагрузки.
  • DCBI PostgreSQL - База данных Datacatalog BI Luxms Edition - универсальное хранилище данных, в котором хранится список пользователей, права доступа, данные для визуализации и их настройки.
  • Keydb Server - Нужен для взаимодействия между компонентами Datacatalog BI Luxms Edition, построен с использованием быстрой in-memory database KeyDB.
  • Nats Server - Это система обмена сообщениями, включающая в себя функции по хранению объектов
  • DCBI Appserver - Предоставляет API для управления настройками приложения Datacatalog BI Luxms Edition. Обеспечивает взаимодействие со сторонними источниками данных. Реализует функционал импорта, обработки и загрузки данных по расписанию. А так же занимается формированием отчётов и презентаций.
  • DCBI Web - Фронтенд обеспечивающий отображение подготовленных данных Datacatalog BI Luxms Edition.
  • DCBI Databoring - Высокоскоростной ETL инструмент для подготовки данных к визуализации в Datacatalog BI Luxms Edition.
  • HAProxy — Программное обеспечение для организации высокой доступности и балансировки нагрузки для TCP- и HTTP-приложений посредством распределения входящих запросов на несколько обслуживающих серверов.

Количество компонентов, установленных на отдельные хосты:

  • Consul - 3шт.
  • DCBI PostgreSQL - 2шт.
  • Keydb Server - 2шт.
  • Nats Server - 3шт.
  • DCBI Appserver - 2шт.
  • DCBI Web - 2шт.
  • DCBI Databoring - 2шт.
  • HAProxy - 1шт.

Рассмотрим вариант с 4 хостами.

Описание компонентов:

  • Consul - это Distributed Control Service (DCS), обеспечивает обнаружение сервисов, проверку работоспособности, балансировку нагрузки.
  • DCBI PostgreSQL - База данных Datacatalog BI Luxms Edition - универсальное хранилище данных, в котором хранится список пользователей, права доступа, данные для визуализации и их настройки.
  • Keydb Server - Нужен для взаимодействия между компонентами Datacatalog BI Luxms Edition, построен с использованием быстрой in-memory database KeyDB.
  • Nats Server - Это система обмена сообщениями, включающая в себя функции по хранению объектов
  • DCBI Appserver - Предоставляет API для управления настройками приложения Datacatalog BI Luxms Edition. Обеспечивает взаимодействие со сторонними источниками данных. Реализует функционал импорта, обработки и загрузки данных по расписанию. А так же занимается формированием отчётов и презентаций.
  • DCBI Web - Фронтенд обеспечивающий отображение подготовленных данных Datacatalog BI Luxms Edition.
  • DCBI Databoring - Высокоскоростной ETL инструмент для подготовки данных к визуализации в Datacatalog BI Luxms Edition.
  • HAProxy — Программное обеспечение для организации высокой доступности и балансировки нагрузки для TCP- и HTTP-приложений посредством распределения входящих запросов на несколько обслуживающих серверов.
  • Keepalived — это программное обеспечение для маршрутизации. Основная цель этого проекта — предоставить простые и надежные средства балансировки нагрузки и высокой доступности для систем Linux и инфраструктур на базе Linux

Количество компонентов, установленных на отдельные хосты:

  • Consul - 3шт.
  • DCBI PostgreSQL - 2шт.
  • Keydb Server - 2шт.
  • Nats Server - 3шт.
  • DCBI Appserver - 2шт.
  • DCBI Web - 2шт.
  • DCBI Databoring - 2шт.
  • HAProxy - 2шт.
  • Keepalived - 2шт.

Подготовка к установке:

Краткое описание установки ADCM менеджера. За более подробной инструкцией обратитесь к официальной документации.

  1. Требуется наличие докера.
  2. Установка должна производиться на отдельный хост не принадлежащий будущему кластеру.

Добавление репозиториев и установка докера:

dnf install -y yum-utils
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf install docker-ce docker-ce-cli

Запуск:

systemctl enable docker --now
  1. Запуск ADCM в докер контейнере:
mkdir -p /opt/adcm
docker run -d --name adcm -v /opt/adcm:/adcm/data -p 80:8000 hub.arenadata.io/adcm/adcm:2.3.0

Для загрузки определенной версии Docker-образа необходимо указать ее номер вместо ключевого слова latest в команде, приведенной выше.

  1. Проверим, что наш ADCM менеджер запустился.
docker ps

Должны увидеть, примерно, следующее:

CONTAINER ID   IMAGE                          COMMAND             CREATED        STATUS        PORTS                                   NAMES
0f5c9c31b0d7 arenadata/adcm:2.3.0 "/etc/startup.sh" 5 months ago Up 3 months 0.0.0.0:80->8000/tcp, :::80->8000/tcp adcm
  1. Открываем браузер и вводим хостнейм или IP адрес хоста, где был установлен ADCM менеджер. Если Вы обратили внимание, то
    мы запустили его на 80/TCP порту. Если требуется обеспечить соседство с другими аналогичными сервисами измените порт.

Первоначальные учётные данные для входа:

Логин: admin
Пароль: admin

Далее на странице настроек Вы можете сменить их на свои.

Добавление бандла в ADCM менеджер:

Ранее мы с Вами запустили ADCM и попали на страницу менеджера. В Левом меню выбираем вкладку Bundles

Здесь нам требуется загрузить несколько компонентов:

  1. SSH Common Bundle - для взаимодействия ADCM с целевыми хостами по SSH протоколу.
    Его можно найти на странице загрузки.
    Кстати, в наличии имеются провайдеры не только для доступа по SSH протоколу, но и деплой в наиболее распростанённые у нас облака YandexCloud, Sbercloud, VK Cloud.

  2. Datacatalog BI Luxms Edition Cluster Bundle - непосредственно наш пакет с установкой кластера.

В правом верхнем углу нажимаем кнопку Upload bundles и загружаем наши bundles. После этого
на основном экране Bundles появится ещё пару строчек с названием Datacatalog BI Luxms Edition Cluster и SSH Common

Настройка хост-провайдера:

Прежде чем добавлять хосты, нужно из ранее залитого SSH Common Bundle, сделать хост-провайдера.
Идём на страницу Hostproviders и нажимаем кнопку Create provider

Далее выбираем наш SSH Bundle, указываем версию. Название пишем SSH Provider
Если требуется добавьте своё описание. Нажимаем Create

Добавление хостов:

Что бы провести установку кластера, нам требуется добавить в ADCM менеджер целевые хосты, куда в
дальнейшем мы развернём наш кластер. Идём на вкладку Hosts Нажимаем кнопку Create host.

Выбираем Hostprovider указав туда ранее созданный нами SSH Provider и вводим FQDN хоста,
поле Cluster можно не заполнять. Далее жмём Create

Хост добавлен, теперь требуется настроить к нему доступ. Жмём на название хоста.

От нас требуется указать, какой вид авторизации использовать. Вы можете заполнить Username и Password,
если авторизация идёт по ключу, то добавить приватный ключ. Нажимаем Save. Так же можем вернутся к предыдущим настройкам в версии adcm 2.0.0 реализовали своеобразные snapshot настроек.

осторожно

Если пользователь отличается от суперпользователя, root, при настройке хостов добавить ранее
введённого пользователя в группу sudo или wheel
A так же, если не используется запись NOPASSWD:ALL, указать пароль, который используется для повышения привилегий через sudo.
Искать поле в самом низу Ansible become password.

После проделанных манипуляций стоит проверить, что ADCM может получить доступ на ранее добавленные хосты.
Нажимаем на стрелочку в кругах Actions и в выпадающем меню выбираем Check connection.
Ход выполнения можно посмотреть в меню Нотификаций Это правый верхний угол с пиктограммой звоночка.
Далее нужно установить Install statuschecker это проверит возможность повышения привилегий.

Зачем нужен этот Install statuschecker это установит службу проверки хоста, которая периодически шлёт keepalive
запросы в ADCM менеджер и при положительном ответе поменяет значёк статуса хоста с желтого сигнала
на зелёный.
Повторить операции, пока все хосты кластера не будут добавлены.

Предварительная настройка кластера перед установкой:

Теперь переходим к конфигурированию самого кластера.
Открываем вкладку Clusters. Далее жмём кнопку Create Cluster

В открывшемся меню выбираем Bundle под названием Datacatalog BI Luxms Edition Cluster. Указываем версию, если
у вас ранее была другая, то можно будет выбрать между ними. Вписываем Cluster name, по желанию
добавляем описание Description и нажимаем Create

Нажимаем на название ранее добавленного кластера.

Пойдём по порядку и добавим компоненты для установки. Нажимаем в верхнем меню кнопку Services.

Нажимаем кнопку Add services Здесь от нас требуется выбрать какие компоненты устанавливать, в случае установки на трехузловую конфигурацию выбираем все кроме Keepalived. Если конфигурация четырех узловая то все сервисы.

Некоторые компоненты, такие как (DCBI Appserver, DCBI PostgreSQL, DCBI Web, Keepalived) имеют свои настройки. Которые Вы можете посмотреть в каждом из сервисов во вкладке Configuration

Идём далее во вкладку Hosts, здесь требуется добавить целевые хосты нашего будущего кластера.
Нажимаем Add hosts и выбираем ранее добавленные нами в разделе Добавление хостов

Вкладка Mapping. Она важна т.к здесь мы распределяем компоненты по нашим хостам.
Выбираем компонет и нажимаем Add hosts выбираем хосты на которые он будет установлен. Важно учесть минимальные требования по количеству компонентов распределённых по хостам. Посмотреть необходимое количество можно на схеме Возможные архитектуры. Без этого условия кнопка Save будет недоступна. После правильного распределения, можно записать конфигурацию.

Заполненый вариант с компонентами для 4х узлового варианта установки:

Вкладка Configuration содержит список репозиториев, которые можно подключить непосредственно
из ADCM. Для этого указать правильный путь до репозитория, если есть логин и пароль то их тоже.
Так же в поле enabled: поменять с False на True. Не забываем записать Save

Далее непосредственная установка кластера.

Автоматическая установка:

Далее нажимаем на вкладку слева Clusters и на стрелочку в круге жмем Install Cluster. Далее в нужном порядке будет произведена установка кластера.
Остаётся только дождаться, когда все сервисы будут установлены и активированы.

Проверка хода инсталляции:

В верхнем меню есть значёк звоночка, при нажатии на него мы попадём в меню оповещений. Где Вы
сможете наблюдать за ходом инсталяции. В примере все таски закончились положительно. Кластер
инсталлирован.

Дополнительные возможности по конфигурированию:

Следующие компоненты имеют дополнительные возможности конфигурирования, позволяя настроить сервисы более тонко. Чтобы войти в настройки сервисов нужно нажать на вкладку слева Cluster -> Services далее нажимаем на название нужного нам сервиса.

  • DCBI PostgreSQL
  • DCBI Appserver
  • DCBI Web
  • Keepalived
  • Nats-server

Описание доступных настроек по компонентам:

DCBI PosgreSQL:

  • DCBI DB connection settings - Раздел по настройке соединений с базой для всего Datacatalog BI Luxms Edition
    • DCBI DB Username: (залочен)
    • DCBI DB Password: Позволяет задать пароль к пользователю BI
    • PostgreSQL Data Dir: Путь установки базы данных на диске (после установки будет заблокирован)
  • Patroni DB security settings - Раздел с названием инстанса Patroni в Consul cluster
    • DB consul service name: (после установки будет заблокирован)
  • PostgreSQL database tuning - Возможности тонкой настройки базы данных
    • max_connections:
    • shared_buffers(MB):
    • effective_cache_size(MB):
    • maintenance_work_mem(MB):
    • checkpoint_completion_target:
    • wal_buffers(MB):
    • default_statistics_target:
    • random_page_cost:
    • effective_io_concurrency:
    • work_mem(MB):
    • min_wal_size(MB):
    • max_wal_size(MB):
    • max_worker_processes:
    • max_parallel_workers:
    • max_parallel_workers_per_gather:
    • max_parallel_maintenance_workers:

DCBI Appserver:

  • Appserver settings - Настройки пула коннектов
    • min-pool-size
    • max-pool-size
  • Appserver settings JVM MaxHeapSize
    • JVM_MaxHeapSize:
  • SMTP - Настройки работы с почтой для нотификации
    • SMTP host:
    • SMTP port:
    • SMTP username:
    • SMTP password:
    • SMTP from address:
    • SMTP retry count:
    • SMTP retry interval:
    • SMTP auth:
    • SMTP ssl enable:
    • SMTP transport protocol:

DCBI Web:

  • Web panel settings - Настройка логина и пароля к веб фронтенду
    • Web Username: (залочен)
    • Web Password:
  • Nginx service tuning - тонкая настройка Nginx сервера
    • Nginx worker processes count:
    • Nginx worker connections:
    • Lua DB pool size:

Keepalived:

  • Keepalived settings
    • vrrp_ipaddress:
    • keepalived_auth_pass:

Nats-server:

  • Nats settings
    • Nats SYS user
    • Nats SYS password

После изменения не забываем нажать кнопку Save

Все эти настройки могут быть изменены во время работы, после установки кластера, либо будут
применены для установки вашего кластера, если вы ещё этого не сделали.

Дополнительные возможности по управлению:

Мы постарались учесть пожелания наших клиентов и добавили дополнительный функционал по
управлению сервисами. От сервиса к сервису их количество немного различается, но в целом их
функционал одинаков. Опишем общие положения. Открываем наш Cluster, меню Services
Нажимаем стрелочку в круге Actions нужного нам компонента.

Описание тасков по управлению:

  • Install - Установка компонента согласно распределённому перечню по хостам.

  • Delete service - Удаление сервиса из списка Services, добавить снова можно через кнопку Add services

  • Reconfigure & Restart - При изменении настроек Configuration в таких сервисах, как (DCBI Appserver, DCBI PostgreSQL, DCBI Web, Keepalived) изменения конфигурации могут быть применены во время работы приложения.

  • Start - Запуск компонента на хостах кластера

  • Stop - Остановка компонента на хостах кластера

  • Uninstall - Удаление компонента.

осторожно

Uninstall не удаляет базу данных (PostgreSQL) на диске. Если вы хотите сохранить её вручную после удаления кластера, найдите хост на котором последней была роль Мастера.