Установка веб-интерфейса компонента Kintsugi (DBCM)#

Ручная установка#

Перед началом установки убедитесь, что выполнена подготовка окружения.

Для ручной установки веб-интерфейса компонента Kintsugi (DBCM) выполните следующие этапы:

  1. Распакуйте дистрибутив Kintsugi (DBCM).

  2. Выполните настройку системных баз данных, для этого настройте:

    1. БД метаданных Platform V Pangolin DB (или PostgreSQL).

    2. БД хранения порогов метрик.

    3. БД мониторинга TimescaleDB (или VictoriaMetrics).

    4. БД агента сбора и хранения метрик.

    5. БД хранения отчетов нотификации.

    6. БД персистентного хранилища метрик загрузки и производительности (dbperf).

  3. Выполните настройку режима работы Kintsugi с сервисами хранения данных о метриках.

  4. Выполните установку Kintsugi в Kubernetes/Platform V DropApp (K8S) или Red Hat OpenShift.

Настройка системных баз данных Kintsugi#

Настройка инструмента инсталляции системных БД Kintsugi#

В качестве инструмента инсталляции используется ПО Liquibase 4.29.2 (поставляется в составе дистрибутива).

Для запуска Liquibase выполните одно из следующих действий:

  • Сконфигурируйте файл liquibase.properties.

    Параметр

    Пример

    Описание

    changelogFile

    /path/to/changelog/db_changelog_example.xml

    Файл с историей изменений БД

    url

    jdbc:postgresql://<ХОСТ_БД>:<ПОРТ_БД>/<ИМЯ_БД>

    Адрес устанавливаемой (обновляемой) БД

    username

    <ИМЯ_ПОЛЬЗОВАТЕЛЯ>

    Имя пользователя БД

    password

    <ПАРОЛЬ>

    Пароль пользователя БД

    defaultSchemaName

    <ИМЯ_СХЕМЫ_БД>

    Имя схемы системной таблицы Liquibase. Системная таблица Liquibase и таблицы прикладной БД должны располагаться в одной схеме

    Пример конфигурации:

    changelogFile: /path/to/changelog/db_changelog_example.xml
    url: jdbc:postgresql://host_example:port_example/db_example
    username: {username_example}
    password: {password_example}
    defaultSchemaName: {schema_example}
    
  • Передайте параметры конфигурации через командную строку согласно документации разработчика Liquibase.

Настройка БД метаданных Platform V Pangolin DB (или PostgreSQL)#

Примечание

Команды SQL выполняются с использованием консоли psql.

Для БД метаданных необходимо использовать выделенный экземпляр СУБД Platform V Pangolin DB (или PostgreSQL).

  1. Создайте технического пользователя kintsugi для БД метаданных:

    Примечание

    Используйте учетную запись администратора СУБД для дальнейшего развертывания.

    CREATE USER kintsugi PASSWORD 'password';
    
  2. Создайте БД для метаданных:

    CREATE DATABASE <meta_db_name>;
    
  3. Подключитесь к БД метаданных <meta_db_name>:

    \c <meta_db_name>;
    
  4. Создайте в БД метаданных <meta_db_name> схему meta:

    CREATE SCHEMA meta;
    
  5. Измените путь поиска по умолчанию на схему meta:

    set schema 'meta';
    
  6. Распакуйте содержимое архива db_scripts_repository.zip.

  7. Выполните конфигурацию файла liquibase.properties:

    Пример конфигурации:

    changelogFile: /path/to/changelog/repository/master_changelog.xml
    url: jdbc:postgresql://meta_host:meta_port/meta_db
    username: {username_example}
    password: {password_example}
    defaultSchemaName: meta
    

    Примечание

    Описание конфигурации приведено в разделе «Настройка инструмента инсталляции системных БД Kintsugi».

  8. Выполните команду установки БД репозитория:

    ./liquibase update
    
  9. Выполните команду проверки состояния БД:

    ./liquibase history
    
  10. Установите тег текущей версии Kintsugi для реализации возможности отката к текущему состоянию БД:

    ./liquibase tag --tag=<ТЕКУЩАЯ_ВЕРСИЯ_KINTSUGI>
    
  11. Добавьте права техническому пользователю kintsugi:

    GRANT CONNECT ON DATABASE <meta_db_name> TO kintsugi;
    GRANT USAGE ON SCHEMA meta TO kintsugi;
    
    ALTER DEFAULT PRIVILEGES IN SCHEMA meta
    GRANT ALL ON FUNCTIONS TO kintsugi;
    ALTER DEFAULT PRIVILEGES IN SCHEMA meta
    GRANT SELECT, UPDATE, USAGE ON SEQUENCES TO kintsugi;
    ALTER DEFAULT PRIVILEGES IN SCHEMA meta
    GRANT ALL ON TABLES TO kintsugi;
    ALTER DEFAULT PRIVILEGES IN SCHEMA meta
    GRANT USAGE ON TYPES TO kintsugi;
    
  12. Измените путь поиска по умолчанию:

    ALTER USER kintsugi SET search_path TO meta;
    ALTER DATABASE <meta_db_name> SET search_path TO meta;
    
  13. Для настройки сетевого доступа к хранилищу PostgreSQL выполните конфигурацию pg_hba.conf.

    Примечание

    Используйте учетную запись администратора ОС.

    Пример конфигурации аутентификации технической учетной записи kintsugi с использованием сертификатов:

    hostssl all kintsugi 0.0.0.0/0 cert clientcert=1
    

    Формат добавления пользователя и метод его аутентификации указан ниже:

    local      база  пользователь  метод-аутентификации  [параметры-аутентификации]
    host       база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    hostssl    база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    hostnossl  база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    host       база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    hostssl    база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    hostnossl  база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    

Настройка БД хранения порогов метрик#

Примечание

Команды SQL выполняются с использованием консоли psql.

  1. Перейдите в директорию thresholds.

  2. Создайте БД с хранилищем порогов метрик:

    CREATE DATABASE <metrics_thresholds_db_name>;
    
  3. Создайте технического пользователя kintsugi_thresholds_metrics для БД хранения порогов метрик и выдайте привилегии: CONNECT и CREATE.

    CREATE USER kintsugi_thresholds_metrics PASSWORD 'password';
    GRANT CONNECT, CREATE ON DATABASE <metrics_thresholds_db_name> TO kintsugi_thresholds_metrics;
    
  4. Подключитесь к БД хранилища порогов метрик <metrics_thresholds_db_name>:

    \c <metrics_thresholds_db_name>;
    
  5. Создайте в БД хранилища порогов метрик <metrics_thresholds_db_name> схему metrics_thresholds:

    CREATE SCHEMA metrics_thresholds;
    
  6. Выдайте техническому пользователю kintsugi_thresholds_metrics привилегии: SELECT, INSERT, DELETE и UPDATE:

    GRANT CONNECT ON DATABASE <metrics_thresholds_db_name> TO kintsugi_thresholds_metrics;
    GRANT USAGE ON SCHEMA metrics_thresholds TO kintsugi_thresholds_metrics;
    
    ALTER DEFAULT PRIVILEGES IN SCHEMA metrics_thresholds
      GRANT ALL ON FUNCTIONS TO kintsugi_thresholds_metrics;
    ALTER DEFAULT PRIVILEGES IN SCHEMA metrics_thresholds
      GRANT SELECT, UPDATE, USAGE ON SEQUENCES TO kintsugi_thresholds_metrics;
    ALTER DEFAULT PRIVILEGES IN SCHEMA metrics_thresholds
     GRANT ALL ON TABLES TO kintsugi_thresholds_metrics;
    ALTER DEFAULT PRIVILEGES IN SCHEMA metrics_thresholds
     GRANT USAGE ON TYPES TO kintsugi_thresholds_metrics;
    
  7. Измените путь поиска по умолчанию:

    ALTER USER kintsugi_thresholds_metrics SET search_path TO metrics_thresholds;
    ALTER DATABASE <metrics_thresholds_db_name> SET search_path TO metrics_thresholds;
    
  8. Установите схему по умолчанию metrics_thresholds:

    set schema 'metrics_thresholds';
    
  9. Распакуйте содержимое архива db_scripts_thresholds.zip.

  10. Выполните конфигурацию файла liquibase.properties:

    Пример конфигурации:

    changelogFile: /path/to/changelog/thresholds/master_changelog.xml
    url: jdbc:postgresql://thresholds_host:thresholds_port/thresholds_db
    username: {username_example}
    password: {password_example}
    defaultSchemaName: metrics_thresholds
    

    Примечание

    Описание конфигурации приведено в разделе «Настройка инструмента инсталляции системных БД Kintsugi».

  11. Выполните шаги 9 – 11 сценария «Настройка БД метаданных Platform V Pangolin DB (или PostgreSQL)».

