Требования к установке
Для установки AD. C по данной инструкции необходимо выполнение следующих требований:

1. Операционная система– Ubuntu 20.04.4 LTS, CentOS 7.9.2009, Ред ОС 7.3, ALT Server 10.1 (Mendelevium), Astra Linux Воронеж 1.7.
2. ПО- Docker version 20.10.17, build 100c701.
3. ПО Docker compose version 1.29.2.
4. Пользователь с правами sudo.

Следует проверить версию установленного Docker Compose на соответствие требованиям.
В неподходящей версии Docker compose сборка не произойдет, так как используется версия контейнера 3.9.

Можно воспользоваться командой:

docker-compose -v

В случае отсутствия необходимо произвести установку согласно инструкции.
Подготовка к установке
Необходимо выполнить команду аутентификации на сервере репозитория, используя реквизиты полученные в технической поддержке:

docker login repo.arenadc.io -u login -p password
Далее необходимо загрузить файл Docker compose и enviroment файлы по ссылке предоставленной технической поддержкой.

В environment файлах:

1. data-sec.json — отвечает за наполнение realm хранилища, Keycloak модуля аутентификации (заполнять при использовании docker-compose-keycloak.yml), необходимо заполнить поля связанные с host (искать — 10.80.0.46/postgresql) ,
2. adc. env — отвечает за параметризацию переменных docker-compose-keycloak.yml необходимо заменить поля связанные с host (искать — 10.80.0.46/postgresql)