Настройка БД мониторинга TimescaleDB (или VictoriaMetrics)#

Kintsugi поддерживает два режима работы с сервисами хранения данных о метриках: TimescaleDB или VictoriaMetrics.

Использование схемы с TimescaleDB#

Для использования схемы с TimescaleDB выполните следующие шаги из-под привилегированного пользователя:

Примечание

Команды SQL выполняются с использованием консоли psql.

  1. Создайте БД с хранилищем метрик:

    CREATE DATABASE <metrics_db_name>;
    
  2. Создайте технического пользователя kintsugi_metrics для БД хранения метрик и выдайте привилегии: CONNECT и CREATE.

    CREATE USER kintsugi_metrics PASSWORD 'password';
    GRANT CONNECT, CREATE ON DATABASE <metrics_db_name> TO kintsugi_metrics;
    
  3. Добавьте расширение timescaledb в значение параметра shared_preload_libraries в файле конфигурации postgresql.conf.

  4. Подключитесь к БД метаданных <metrics_db_name>:

    \c <metrics_db_name>;
    
  5. Создайте схему metrics и расширение timescaledb, а также таблицу для хранения версии, для этого подключитесь к БД <metrics_db_name> и выполните команды:

    CREATE SCHEMA IF NOT EXISTS metrics;
    CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA metrics;
    

    Примечание

    В случае использования схемы, отличной от metrics, необходимо это учесть в исполняемых скриптах установки.

  6. Распакуйте содержимое архива db_scripts_timescaledb.zip.

  7. Выполните конфигурацию файла liquibase.properties:

    Пример конфигурации:

    changelogFile: /path/to/changelog/timescaledb/master_changelog.xml
    url: jdbc:postgresql://metrics_host:metrics_port/metrics_db
    username: {username_example}
    password: {password_example}
    defaultSchemaName: metrics
    

    Примечание

    Описание конфигурации приведено в разделе «Настройка инструмента инсталляции системных БД Kintsugi».

  8. Выполните шаги 9 – 11 сценария «Настройка БД метаданных Platform V Pangolin DB (или PostgreSQL)».

  9. Измените путь поиска по умолчанию:

    ALTER USER kintsugi_metrics SET search_path TO metrics;
    ALTER DATABASE <metrics_db_name> SET search_path TO metrics;
    
  10. Настройте права для пользователя kintsugi_metrics:

    GRANT usage, CREATE ON SCHEMA metrics TO kintsugi_metrics;
    GRANT SELECT, INSERT, UPDATE ON all tables IN SCHEMA metrics TO kintsugi_metrics;
    GRANT EXECUTE ON ALL functions IN SCHEMA metrics TO kintsugi_metrics;
    GRANT EXECUTE ON ALL procedures IN SCHEMA metrics TO kintsugi_metrics;
    GRANT usage ON ALL sequences IN SCHEMA metrics TO kintsugi_metrics;
    
Использование схемы с VictoriaMetrics#

Для использования схемы с VictoriaMetrics выполните следующие шаги:

  1. Создайте директорию для хранения данных VictoriaMetrics:

    mkdir <имя директории хранения данных>
    
  2. Запустите VictoriaMetrics:

    victoria-metrics-prod -storageDataPath <имя директории хранения данных о метриках> -retentionPeriod=5d -loggerOutput stdout -httpListenAddr:8407
    
  3. Подготовьте файл конфигурации для vmauth <файл конфигурации vmauth>:

    users:
     - username: <username>
     password: <password>
     url_prefix: "http://127.0.0.1:<port>" #endpoint VictoriaMetrics
    
  4. Подготовьте сертификаты для vmauth. Пример сертификата приведен ниже:

    tls.key:
        <СОДЕРЖИМОЕ КЛЮЧА СЕРТИФИКАТА>
    tls.crt:
        <СОДЕРЖИМОЕ СЕРТИФИКАТА>
    
  5. Запустите vmauth:

    vmauth-prod --tls=true --auth.config=./vmauth_config/<файл конфигурации vmauth> --httpListenAddr=0.0.0.0:8421 --tlsCertFile=./vmauth_cert/vmauth_ip.crt --tlsKeyFile=./vmauth_cert/vmaut_ip.key
    

Настройка БД агента сбора и хранения метрик#

Примечание

Команды SQL выполняются с использованием консоли psql.

  1. Создайте технического пользователя kintsugi_agents для БД агента сбора и хранения метрик:

    Примечание

    Используйте учетную запись администратора СУБД для дальнейшего развертывания.

    CREATE USER kintsugi_agents PASSWORD 'password';
    
  2. Создайте БД для агента сбора и хранения метрик:

    CREATE DATABASE <agents_db_name>;
    
  3. Подключитесь к БД агента сбора и хранения метрик <agents_db_name>:

    \c <agents_db_name>;
    
  4. Создайте в БД агента сбора и хранения метрик <agents_db_name> схему agents:

    CREATE SCHEMA agents;
    
  5. Измените путь поиска по умолчанию на схему agents:

    set schema 'agents';
    
  6. Распакуйте содержимое архива db_scripts_agents.zip.

  7. Выполните конфигурацию файла liquibase.properties:

    Пример конфигурации:

    changelogFile: /path/to/changelog/repository/master_changelog.xml
    url: jdbc:postgresql://agents_host:agents_port/agents_db
    username: {username_example}
    password: {password_example}
    defaultSchemaName: agents
    

    Примечание

    Описание конфигурации приведено в разделе «Настройка инструмента инсталляции системных БД Kintsugi».

  8. Выполните команду установки БД агента сбора и хранения метрик:

    ./liquibase update
    
  9. Выполните команду проверки состояния БД:

    ./liquibase history
    
  10. Установите тег текущей версии Kintsugi для реализации возможности отката к текущему состоянию БД:

    ./liquibase tag --tag=<ТЕКУЩАЯ_ВЕРСИЯ_KINTSUGI>
    
  11. Добавьте права техническому пользователю kintsugi_agents:

    GRANT CONNECT ON DATABASE <agents_db_name> TO kintsugi_agents; 
    GRANT USAGE ON SCHEMA agents TO kintsugi_agents;
    
    ALTER DEFAULT PRIVILEGES IN SCHEMA agents
    GRANT ALL ON FUNCTIONS TO kintsugi_agents;
    ALTER DEFAULT PRIVILEGES IN SCHEMA agents
    GRANT SELECT, UPDATE, USAGE ON SEQUENCES TO kintsugi_agents;
    ALTER DEFAULT PRIVILEGES IN SCHEMA agents
    GRANT ALL ON TABLES TO kintsugi_agents;
    ALTER DEFAULT PRIVILEGES IN SCHEMA agents
    GRANT USAGE ON TYPES TO kintsugi_agents;
    
  12. Измените путь поиска по умолчанию:

    ALTER USER kintsugi_agents SET search_path TO agents;
    ALTER DATABASE <agents_db_name> SET search_path TO agents;
    
  13. Для настройки сетевого доступа к хранилищу PostgreSQL выполните конфигурацию pg_hba.conf.

    Примечание

    Используйте учетную запись администратора ОС.

    Пример конфигурации аутентификации технической учетной записи kintsugi_agents с использованием сертификатов:

    hostssl all kintsugi_agents 0.0.0.0/0 cert clientcert=1
    

    Формат добавления пользователя и метод его аутентификации указан ниже:

    local      база  пользователь  метод-аутентификации  [параметры-аутентификации]
    host       база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    hostssl    база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    hostnossl  база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    host       база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    hostssl    база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    hostnossl  база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    

Настройка БД хранения отчетов нотификации#

Примечание

Команды SQL выполняются с использованием консоли psql.

  1. Перейдите в директорию alerting.

  2. Создайте БД с хранилищем отчетов нотификации:

    CREATE DATABASE <alerting_db_name>;
    
  3. Создайте технического пользователя kintsugi_alerting для БД хранения отчетов нотификации и выдайте привилегии: CONNECT и CREATE.

    CREATE USER kintsugi_alerting PASSWORD 'password';
    GRANT CONNECT, CREATE ON DATABASE <alerting_db_name> TO kintsugi_alerting;
    
  4. Подключитесь к БД хранилища отчетов нотификации <alerting_db_name>:

    \c <alerting_db_name>;
    
  5. Создайте в БД хранилища отчетов нотификации <alerting_db_name> схему alerting:

    CREATE SCHEMA alerting;
    
  6. Выдайте техническому пользователю kintsugi_alerting привилегии: SELECT, INSERT, DELETE и UPDATE:

    GRANT CONNECT ON DATABASE <alerting_db_name> TO kintsugi_alerting;
    GRANT USAGE ON SCHEMA metrics_alerting TO kintsugi_alerting;
    
    ALTER DEFAULT PRIVILEGES IN SCHEMA alerting
      GRANT ALL ON FUNCTIONS TO kintsugi_alerting;
    ALTER DEFAULT PRIVILEGES IN SCHEMA alerting
      GRANT SELECT, UPDATE, USAGE ON SEQUENCES TO kintsugi_alerting;
    ALTER DEFAULT PRIVILEGES IN SCHEMA alerting
     GRANT ALL ON TABLES TO kintsugi_alerting;
    ALTER DEFAULT PRIVILEGES IN SCHEMA alerting
     GRANT USAGE ON TYPES TO kintsugi_alerting;
    
  7. Измените путь поиска по умолчанию:

    ALTER USER kintsugi_alerting SET search_path TO alerting;
    ALTER DATABASE <alerting_db_name> SET search_path TO alerting;
    
  8. Установите схему по умолчанию alerting:

    SET SCHEMA 'alerting';
    
  9. Распакуйте содержимое архива db_scripts_alerting.zip.

  10. Выполните конфигурацию файла liquibase.properties:

    Пример конфигурации:

    changelogFile: /path/to/changelog/alerting/master_changelog.xml
    url: jdbc:postgresql://alerting_host:alerting_port/alerting_db
    username: {example_username}
    password: {example_password}
    defaultSchemaName: alerting
    

    Примечание

    Описание конфигурации приведено в разделе «Настройка инструмента инсталляции системных БД Kintsugi».

  11. Выполните шаги 9 – 11 сценария «Настройка БД метаданных Platform V Pangolin DB (или PostgreSQL)».

Настройка БД персистентного хранилища метрик загрузки и производительности#

Примечание

Команды SQL выполняются с использованием консоли psql.

  1. Создайте технического пользователя kintsugi_dbperf для БД персистентного хранилища метрик загрузки и производительности:

    Примечание

    Используйте учетную запись администратора СУБД для дальнейшего развертывания.

    CREATE USER kintsugi_dbperf PASSWORD 'password';
    
  2. Создайте БД персистентного хранилища метрик загрузки и производительности сбора и хранения метрик:

    CREATE DATABASE <dbperf_db_name>;
    
  3. Подключитесь к БД персистентного хранилища метрик загрузки и производительности <dbperf_db_name>:

    \c <dbperf_db_name>;
    
  4. Создайте в БД персистентного хранилища метрик загрузки и производительности <dbperf_db_name> схему dbperf:

    CREATE SCHEMA dbperf;
    
  5. Измените путь поиска по умолчанию на схему dbperf:

    set schema 'dbperf';
    
  6. Распакуйте содержимое архива db_scripts_dbperf.zip.

  7. Выполните конфигурацию файла liquibase.properties:

    Пример конфигурации:

    changelogFile: /path/to/changelog/repository/master_changelog.xml
    url: jdbc:postgresql://dbperf_host:dbperf_port/dbperf_db
    username: {username_example}
    password: {password_example}
    defaultSchemaName: dbperf
    

    Примечание

    Описание конфигурации приведено в разделе «Конфигурация helm-чарта Kintsugi».

  8. Выполните команду установки БД агента сбора и хранения метрик:

    Примечание

    При первой (инициализирующей) миграции БД необходимо указать количество партиций и передать контекст dbperfInitDB для применения настроек партиций. В последующих миграциях, эти парамерты передавать не нужно.

    DB_DBPERF_PARTITION_COUNT=16 # Сконфигурируйте количество партиций Базы Данных
    ./liquibase update  -Dpartitions.count=${DB_DBPERF_PARTITION_COUNT} --context-filter=dbperfInitDB"
    
  9. Выполните команду проверки состояния БД:

    ./liquibase history
    
  10. Установите тег текущей версии Kintsugi для реализации возможности отката к текущему состоянию БД:

    ./liquibase tag --tag=<ТЕКУЩАЯ_ВЕРСИЯ_KINTSUGI>
    
  11. Добавьте права техническому пользователю kintsugi_dbperf:

    GRANT CONNECT ON DATABASE <dbperf_db_name> TO kintsugi_dbperf; 
    GRANT USAGE ON SCHEMA dbperf TO kintsugi_dbperf;
    ALTER DEFAULT PRIVILEGES IN SCHEMA dbperf
    GRANT ALL ON FUNCTIONS TO kintsugi_dbperf;
    ALTER DEFAULT PRIVILEGES IN SCHEMA dbperf
    GRANT SELECT, UPDATE, USAGE ON SEQUENCES TO kintsugi_dbperf;
    ALTER DEFAULT PRIVILEGES IN SCHEMA dbperf
    GRANT ALL ON TABLES TO kintsugi_dbperf;
    ALTER DEFAULT PRIVILEGES IN SCHEMA dbperf
    GRANT USAGE ON TYPES TO kintsugi_dbperf;
    
  12. Измените путь поиска по умолчанию:

    ALTER USER kintsugi_dbperf SET search_path TO dbperf;
    ALTER DATABASE <dbperf_db_name> SET search_path TO dbperf;
    
  13. Для настройки сетевого доступа к хранилищу PostgreSQL выполните конфигурацию pg_hba.conf.

    Примечание

    Используйте учетную запись администратора ОС.

    Пример конфигурации аутентификации технической учетной записи kintsugi_dbperf с использованием сертификатов:

    hostssl all kintsugi_dbperf 0.0.0.0/0 cert clientcert=1
    

    Формат добавления пользователя и метод его аутентификации указан ниже:

    local      база  пользователь  метод-аутентификации  [параметры-аутентификации]
    host       база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    hostssl    база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    hostnossl  база  пользователь  адрес  метод-аутентификации  [параметры-аутентификации]
    host       база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    hostssl    база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    hostnossl  база  пользователь  IP-адрес  IP-маска  метод-аутентификации  [параметры-аутентификации]
    

Настройка режима работы Kintsugi с сервисами хранения данных о метриках#

Для настройки режима работы Kintsugi с сервисом хранения данных о метриках:

  • VictoriaMetrics, установите значение true у параметра global.victoriaMetrics.enabled в конфигурационных файлах ./helm/application/kintsugi/values.yaml и ./helm/application/istio-kintsugi/values.yaml.

  • TimescaleDB, установите значение false у параметра global.victoriaMetrics.enabled в конфигурационных файлах ./helm/application/kintsugi/values.yaml и ./helm/application/istio-kintsugi/values.yaml.

Примечание

Для файлов ./helm/application/kintsugi/values.yaml и ./helm/application/istio-kintsugi/values.yaml:

  • ./ – путь DBM-X.X.X-XX-distrib/DBM-X.X.X-XX-owned-distrib/package/conf/ до каталога helm;

  • имя каталога package может изменяться на package 2 или package 3 в зависимости от порядка распаковки архивов из папки DBM-X.X.X-XX-owned-distrib.

Установка Kintsugi в Kubernetes/Platform V DropApp (K8S) или Red Hat OpenShift#

Перед началом установки заполните файлы с конфигурацией Kintsugi в Kubernetes/Platform V DropApp/Red Hat OpenShift.

Конфигурация helm-чарта Kintsugi#

Для конфигурации helm-чарта Kintsugi (DBCM) выполните следующие шаги:

  1. Подготовьте файл ./helm/application/kintsugi/values.yaml.

  2. Задайте значения параметрам конфигурации секции global.

Описание конфигурационного файла helm-чарта Kintsugi представлено ниже.

Основной блок настроек#

Параметр

Пример

Описание

nameSuffix

""

Переопределят наименование создаваемых манифестов. Необязательный параметр. Если не указан, все ресурсы будут иметь суффикс {{ .Release.Name }}

audit.enabled

false

Включение/отключение аудита (true/false)

audit.ott.enabled

true

Включение/отключение сервиса OTT (true/false)

audit.event

/push/project/kintsugi/example/test/event

Адрес регистрации события аудита

audit.host

kintsugi.example.test

URL сервиса аудита