AUTHORIZER_CLASS_NAME=org.openmetadata.service.security.DefaultAuthorizer
AUTHORIZER_REQUEST_FILTER=org.openmetadata.service.security.JwtFilter
AUTHORIZER_ADMIN_PRINCIPALS=[admin]
AUTHORIZER_PRINCIPAL_DOMAIN=open-metadata.org
AUTHENTICATION_PROVIDER=custom-oidc
CUSTOM_OIDC_AUTHENTICATION_PROVIDER_NAME=KeyCloak
AUTHENTICATION_PUBLIC_KEYS=[http://10.80.0.22:8081/realms/datasec/protocol/openidconnect/certs,http://10.80.0.22:8585/api/v1/system/config/jwks]
AUTHENTICATION_AUTHORITY=http://10.80.0.22:8081/realms/data-sec
AUTHENTICATION_CLIENT_ID=open-metadata
AUTHENTICATION_CALLBACK_URL=http://10.80.0.22:8585/callback
3. adc-noauth.env — отвечает за параметризацию переменных docker-compose.yml необходимо заменить поля связанные с host (искать — 10.80.0.46/postgresql);

Указанные выше файлы необходимы для параметризации Docker compose и интеграции Keycloak c Data Catalog. Есть альтернативный способ настройки интеграции через web-интерфейс Keycloak, который находится на порту 8081. Также есть облегченная сборка compose без использования Keycloak.
Установка ПО
Для работы приложения рекомендуется использовать директорию «/opt/adc/».
Загруженную конфигурацию для docker compose поместить в директорию «/opt/adc/» и перейти в эту директорию.

cd /opt/adc/
Чтобы запустить ПО выполните в консоли одну из следующих команд:

sudo docker compose -f docker-compose.yml --env-file adc-noauth.env up -d #basic authentication
#or
sudo docker compose -f docker-compose-keycloak.yml --env-file adc.env up -d #keycloak authentication
Необходимо ожидание инициализации базы данных в пределах 10 минут.
В случае использования внешней БД PostgreSQL в выбранном из вышеперечисленных enviroment — файлов надо переопределить значения блока подключения к БД, а именно:

#Database configuration for server container
SERVER_DB_DRIVER_CLASS=org.postgresql.Driver
SERVER_DB_SCHEME=postgresql
SERVER_DB_USE_SSL=false
SERVER_DB_USER=openmetadata_user
SERVER_DB_USER_PASSWORD=openmetadata_password
SERVER_DB_HOST=postgresql
SERVER_DB_PORT:-5432
SERVER_DB_DATABASE=openmetadata_db
Перед установкой системы необходимо создать сущности в БД, выполнив int. sql cкрипт, что поставляется в комплекте с docker compose environment. Использовать скрипты необходимо только при условии выделенной PostgreSQL, в случае использования встроенного контейнера БД, миграции проводить необходимости нет.

Примечание: в случае необходимости выполнения миграций по БД нужно учитывать факт наличия volume, и при наличии использовать команды: docker cp, docker exec, psql >.

Для контейнера БД также предусмотрено автоматизированное бекапирование с ротацией дампов:

cron_backup.sh #add/delete job with backup_pg.sh to cron
backup_pg.sh   #create pg_dump with timestamp and rotate
После установки приложения, для корректной загрузки DAG Airflow выставить права на папку с дагами:

  sudo chmod 777 –R /opt/adc/ingestion-dags
Для корректного перехода на DAG airflow из Web UI ADC изменить docker-compose файлы, изменить ingestion на IP хоста с ADC:

# ADC Server Airflow Configuration
PIPELINE_SERVICE_CLIENT_ENDPOINT: ${PIPELINE_SERVICE_CLIENT_ENDPOINT:-
http://ingestion:8080}
Загрузить скаченные образы в docker images:

docker load < adc-db-v0.4.0.zip
Проверка доступности сервиса
Понять о состоянии сервисов можно по средством команд:

docker ps –a 
docker compose ps -a 
docker compose logs 
После инициализации БД запускаем Arenadata Catalog в web-браузере по адресу:

http://[server_addres]:8585

В случае технической необходимости остановить сервисы и/или переустановить сервисы используем следующие команды:

cd /opt/addc         #stop all containers
docker compose stop  #stop all containers
docker compose rm    #stop all containers
docker volume prune  #clear all volumes
docker container prune  #clear all containers
Обновление и бэкапирование
Обновление приложения может быть произведено несколькими способами, в зависимости от наличия внешней базы данных, необходимости восстановления новой версии из бэкапа. Дополнительно рекомендуется перед обновлением ПО выполнить бэкап сервера или виртуальной машины, на которой установлено приложение, а также выполнить бэкап базы данных).

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

Важно: перед обновлением необходимо удалить индекс Elasticsearch предыдущей версии (удалить volume ES).
Обновление при наличии внешней базы данных Postgres
Важно: во избежание потери данных - обязательно выполнить бэкапирование внешней БД доступными средствами или по данной инструкции.

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

sudo docker-compose -f docker-compose.yml --env-file adc_noauth.env down
или
sudo docker-compose -f docker-compose-keycloak.yml --env-file adc.env up -
d
Затем выполнить следующие шаги:
  • Загрузить новую версию ПО по предоставленной ссылке.
  • Изменить конфигурационные файлы acd. env или adc_noauth.env для подключения к
  • внешней базе.
  • Примечание: в случае обновления с версии 0.3.1 на 0.4.0 перед обновлением применить sql скрипт для миграции данных, предоставленный технической поддержкой.
  • Включить приложение
Обновление с использованием бэкапа базы предыдущей версии ПО
Во избежание потери данных - обязательно сделать бэкап БД

Выполните следующие шаги:
  • При необходимости выполнить скрипт для миграции на работающей БД
  • Сделать бэкап работающей базы
  • Остановить приложение
  • Установить новую версию
  • Выполнить восстановление базы данных из бэкапа
Бэкап данных приложения
Для бэкапа данных приложения выполнить шаги:
• Создать бэкап базы данных :

sudo docker exec adc_postgresql_1 pg_dump -U postgres -Ft --column-inserts
-d openmetadata_db > /opt/adc/db_backups/dump_openmetadata.tar
sudo docker exec adc_postgresql_1 pg_dump -U postgres --column-inserts -d
openmetadata_db > /opt/adc/db_backups/dump_openmetadata.sql
sudo docker exec adc_postgresql_1 pg_dump -U postgres -Ft --column-inserts
-d airflow_db > /opt/adc/db_backups/dump_air.tar
sudo docker exec adc_postgresql_1 pg_dump -U postgres --column-inserts -d
openmetadata_db > /opt/adc/db_backups/dump_air.sql
sudo docker exec adc_postgresql_1 pg_dump -U postgres -Ft --column-inserts
-d camunda_db > /opt/adc/db_backups/dump_camunda.tar --при необходимости
sudo docker exec adc_postgresql_1 pg_dump -U postgres --column-inserts -d
camunda_db > /opt/adc/db_backups/dump_camunda.sql --при необходимости
Сделать бэкапы сгенерированных DAGs для ingestions и их config JSON файлов:

sudo docker cp adc_ingestion_1:/opt/airflow/dags /opt/adc/db_backups/dags
sudo docker cp adc_ingestion_1:/opt/airflow/dag_generated_configs
/opt/adc/db_backups/dag_generated_configs
Восстановление из бэкапа
Активным должен быть только контейнер PostgeSQL, остальные контейнеры необходимо остановить:

sudo docker stop <container name>
Удалить и создать схемы public для баз openmetadata_db, airflow_db:

DROP SCHEMA IF EXISTS public CASCADE;
CREATE SCHEMA IF NOT EXISTS public;
Загрузить файл с бэкапом базы данных в контейнер postgres:

sudo docker cp /opt/adc/db_backups/dump_openmetadata.tar <postgres
container>:/home
sudo docker cp /opt/adc/db_backups/dump_air.tar <postgres container>:/home
Выполнить загрузку данных в базу данных из файла бэкапа:

sudo docker exec adc_postgresql_1 pg_restore -U postgres -d
openmetadata_db /home/dump_openmetadata.tar
sudo docker exec adc_postgresql_1 pg_restore -U postgres -d
openmetadata_db /home/dump_air.tar
(Необязательный шаг) При необходимости восстановить загрузить бэкапы DAGs и их config JSON файлы в контейнер ingestion

sudo docker cp /opt/adc/db_backups/dags adc_ingestion_1:/opt/airflow/dags
sudo docker cp /opt/adc/db_backups/dag_generated_configs
adc_ingestion_1:/opt/airflow/dag_generated_configs
Включить контейнеры adc_server, adc_ingestion:

sudo docker start <container_name>
Затем выполнить следующие шаги:
  • Выполнить «Переиндексировать все» в разделе Настройки/Поиск в приложении.
  • Создать новый токен для ingestion bot. Зайти в Настройки/Боты/Отозвать токен.
  • В#nbsp;Настройках/Сервисы зайти на нужные сервисы, далее загрузки выполнить переустановить на загрузках (ingestions).
В случае возникновения трудностей при установке программного обеспечения, свяжитесь с технической поддержкой, используя электронный адрес info@arenadc.io.
Перенос данных Keycloak и других данных приложения
В целом перенос других данных приложения таких, как данные пользователей Keycloak, логи, ДАГи Airflow их их конфигурации, может быть произведен путем подстановки docker volumes. Ниже представлен пример по переносу docker volume Keycloak.

Важно: НЕ переносить БД таким образом, выполнять только через бэкап и восстановление БД.
Войти под пользователем с правами sudo
• Скопировать папку с данными предыдущего инстанса Keycloak:

cp -r /var/lib/docker/volumes/adc{old_folder_name}_keycloak-data/_data /your_folder
Запустить новую версию приложения, включится новый инстанс Keycloak, если запуск происходил из папки отличной от предыдущей версии приложения, создастся новый volume.
• Скопировать папку _data в новый volume:

cp -r /your_folder/_data /var/lib/docker/volumes/adc{new_folder_name}_keycloak-data/
Перезапустить adc:

sudo docker-compose -f docker-compose-keycloak.yml --env-file adc.env down
sudo docker-compose -f docker-compose-keycloak.yml --env-file adc.env up -d
Настройка Keycloak
После развертывания Keycloak, необходимо выполнить настройку для корректной работы интеграции. При возникновении трудностей на стороне Keycloak, рекомендуем обратиться к документации.
Чтобы перейти в web-UI Keycloak перейдите по адресу host:8081 (8081 – порт по умолчанию). UI Keycloak поддерживает не все браузеры, рекомендуем использовать Google Chrome и подобные.

После перехода в интерфейс выполните шаги:
  1. Создайте новый Realm с любым наименованием

Создание Realm

2. Создайте Client, заполнив Client ID и Client Protocol, аналогично скриншоту ниже:

Создание Client

3. Задайте и сохраните настройки клиента, аналогично скриншотам ниже:

Настройки Client

4. Создайте пользователя (User)

Создание пользователя

5. Задайте пароль пользователю. Необходимо снять флаг Temporary

Создание пользователя

6. Изменить переменные окружения в docker-compose-keycloak.yml и в adc.env, указав хост и порт к keycloak и новому realm
Заменить host:8081 и “your_realm”:

AUTHENTICATION_PUBLIC_KEYS=[   http://host/realms/your_realm/protocol/openid-connect/certs,http://host:8585/api/v1/config/jwks ]
AUTHENTICATION_AUTHORITY=   http://host/realms/your_realm

7. Перезапустите контейнеры Arenadata Catalog
Дополнительная информация по настройкам интеграции

AUTHORIZER_ADMIN_PRINCIPALS=[admin]
AUTHORIZER_PRINCIPAL_DOMAIN=@your_domain.ru
AUTHENTICATION_PROVIDER=custom-oidc
CUSTOM_OIDC_AUTHENTICATION_PROVIDER_NAME=KeyCloak
AUTHENTICATION_PUBLIC_KEYS=[   http://host:8081/realms/data-sec/protocol/openid-connect/certs,http://host:8585/api/v1/system/config/jwks ]
AUTHENTICATION_AUTHORITY=   http://host:8081/realms/data-sec
AUTHENTICATION_CLIENT_ID=open-metadata
AUTHENTICATION_CALLBACK_URL=   http://host:8585/callback
AUTHORIZER_ADMIN_PRINCIPALS — параметр конфигурации, который предоставляет приложению список начальных администраторов.
Это значение списка, и оно обычно соответствует вашей первой половине официального адреса электронной почты (например user@arenadc., — тогда авторизованый пользователь с правами админа будет [user], то есть все, что предшествует @<your_domain_ >).
AUTHORIZER_PRINCIPAL_DOMAIN — домен из адреса электронной почты (пример arenadc. io)
AUTHENTICATION_PROVIDER — указывает, что будет использоваться пользовательский OIDC провайдер (в данном случае, Keycloak) для аутентификации.
CUSTOM_OIDC_AUTHENTICATION_PROVIDER_NAME=KeyCloak: Имя вашего пользовательского OIDC провайдера.
AUTHENTICATION_PUBLIC_KEYS=[…]: = Список URL-ов для получения открытых ключей, используемых для проверки JWT токенов.
AUTHENTICATION_AUTHORITY= host:8081/realms/data-sec: Это URL-адрес Keycloak, который будет использоваться в качестве источника аутентификации.
AUTHENTICATION_CLIENT_ID=open-metadata: Идентификатор клиента, который будет использоваться для аутентификации с Keycloak.
AUTHENTICATION_CALLBACK_URL= http://host:8585/callback: URL-адрес обратного вызова, на который Keycloak будет перенаправлять пользователя после успешной аутентификации.
Мониторинг
Для удобного отслеживания журнала логов приложения и событий аудита Arenadata Catalog использует Grafana. Для просмотра этих данных выполните следующие шаги:
1. Перейти в grafana по адресу: host:3000, в левом боковом меню выбрать раздел Explore, по умолчанию логин и пароль: admin/admin (при первом входе необходимо сменить пароль).
2. В выпадающем меню в верхней части заменить Grafana на Loki.
3. В кладке Label filters выбрать “file”.
4. После условия “=” выбрать openmetadata.log для просмотра событий приложения или audit.log для просмотра событий аудита..
5. Запустить запрос нажав в правом верхнем углу кнопку “Run Query”, при необходимости выставить временной интервал.

Просмотр логов приложения

Дополнительно: для просмотра логов можно воспользоваться командой: docker logs