containerSecurityContext.enabled

false

Включение/отключение расширенных настроек безопасности (true/false)

alerting.enabled

false

Включение/отключение сервиса оповещения (true/false)

Блок настройки БД#

Описываются по стандартному шаблону:

Параметр

Пример

Описание

db_example.dbname

kintsugi_db-example

Имя БД

db_example.user

postgres

Пользователь БД

db_example.hosts.host

10.xx.xx.xx

Адрес БД

db_example.hosts.port

5555

Порт БД

db_example.params.connectTimeout

5

Тайм-аут подключения к БД *

db_example.params.options

"-c timezone=utc"

Опции подключения к БД *

db_example.params.sslMode

allow

Переключатель SSL-режима *: disable
allow
prefer
require
verify-ca
verify-full

db_example.params.sslNeedPassword

false

Включение/отключение проверки пароля SSL (true/false) *

db_example.params.targetSessionAttrs

primary

Назначение прав БД (атрибуты целевого сеанса)*:
- read-write – для кластеров Pangolin версии 5 (PostgreSQL версии ниже 14);
- primary – для кластеров Pangolin версии 6 (PostgreSQL версии 14 и выше)

db_example.notificationChannel

kintsugi_perf_channel

Имя канала коммуникации модулей Kintsugi

Примечание

* – Помечены не обязательные к определению параметры БД params.

Конфигурирование кастомных labels и annotations для ресурсов Kubernetes в helm-чарте Kintsugi#

Параметр

Пример

Описание

global.annotationsExtra

{}

Добавляет дополнительные аннотации .metadata.annotations ко всем ресурсам, включая сабчарты

global.annotationsOverride

{}

Полностью перезаписывает аннотации .metadata.annotations на всех ресурсах, включая сабчарты

global.labelsExtra

{}

Добавляет дополнительные аннотации .metadata.labels ко всем ресурсам, включая сабчарты

global.labelsOverride

{}

Полностью перезаписывает аннотации .metadata.labels на всех ресурсах, включая сабчарты

annotationsExtra

{}

Добавляет дополнительные аннотации .spec.template.metadata.annotations к подам Deployment/StatefulSet

annotationsOverride

{}

Добавляет дополнительные аннотации .metadata.annotations ко всем ресурсам, не распространяется на сабчарты

labelsExtra

{}

Добавляет дополнительные лейлбы .spec.template.metadata.labels к подам Deployment/StatefulSet

labelsOverride

{}

Добавляет дополнительные аннотации .spec.template.metadata.labels ко всем ресурсам, не распространяется на сабчарты

Дополнительный блок#

Параметр

Пример

Описание

elastic.enabled

true

Устанавливает Elasticsearch хранилищем логов (true/false)

elastic.host

elastic.kintsugi.example.test

Адрес Elasticsearch

elastic.indexPrefix

kintsugi

Префикс, который будет использоваться для именования индексов Elasticsearch

elastic.ip

10.xx.xx.xx

IP-адрес Elasticsearch

elastic.port

5555

Порт Elasticsearch

fluentbit.enabled

true

Включает или отключает конфигурацию Fluentbit. Добавляет контейнеры sidecar к развертываниям и генерирует дополнительные ресурсы Kubernetes (true/false)

fluentbit.image

kintsugi.example.test/loga/fluentbit

Образ Fluentbit

fluentbit.sidecar.resources.requests.cpu

500m

Количество CPU, необходимое для старта контейнера с Fluentbit

fluentbit.sidecar.resources.requests.memory

512Mi

Объем RAM, необходимый для старта контейнера с Fluentbit

fluentbit.sidecar.resources.limits.cpu

1

Максимальное количество CPU, выделенное контейнеру с Fluentbit

fluentbit.sidecar.resources.limits.memory

1Gi

Максимальный объем RAM, выделенный контейнеру с Fluentbit

hostPolicies.enabled

true

Включение/отключение расширенных настроек безопасности (true/false)

imagePullPolicy

Always

Политики обновления образов

imagePullSecrets.name

registry

Список секретов для доступа к Docker registry

imageTag

""

Общий тег образов. Используется только в dev-целях. В релизных конфигурациях предполагается хард-код с хешем образа

dashboardsLimit

20

Ограничение количества кастомных (пользовательских) дашбордов Kintsugi

ingress.create

true

Включение/отключение использование Ingress

ingress.sslSecretName

istio-ingressgateway-certs

Имя секрета с сертификатами. Ожидается, что секрет содержит tls.crt, tls.key

ingress.annotationsExtra

{}

Дополнительные аннотации Ingress (для разных ingress они могут быть разными)

ingress.annotationsOverride

{}

Перезапись стандартные аннотации Ingress

ingress.className

nginx

HTTP-сервер, используемый для Ingress (nginx/syngx)

istio.enabled

true

Включение/отключение использования Istio (true/false)

istio.egressGateway.create

true

Istio (true/false)

istio.egressGateway.labelsExtra

{}

Istio

istio.egressGateway.labelsOverride

{}

Istio

istio.egressGateway.selectorLabels

{}

Istio

istio.egressGateway.name

"istio-egressgateway"

Istio

istio.egressGateway.namespace

""

Istio

istio.ingressGateway.create

true

Определяет, создавать ли ingress istio resources (gateways, virtual service, authorization policies) (true/false)

istio.ingressGateway.selectorLabels

{}

Определяет набор меток, для выбора istioIngressGateway. Если задано, перезаписывает стандартные selector labels

istio.ingressGateway.name

"istio-ingressgateway"

Ingress gateway name. Используется при формировании селеторов в виде {{ .Values.global.istio.ingressGateway.name }}

istio.sidecar.logMount

false

Монтирование логи сайдкара Istio (true/false)

istio.sidecar.resources

{}

Ресурсы sidecar контейнера (могут быть переопределены в секциях каждого сервиса)

istio.subjectAltNames

[]

Имя субъекта

kafka.kintsugi.enabled

true

Устанавливает Kafka хранилищем логов (true/false)

kafka.kintsugi.topic

test

Имя топика(ов) Kafka

kafka.kintsugi.hosts.host

kafka.kintsugi.example.test

Адрес хоста Kafka

kafka.kintsugi.hosts.ip

10.xx.xx.xx

IP-адрес Kafka

kafka.kintsugi.hosts.port

5555

Порт Kafka

kafka.alerting.enabled

true

Устанавливает Kafka хранилищем нотификационных отчетов (true/false)

kafka.alerting.topic

test

Имя топика(ов) Kafka

kafka.alerting.hosts.host

kafka.alerting.example.test

Адрес хоста Kafka

kafka.alerting.hosts.ip

10.xx.xx.xx

IP-адрес Kafka

kafka.alerting.hosts.port

5555

Порт Kafka

kafka.alerting.producerReconnectionDelay

15

Время ожидания после неудачной попытки подключения к Kafka, по истечению которого попытка подключения будет произведена повторно

labelsExtra

{}

Добавить дополнительные labels

labelsOverride

{}

Перезапишет стандартные labels

logLevel

INFO

Переключатель уровня логирования для всех модулей Kintsugi: ERROR/DEBUG/INFO/WARN

managedDatabases.allowedSslModes

[]

Список разрешенных SSl-режимов для управляемых баз данных

podSecurityContext.enabled

true

Включение/отключение расширенных настроек podSecurityContext (true/false)

priorityClassName

""

priorityClassName

registry

""

Docker registry

registry_path

""

Docker registry_path

synapse.enabled

true

Включение/отключение Synapse (true/false)

synapse.postgresProtocol

true

Включение/отключение использования postgresProtocol в служебных БД (true/false)

isSlim

true

Включение/отключение установки клиентского приложения Kintsugi (true/false)

Настройка параметров HashiCorp Vault#

Параметр

Пример

Описание

vault.enabled

true

Включение/отключение хранилища секретов HashiCorp Vault (true/false)

vault.image

kintsugi.example.test/loga/vault

Образ HashiCorp Vault

vault.namespace

SECRET_NAMESPACE

Пространство для хранилища секретов HashiCorp Vault

vault.path

/STORAGE_NAME

Путь к хранилищу секретов HashiCorp Vault

vault.role

role-ga-secman-kintsugi

Роль для доступа к хранилищу секретов HashiCorp Vault

vault.sidecar.resources

{}

Ресурсы sidecar контейнера (могут быть переопределены в секциях каждого сервиса)

victoriaMetrics.enabled

false

Переключатель между режимами работы с сервисами хранения данных о метриках: VictoriaMetrics и TimescaleDB. Если true, блок global.database.timescaledb - полностью игнорируется

victoriaMetrics.url

http://

Адрес сервиса VictoriaMetrics

Настройка микросервисов#

Конфигурация микросервисов имеет общие параметры:

Параметр

Пример

Описание

kintsugi_module_name.ingress.host

kintsugi.module.example.test

Адрес хоста модуля Kintsugi

kintsugi_module_name.enabled

false

Включение/отключение установки модулей Kintsugi в текущей инсталяции (alerting, configman, backend-slim, frontend-slim, dbterm, dbterm-slim, sheduler-slim и tsdbmon)

kintsugi_module_name.isSlim

false

Настройка, которую мы передаем сабчарту, чтобы он был установлен в desktop-приложении Kintsugi

Примечание

kintsugi_module_name – имя микросервиса Kintsugi.

Далее представлены дополнительные параметры для микросервисов:

  • alerting:

    Параметр

    Пример

    Описание

    alerting.config.sortCustomProps

    "custom_AC"
    "custom_STAND"
    "custom_CIR"

    Упорядоченный набор пользовательских свойств, по которым производится сортировка активов, за которыми наблюдает пользователь

    alerting.config.email.from

    example@mail.ru

    Заголовок для формирования Kafka сообщения (адреса отправителя)

    alerting.config.email.secret

    <СОДЕРЖИМОЕ СЕРТИФИКАТА>

    Уникальный идентификатор почтового адреса

    alerting.config.email.prefixMessageId

    kintsugi

    Префикс, который будет использован в уникальном идентификаторе сообщения

    alerting.config.email.topicResponse

    topic-respon

    Заголовок для формирования Kafka сообщения (топик, в который будет отправлен ответ на сообщение)

    alerting.config.email.validDomains

    "sbertech.ru"

    Массив допустимых почтовых доменов

  • curator:

    Параметр

    Пример

    Описание

    curator.config.requestsPropertySequence

    ["custom_property_test", "custom_property_test2"]

    Устанавливает очередность пользовательских свойств в конфигурации curator для группировки после фильтрации

  • dbperf:

    Параметр

    Пример

    Описание

    config.storage.type

    "persistent"

    Определяет режим использования персистентного хранилища метрик загрузки и производительности. Допустимые значения: persistent и in-memory

  • backend, когда dbterm:

    • не используется:

      backend:
      ingress:
          hosts:
          - backend.some.domain #хост backend
          - terminal.some.domain #хост terminal
      

      В отличие от прочих микросервисов Kintsugi backend может создавать один или более ingress/route.

    • используется:

      backend:
      ingress:
          hosts: 
          - backend.some.domain #хост backend
      dbterm: 
      ingress: 
          host: terminal.some.domain #хост terminal
      
  • frontend/frontend-slim:

    Параметр

    Пример

    Описание

    <frontend/frontend-slim>.server

    sygnx/nginx

    HTTP-сервер, используемый для запуска веб-сервисов Kintsugi (nginx/syngx)

    <frontend/frontend-slim>.config.feedback.email

    support_kintsugi@sbertech.ru

    Электронная почта получателя обратной связи. Не должен быть заполнен при указанном адресе в <frontend/frontend-slim>.config.feedback.link

    <frontend/frontend-slim>.config.feedback.link

    https://example.com

    Адрес получателя обратной связи. Не должен быть заполнен при указанной почте в <frontend/frontend-slim>.config.feedback.email

    <frontend/frontend-slim>.config.documentation

    https://docs.kintsugi.example/DBM/

    Адрес веб-страницы с документацией Kintsugi

    frontend.config.externalButton.url

    "/custom-assets/test-asset"

    Адрес источника данных о внешних сервисах

    frontend.config.externalButton.title.ru

    "Внешние сервисы"

    Русскоязычное наименование вкладки, где хранятся данные о внешних сервисах

    frontend.config.externalButton.title.en

    "External services"

    Английское наименование вкладки, где хранятся данные о внешних сервисах

    frontend.config.alerting.enabled

    true

    Включение/отключение сервиса оповещений (true/false)

    frontend.config.feedbackWidget.location

    "PROM"

    Адрес для загрузки локации

    frontend.config.feedbackWidget.systemName

    "system name"

    Имя системы

  • tsdbmon:

    Параметр

    Пример

    Описание

    tsdbmon.config.promqlQueryTimeout

    2

    Максимальное время, когда запрос может занять, прежде чем быть прерванным

    tsdbmon.config.promqlSubqueryStepInterval

    1

    Интервал шага по умолчанию, который будет использоваться для оценки subquery. Это значение используется, если в подведении явно не указано значение шага. Пример: <metric_name>[30m:]. В Prometheus эта настройка установлена опцией evaluation_interval

    tsdbmon.config.promqlLookbackDelta

    5

    Параметр, отвечающий за то, насколько далеко tsdbmon будет достраивать точки при их отсутствии

    tsdbmon.config.promqlMaxSamples

    50000000

    Максимальное количество выборок которое один запрос может загрузить и передать

    tsdbmon.config.promqlMaxPointsPerTs

    10000

    Максимальное количество точек для тайм-серии. Этот расчет - оценка, которая происходит как (start - end)/step, где начало и конец - это «начало» и «конец» временные метки

    Примечание

    * При установке Kintsugi с использованием хранилища секретов SecMan конфигурация параметров выполняется согласно разделу Настройка интеграции с HashiCorp Vault/SecMan.

Настройка секретов helm-чарта Kintsugi#

Примечание

Конфигурация параметров данного раздела необходима только при установке Kintsugi с использованием классических секретов (параметр global.vault.enabled: false).

Параметр

Пример

Описание

secrets.create

false

Включение/отключение монтирования сертификатов

secrets.timescaledb.create

false

Включение/отключение монтирования сертификата timescaledb

secrets.timescaledb.nameOverride

``

Параметр, позволяющий переопределить имя релиза для чарта

secrets.timescaledb.namespaceOverride

``

Параметр, позволяющий переопределить пространство имен, где будут устанавливаться ресурсы timescaledb

secrets.timescaledb.password.secret

password

Пароль клиента для подключения к хранилищу метрик TimescaleDB

secrets.timescaledb.client_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Сертификат клиента

secrets.timescaledb.client_key.secret

<СОДЕРЖИМОЕ КЛЮЧА СЕРТИФИКАТА>

Ключ сертификата клиента

secrets.timescaledb.root_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Корневой сертификат

secrets.metrics_thresholds.create

false

Включение/отключение монтирования сертификата metrics_thresholds

secrets.metrics_thresholds.nameOverride

``

Параметр, позволяющий переопределить имя релиза для чарта

secrets.metrics_thresholds.namespaceOverride

``

Параметр, позволяющий переопределить пространство имен, где будут устанавливаться ресурсы metrics_thresholds

secrets.metrics_thresholds.password.secret

password

Пароль клиента БД хранения порогов метрик

secrets.metrics_thresholds.client_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Сертификат клиента БД хранения порогов метрик

secrets.metrics_thresholds.client_key.secret

<СОДЕРЖИМОЕ КЛЮЧА СЕРТИФИКАТА>

Ключ сертификата клиента БД хранения порогов метрик

secrets.metrics_thresholds.root_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Корневой сертификат

secrets.agents.create

false

Включение/отключение монтирования сертификата agents

secrets.agents.nameOverride

``

Параметр, позволяющий переопределить имя релиза для чарта

secrets.agents.namespaceOverride

``

Параметр, позволяющий переопределить пространство имен, где будут устанавливаться ресурсы agents

secrets.agents.password.secret

password

Пароль клиента БД агента сбора и хранения метрик

secrets.agents.client_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Сертификат клиента БД агента сбора и хранения метрик

secrets.agents.client_key.secret

<СОДЕРЖИМОЕ КЛЮЧА СЕРТИФИКАТА>

Ключ сертификата клиента БД агента сбора и хранения метрик

secrets.agents.root_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Корневой сертификат

secrets.managed_databases.create

false

Включение/отключение монтирования сертификата для подключения к наблюдаемой БД

secrets.managed_databases.nameOverride

``

Параметр, позволяющий переопределить имя релиза для чарта

secrets.managed_databases.namespaceOverride

``

Параметр, позволяющий переопределить пространство имен, где будут устанавливаться секреты для подключения к наблюдаемой БД

secrets.managed_databases.force_root_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Корневой сертификат, принудительно используемый для подключения к наблюдаемой БД

secrets.monitoring.create

false

Включение/отключение монтирования сертификата для подключения к объекту мониторинга

secrets.monitoring.nameOverride

``

Параметр, позволяющий переопределить имя релиза для чарта

secrets.monitoring.namespaceOverride

``

Параметр, позволяющий переопределить пространство имен, где будут устанавливаться секреты для подключения к объекту мониторинга

secrets.monitoring.monitoring_username.secret

username

Имя пользователя, используемое по умолчанию для подключения к объекту мониторинга

secrets.monitoring.monitoring_password.secret

password

Пароль пользователя, используемый по умолчанию для подключения к объекту мониторинга

secrets.monitoring.monitoring_client_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Сертификат клиента, используемый по умолчанию для подключения к объекту мониторинга

secrets.monitoring.monitoring_client_key.secret

<СОДЕРЖИМОЕ КЛЮЧА СЕРТИФИКАТА>

Ключ сертификата клиента, используемый по умолчанию для подключения к объекту мониторинга

secrets.monitoring.monitoring_root_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Корневой сертификат, используемый по умолчанию для подключения к объекту мониторинга

secrets.alerting.create

false

Включение/отключение монтирования сертификата для подклучения к БД alerting

secrets.alerting.nameOverride

``

Параметр, позволяющий переопределить имя релиза для чарта

secrets.alerting.namespaceOverride

``

Параметр, позволяющий переопределить пространство имен, где будут устанавливаться секреты для подключения к БД alerting

secrets.alerting.data.password.secret

password

Пароль пользователя, используемый по умолчанию для подключения к БД alerting

secrets.repository.create

false

Включение/отключение монтирования сертификата для подклучения к БД метаданных

secrets.repository.nameOverride

``

Параметр, позволяющий переопределить имя релиза для чарта

secrets.repository.namespaceOverride

``

Параметр, позволяющий переопределить пространство имен, где будут устанавливаться секреты для подключения к БД метаданных

secrets.repository.data.client_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Сертификат клиента, используемый по умолчанию для подключения к БД метаданных

secrets.repository.data.client_key.secret

<СОДЕРЖИМОЕ КЛЮЧА СЕРТИФИКАТА>

Ключ сертификата клиента, используемый по умолчанию для подключения к БД метаданных

secrets.repository.data.root_cert.secret

<СОДЕРЖИМОЕ СЕРТИФИКАТА>

Корневой сертификат, используемый по умолчанию для подключения к БД метаданных

secrets.repository.data.ssl_password.secret

``

Пароль ключа сертификата

secrets.repository.data.secret.pem

``

Секрет шифрования чувствительных пользовательских данных

secrets.repository.data.repository_password.secret

``

Пароль для подключения к БД метаданных

Модульная установка Kintsugi#

Модульная установка Kintsugi осуществляется через заполнение helm-конфигурации ./helm/application/<микросеврис Kintsugi>/values.yaml.

Конфигурация параметров данного раздела для каждого микросевриса Kintsugi идентична и будет рассмотрена на примере audit_proxy:

Параметр

Пример

Описание

global.audit.nameSuffix

""

Переопределят наименование создаваемых манифестов. Необязательный параметр. Если не указан, все ресурсы будут иметь суффикс {{ .Release.Name }}

global.containerSecurityContext.enabled

true

Включение/отключение расширенных настроек безопасности (true/false)

global.audit.enabled

false

Включение/отключение сервиса аудита (true/false)

global.audit.ott.enabled

false

Включение/отключение сервиса OTT (true/false)

global.fluentbit.enabled

true

Включение/отключение Fluentbit (true/false)

global.fluentbit.image

kintsugi.example.test/loga/fluentbit

Образ Fluentbit

global.fluentbit.sidecar.resources.limits.cpu

200m

Максимальное количество CPU, выделенное контейнеру с Fluentbit

global.fluentbit.sidecar.resources.limits.memory

128Mi

Максимальный объем RAM, выделенный контейнеру с Fluentbit

global.fluentbit.sidecar.resources.requests.cpu

100m

Количество CPU, необходимое для старта контейнера с Fluentbit

global.fluentbit.sidecar.resources.requests.memory

64Mi

Объем RAM, необходимый для старта контейнера с Fluentbit

global.vault.enabled

true

Включение/отключение хранилища секретов HashiCorp Vault (true/false)

global.vault.image

kintsugi.example.test/loga/vault

Образ HashiCorp Vault

global.vault.namespace

SECRET_NAMESPACE

Пространство для хранилища секретов HashiCorp Vault

global.ingress.annotations

{}

Аннотации Ingress (для разных ingress они могут быть разными)

global.ingress.className

nginx

HTTP-сервер, используемый для Ingress (nginx/syngx)

global.istio.enabled

true

Включение/отключение использования Istio (true/false)

global.istio.egressGateway.create

true

Istio (true/false)

global.istio.egressGateway.labelsExtra

{}

Istio

global.istio.egressGateway.labelsOverride

{}

Istio

global.istio.egressGateway.selectorLabels

{}

Istio

global.istio.egressGateway.name

"istio-egressgateway"

Istio

global.istio.egressGateway.namespace

""

Istio

global.istio.ingressGateway.create

true

Определяет, создавать ли ingress istio resources (gateways, virtual service, authorization policies) (true/false)

global.istio.ingressGateway.selectorLabels

{}

Определяет набор меток, для выбора istioIngressGateway. Если задано, перезаписывает стандартные selector labels

global.istio.ingressGateway.name

"istio-ingressgateway"

Ingress gateway name. Используется при формировании селеторов в виде {{ .Values.global.istio.ingressGateway.name }}

global.istio.sidecar.logMount

false

Монтирование логи сайдкара Istio (true/false)

global.istio.sidecar.resources

{}

Ресурсы sidecar контейнера (могут быть переопределены в секциях каждого сервиса)

global.istio.subjectAltNames

[]

Имя субъекта

hpa.enabled

true

Включение/отключение горизонтального масштабирования

hpa.minReplicas

1

Минимальное количество реплик сервиса Kintsugi при горизонтальном масштабировании

hpa.maxReplicas

3

Максимальное количество реплик сервиса Kintsugi при горизонтальном масштабировании

hpa.scaleUp.stabilizationWindowSeconds

"""

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

hpa.scaleDown.stabilizationWindowSeconds

""

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

hpa.metrics

[]

Список метрики на которое срабатывает горизонтальное масштабировании

replicas

1

Количество реплик модуля Kintsugi

imageTag

""

Общий тег образов. Используется только в dev-целях. В релизных конфигурациях предполагается хард-код с хешем образа

registry

example.registry.test

Адрес registry

registry_path

/example/registry_path/dbcm

Путь к каталогу с образами в registry

resources.limits.cpu

500m

Максимальное количество CPU, для сервиса audit-proxy

resources.limits.memory

512Mi

Максимальный объем RAM, для сервиса audit-proxy

resources.requests.cpu

250m

Количество CPU, необходимое для старта сервиса audit-proxy

resources.requests.memory

256Mi

Объем RAM, необходимый для старта сервиса audit-proxy

vault.path

/STORAGE_NAME

Путь к хранилищу секретов HashiCorp Vault

vault.role

role-ga-secman-kintsugi

Роль для доступа к хранилищу секретов HashiCorp Vault

vault.sidecar.resources.limits.cpu

500m

Максимальное количество CPU, выделенное хранилищу секретов HashiCorp Vault

vault.sidecar.resources.limits.memory

512Mi

Максимальный объем RAM, выделенный хранилищу секретов HashiCorp Vault

vault.sidecar.resources.requests.cpu

250m

Количество CPU, необходимое для старта хранилища секретов HashiCorp Vault

vault.sidecar.resources.requests.memory

256Mi

Объем RAM, необходимый для старта хранилища секретов HashiCorp Vault

Примечание

В большинстве установок Kintsugi модуль backend может совмещать обработку запросов на интроспекцию БД и обработку пользовательских SQL-запросов, в этом случае развертывание модуля dbterm и выделение ему отдельных вычислительных ресурсов не требуется. Однако в условиях повышенных нагрузок имеется возможность перенести обработку пользовательских SQL-запросов на модуль dbterm.

Для конфигурирования Kintsugi с включенным модулем dbterm рекомендуется обратиться за помощью в поддержку.

Конфигурация helm-чарта Istio#

Для конфигурации helm-чарта Istio выполните следующие шаги:

  1. Подготовьте файл ./helm/application/istio-kintsugi/values.yaml.

  2. Выполните конфигурацию helm-чарта Istio.

Описание конфигурационного файла helm-чарта Istio представлено ниже.

Настройка сервиса оповещений#

Параметр

Пример

Описание

global.alerting.enabled

true

Включение/отключение сервиса оповещений

Настройка сервиса аудит#

Параметр

Пример

Описание

global.audit.enabled

false

Включение/отключение сервиса аудита

global.audit.event

/push/project/kintsugi/example/test/event

Адрес регистрации события аудита

global.audit.host

kintsugi.example.test

Адрес сервиса аудита для регистрации событий OTT

global.audit.ip

""

IP-адрес сервиса аудита (если используется статическое разрешение)

global.audit.metamodel

/push/project/kintsugi/example/test/metamodel

Адрес регистрации метамодели

global.audit.ott.enabled

true

Включение/отключение аудита событий OTT (true/false)

global.audit.ott.host

kintsugi.example.test

Адрес сервиса аудита для регистрации событий OTT

global.audit.ott.ip

""

IP-адрес OTT-сервиса (если используется статическое разрешение)

global.audit.ott.port

5555

Порт сервиса аудита для регистрации событий OTT

global.audit.resolution

DNS

Способ разрешения доменного имени сервиса (DNS/STATIC)

Настройка БД#

Параметр

Пример

Описание

global.database.resolution

STATIC

Способ разрешения доменного имени сервиса (DNS/STATIC)

global.database.alerting.hosts

[]

Список хостов для оповещений БД

global.database.agents.hosts

[]

Список хостов для агентов БД

global.database.repository.hosts

[]

Список хостов для репозитория БД

global.database.timescaledb.hosts

[]

Список хостов для TimescaleDB

global.database.metricsThresholds.dbname

""

Имя БД для порогов метрик

global.database.metricsThresholds.user

""

Пользователь БД для порогов метрик

global.database.metricsThresholds.hosts

[]

Список хостов для пороговых значений порогов метрик

global.database.metricsThresholds.params.connectTimeout

""

Тайм-аут подключения к БД порогов метрик

global.database.metricsThresholds.params.options

""

Дополнительные параметры подключения к БД порогов метрик

global.database.metricsThresholds.params.sslMode

allow

Переключатель SSL-режима *: disable
allow
prefer
require
verify-ca
verify-full

global.database.metricsThresholds.params.sslNeedPassword

false

Включение/отключение проверки пароля SSL (true/false) *

global.database.metricsThresholds.params.targetSessionAttrs

primary

Назначение прав БД (атрибуты целевого сеанса)*:
- read-write – для кластеров Pangolin версии 5 (PostgreSQL версии ниже 14);
- primary – для кластеров Pangolin версии 6 (PostgreSQL версии 14 и выше)

Примечание

* Для аутентификации может быть использована интеграция с одним или более экземпляром OIDC Provider.

Конфигурирование кастомных labels и annotations для ресурсов Kubernetes в helm-чарте Istio#

Параметр

Пример

Описание

global.annotationsExtra

{}

Добавляет дополнительные аннотации .metadata.annotations ко всем ресурсам, включая сабчарты

global.annotationsOverride

{}

Полностью перезаписывает аннотации .metadata.annotations на всех ресурсах, включая сабчарты

global.labelsExtra

{}

Добавляет дополнительные аннотации .metadata.labels ко всем ресурсам, включая сабчарты

global.labelsOverride

{}

Полностью перезаписывает аннотации .metadata.labels на всех ресурсах, включая сабчарты

annotationsExtra

{}

Добавляет дополнительные аннотации .spec.template.metadata.annotations к подам Deployment/StatefulSet

annotationsOverride

{}

Добавляет дополнительные аннотации .metadata.annotations ко всем ресурсам, не распространяется на сабчарты

labelsExtra

{}

Добавляет дополнительные лейлбы .spec.template.metadata.labels к подам Deployment/StatefulSet

labelsOverride

{}

Добавляет дополнительные аннотации .spec.template.metadata.labels ко всем ресурсам, не распространяется на сабчарты

Настройка Elasticsearch#

Параметр

Пример

Описание

global.elastic.enabled

true

Устанавливает Elasticsearch хранилищем логов (true/false)

global.elastic.host

""

Хост Elasticsearch

global.elastic.ip

10.xx.xx.xx

IP-адрес Elasticsearch

global.elastic.port

5555

Порт Elasticsearch

Настройка Fluentbit#

Параметр

Пример

Описание

global.fluentbit.enabled

true

Включение/отключение Fluentbit (true/false)

global.fluentbit.image

kintsugi.example.test/loga/fluentbit

Образ Fluentbit

global.fluentbit.sidecar.resources

{}

Ресурсы для sidecar-контейнера Fluentbit

Настройка безопасности#

Параметр

Пример

Описание

global.containerSecurityContext.enabled

true

Включение/отключение SecurityContext для контейнеров

global.hostPolicies.enabled

true

Включение/отключение расширенных настроек безопасности (true/false)

Настройка Istio#

Параметр

Пример

Описание

global.istio.istiod.namespace

""

Пространство имен для Istiod

global.istio.istiod.service.name

""

Имя сервиса Istiod

global.istio.istiod.service.port

""

Порт сервиса Istiod

global.istio.egressGateway.selectorLabels

{}

Селекторы для egress gateway

global.istio.egressGateway.workloadLabels

{}

Метки для egress gateway

global.istio.egressGateway.name

"istio-egressgateway"

Имя egress gateway

global.istio.egressGateway.namespace

""

Пространство имен для egress gateway

global.istio.ingressGateway.selectorLabels

{}

Селекторы для ingress gateway

global.istio.ingressGateway.workloadLabels

{}

Метки для ingress gateway

global.istio.ingressGateway.name

""

Имя ingress gateway

global.istio.ingressGateway.namespace

""

Пространство имен для ingress gateway

global.istio.sidecar.logMount

false

Монтирование логи сайдкара Istio (true/false)

global.istio.sidecar.resources

{}

Ресурсы для sidecar-контейнера

global.istio.subjectAltNames

[]

Имя субъекта

Настройка Jaeger#

Параметр

Пример

Описание

global.jaeger.enabled

true

Включение/отключение Jaeger

global.jaeger.host

""

Хост Jaeger

global.jaeger.ip

""

IP-адрес Jaeger (если используется статическое разрешение)

global.jaeger.port

""

Порт Jaeger

global.jaeger.resolution

STATIC

Способ разрешения доменного имени сервиса (DNS/STATIC)

Настройка Kafka#

Параметр

Пример

Описание

global.kafka.resolution

STATIC

Способ разрешения доменного имени сервиса (DNS/STATIC)

global.kafka.kintsugi.hosts

[]

Список хостов Kafka для Kintsugi

global.kafka.alerting.hosts

[]

Список хостов Kafka для оповещений

global.kafka.alerting.producerReconnectionDelay

15

Задержка переподключения продюсера Kafka

Настройка HashiCorp Vault#

Параметр

Пример

Описание

global.vault.enabled

true

Включение/отключение Vault

global.vault.host

""

Хост Vault

global.vault.resolution

DNS

Способ разрешения доменного имени сервиса (DNS/STATIC)

global.vault.port

0

Порт Vault

global.vault.image

kintsugi.example.test/loga/vault

Образ HashiCorp Vault

global.vault.namespace

SECRET_NAMESPACE

Пространство для хранилища секретов HashiCorp Vault

global.vault.path

/STORAGE_NAME

Путь к хранилищу секретов HashiCorp Vault

global.vault.role

role-ga-secman-kintsugi

Роль для доступа к хранилищу секретов HashiCorp Vault

global.vault.sidecar.resources

{}

Ресурсы для sidecar-контейнера HashiCorp Vault

vault.path

/STORAGE_NAME

Путь к хранилищу секретов HashiCorp Vault

Настройка VictoriaMetrics#

Параметр

Пример

Описание

global.victoriaMetrics.enabled

false

Включение/отключение VictoriaMetrics

global.victoriaMetrics.host

"kintsugi.example.test"

Хост VictoriaMetrics

global.victoriaMetrics.ip

"10.xx.xx.xx"

Список IP-адресов хранилища метрик VictoriaMetrics

global.victoriaMetrics.port

"5555"

Порт хранилища метрик VictoriaMetrics

global.victoriaMetrics.resolution

DNS

Способ разрешения доменного имени сервиса (DNS/STATIC)

Настройка Synapse#

Параметр

Пример

Описание

global.synapse.enabled

true

Включение/отключение Synapse

global.synapse.postgresProtocol

true

Использование протокола PostgreSQL для Synapse

Настройка Istio Ingress Gateway#

Параметр

Пример

Описание

istio-ingressgateway

{}

Конфигурация Istio Ingress Gateway

Настройка OTT Egress#

Параметр

Пример

Описание

istio-egressgateway.ott.auditProxyUrl

http://127.0.0.1:9190/example/test/audit-pipe-ott-sidecar

URL прокси аудита для OTT

istio-egressgateway.ott.moduleID

kintsugi

Идентификатор модуля OTT

istio-egressgateway.ott.clientCertAlias

kintsugi

Псевдоним сертификата Kintsugi

istio-egressgateway.ott.authzRealm

ott

Realm для авторизации в сервисе OTT

istio-egressgateway.ott.anonymousRequestsEnabled

'false'

Включение/отключение анонимных запросов

istio-egressgateway.ott.clientDefaultRealm

'mmt'

Realm клиента (по умолчанию)

istio-egressgateway.ott.serviceHosts

'ott-server-host1:port'

Хосты сервиса OTT

istio-egressgateway.ott.sidecar.image

kintsugi.example.test/loga/ott

Образ sidecar для OTT

istio-egressgateway.ott.sidecar.resources

{}

Ресурсы для sidecar-контейнера OTT

istio-egressgateway.ott.sidecar.readinessProbe

{}

Проверка готовности для sidecar-контейнера OTT

istio-egressgateway.ott.sidecar.env

[{name: <имя переменной>, value: <значение переменной>}]

Переменные окружения для sidecar-контейнера OTT

ott-egress.host

cote-push-cpvm.apps.ocp.ift-01om.solution.sbt

Адрес сервиса аудита для регистрации событий OTT

ott-egress.port

5555`

Порт сервиса аудита для регистрации событий OTT

ott-egress.ip

""

IP-адрес для OTT egress

Настройка Identity Provider#

Параметр

Пример

Описание

auth.hosts[].name

kintsugi

Имя хоста для аутентификации

auth.hosts[].host

keycloak-example.test

Хост сервиса аутентификации

auth.hosts[].realm

""

Realm для аутентификации

auth.hosts[].path

auth

Путь для аутентификации

Настройка секретов helm-чарта Istio#

Примечание

Конфигурация параметров данного раздела необходима только при установке Kintsugi с использованием классических секретов (параметр global.vault.enabled: false).

Параметр

Пример

Описание

global.secrets.timescaledb.existingSecretName

""

Имя существующего секрета для TimescaleDB

global.secrets.timescaledb.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.secrets.timescaledb.data.timescaledb-ca.crt

""

CA-сертификат для TimescaleDB

global.secrets.timescaledb.data.timescaledb.crt

""

Сертификат для TimescaleDB

global.secrets.timescaledb.data.timescaledb.key

""

Ключ для TimescaleDB

global.secrets.metricsThresholds.existingSecretName

""

Имя существующего секрета для пороговых значений метрик

global.secrets.metricsThresholds.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.secrets.metricsThresholds.data.metrics-thresholds-ca.crt

""

CA-сертификат для пороговых значений метрик

global.secrets.metricsThresholds.data.metrics-thresholds.crt

""

Сертификат для пороговых значений метрик

global.secrets.metricsThresholds.data.metrics-thresholds.key

""

Ключ для пороговых значений метрик

global.secrets.agents.existingSecretName

""

Имя существующего секрета для сервиса агента

global.secrets.agents.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.secrets.agents.data.agents-ca.crt

""

CA-сертификат для сервиса агента

global.secrets.agents.data.agents.crt

""

Сертификат для сервиса агента

global.secrets.agents.data.agents.key

""

Ключ для сервиса агента

global.secrets.alerting.existingSecretName

""

Имя существующего секрета для сервиса оповещений

global.secrets.alerting.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.secrets.alerting.data.alerting-ca.crt

""

CA-сертификат для сервиса оповещений

global.secrets.alerting.data.alerting.crt

""

Сертификат для сервиса оповещений

global.secrets.alerting.data.alerting.key

""

Ключ для сервиса оповещений

global.secrets.ott.existingSecretName

""

Имя существующего секрета для OTT

global.secrets.ott.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.secrets.ott.data.ca.crt.pem

""

CA-сертификат для OTT

global.secrets.ott.data.kintsugi.crt.pem

""

Сертификат Kintsugi для OTT

global.secrets.ott.data.kintsugi.key.pem

""

Ключ Kintsugi для OTT

global.secrets.ott.data.ott.crt.pem

""

Сертификат OTT

global.secrets.egressTLS.existingSecretName

""

Имя существующего секрета для egress TLS

global.secrets.egressTLS.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.secrets.egressTLS.data.tls.crt

""

Сертификат TLS для egress

global.secrets.egressTLS.data.tls.key

""

Ключ TLS для egress

global.secrets.egressTLS.data.ca.crt

""

CA-сертификат для egress

global.secrets.ingressTLS.existingSecretName

""

Имя существующего секрета для ingress TLS

global.secrets.ingressTLS.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.secrets.ingressTLS.data.tls.crt

""

Сертификат TLS для ingress

global.secrets.ingressTLS.data.tls.key

""

Ключ TLS для ingress

global.secrets.ingressTLS.data.ca.crt

""

CA-сертификат для ingress

global.secrets.elastic.existingSecretName

""

Имя существующего секрета для Elasticsearch

global.secrets.elastic.data.user

""

Пользователь Elasticsearch

global.secrets.elastic.data.password

""

Пароль Elasticsearch

global.secrets.victoriaMetrics.existingSecretName

""

Имя существующего секрета для VictoriaMetrics

global.secrets.victoriaMetrics.data.user

""

Пользователь VictoriaMetrics

global.secrets.victoriaMetrics.data.password

""

Пароль VictoriaMetrics

global.istio.egressGateway.secret.existingSecretName

""

Имя существующего секрета для egress gateway

global.istio.egressGateway.secret.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.istio.egressGateway.secret.data.tls.crt

""

Сертификат TLS для egress gateway

global.istio.egressGateway.secret.data.tls.key

""

Ключ TLS для egress gateway

global.istio.egressGateway.secret.data.ca.crt

""

CA-сертификат для egress gateway

global.istio.ingressGateway.secret.existingSecretName

""

Имя существующего секрета для ingress gateway

global.istio.ingressGateway.secret.skipB64enc

false

Включение/отключение base64-кодирование секрета (true/false)

global.istio.ingressGateway.secret.data.tls.crt

""

Сертификат TLS для ingress gateway

global.istio.ingressGateway.secret.data.tls.key

""

Ключ TLS для ingress gateway

global.istio.ingressGateway.secret.data.ca.crt

""

CA-сертификат для ingress gateway

Установка Kintsugi в Kubernetes/Platform V DropApp#

Для установки Kintsugi в Kubernetes/Platform V DropApp выполните следующие шаги установки:

  1. Подготовьте kubeconfig и сохраните kubeconfig в каталоге $HOME/.kube. Пример:

        apiVersion: v1
        clusters:
        - cluster:
        certificate-authority-data: <СОДЕРЖИМОЕ СЕРТИФИКАТА>
        server: https://100.xx.xx.xx:5555
        name: sks-kintsugi
        contexts:
        - context:
        cluster: sks-kintsugi
        user: sks-kintsugi-admin
        name: sks-kintsugi-admin@sks-kintsugi
        current-context: sks-kintsugi-admin@sks-kintsugi
        kind: Config
        preferences: {}
        users:
        - name: sks-kintsugi-admin
        user:
        client-certificate-data: <СОДЕРЖИМОЕ СЕРТИФИКАТА>
        client-key-data: <СОДЕРЖИМОЕ КЛЮЧА СЕРТИФИКАТА>
    
  2. Выполните установку Kintsugi в Kubernetes/Platform V DropApp. Пример:

    helm install <release_name> helm/application
    

Установка Kintsugi в Red Hat OpenShift (опционально)#

Для установки Kintsugi (DBCM) в Red Hat OpenShift выполните следующие шаги установки:

  1. Выполните авторизацию в Red Hat OpenShift под учетной записью с правами администратора проекта. Пример:

    oc login --token=<token> --server=https://<server>:<port>
    
  2. Выполните развертывание Kintsugi в Red Hat OpenShift. Пример:

    helm install <release_name> helm/application