Установка компонента DB Advisor (опциональный)#

DB Advisor в редакции Standard запускается как опциональный профиль Docker Compose.

Цель выполнения#

Установка компонента DB Advisor необходима, чтобы:

  • Запускать интеллектуальную диагностику экземпляров PostgreSQL и Platform V Pangolin DB с помощью ИИ-агентов.

  • Получать структурированные рекомендации по оптимизации СУБД.

  • Рассчитывать индекс здоровья (0–100) на основе обнаруженных проблем.

  • Анализировать историю прогонов диагностики и формировать сводные профили нагрузки.

Примечание

DB Advisor — опциональный компонент. Если сервис не требуется, пропустите этот раздел.

Последовательность действий#

Установка DB Advisor делится на этапы:

  1. Подготовка окружения

  2. Развертывание сервиса

  3. Подготовка базы данных

  4. Настройка маршрутизации OpenResty

  5. Проверка результата

Подготовка окружения#

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

  1. Платформа Kintsugi (Standard) с развернутым экземпляром Kintsugi (DBM) на виртуальных машинах.

  2. Docker Compose версии 2.0+ установлен на целевой машине.

  3. PostgreSQL 14+ доступен и настроен (хранится на той же или выделенной VM).

  4. LLM-сервис (mock или production) доступен по сети для сервиса dbadvisor.

  5. OpenResty встроен в установку Kintsugi Standard (reverse-proxy).

Развертывание сервиса#

Для развертывания DB Advisor выполните следующие шаги:

  1. Перейдите в каталог конфигурации:

    cd /opt/kintsugi/standard/conf
    
  2. Запустите сервис DB Advisor с указанием профиля:

    docker compose --profile dbadvisor up -d
    

    Эта команда запускает три связанных сервиса:

    • dbadvisor_db_init — инициализация собственной базы данных;

    • dbadvisor_migrate_db — применение Liquibase-миграций;

    • dbadvisor — основной сервис AI-диагностики.

  3. Дождитесь завершения инициализации базы данных:

    docker compose --profile dbadvisor logs dbadvisor_migrate_db
    

    Ожидаемый результат: запись Liquibase: Migration completed successfully.

  4. Проверьте статус сервиса:

    docker compose --profile dbadvisor ps
    

    Ожидаемый результат: сервис dbadvisor в статусе Up.

Подготовка базы данных#

DB Advisor использует собственную базу данных AI-agent Database (PostgreSQL 14+). БД хранит прогоны диагностики, находки, шаги агентов, сводки рекомендаций, журнал решений и аудит обращений к LLM.

При запуске профиля dbadvisor сервис dbadvisor_db_init создаает базу данных aiagent и применяет Liquibase-миграции для создания таблиц.

Создание базы данных#

  1. Создайте базу данных aiagent на сервере PostgreSQL:

    CREATE DATABASE aiagent OWNER dbadvisor;
    
  2. Настройте подключение: убедитесь, что параметры global.database.dbadvisordb.* соответствуют созданной БД.

Применение миграций#

При первом запуске сервис автоматически применяет SQL-миграции к БД aiagent. Миграции создают следующие таблицы:

Таблица

Назначение

investigation

Прогоны диагностики (полная проверка или анализ)

finding

Находки прогона: проблема + доказательства + рекомендации + статус

investigation_step

Шаги работы агентов (ReAct): рассуждение, действие, наблюдение

action_plan

Сводка рекомендаций по итогам прогона

finding_status_history

Журнал смен статуса находки (аудит решений)

llm_audit

Записи об обращениях к LLM (токены, стоимость, маскированный фрагмент)

assets_summary

Сводка по последнему прогону ассета (для быстрых списков)

Примечание

Миграции выполняются в транзакции. При ошибке все изменения откатываются. Повторный запуск сервиса после исправления ошибки продолжит применение миграций с прерванного места.

Назначение прав пользователям#

Права asset_pg_ai_view и asset_pg_ai_run назначаются выделенной группе пользователей AI-диагностики (user_group_key). Членство в группе задается одним из способов:

  • списком пользователей;

  • ассоциацией с RBAC-ролью через поле role_name. По умолчанию используется RBAC-роль kintsugi-user.

Настройка маршрутизации OpenResty#

Сервис DB Advisor в редакции Standard находится за OpenResty (встроенный в Kintsugi reverse-proxy). Для корректной маршрутизации запросов конфигурационный файл маршрутизации добавляется автоматически при установке.

Маршрутизация настраивается в файле standard/conf/conf/openresty/server/dbadvisor.server.conf:

  • REST-локации (/dbadvisor/v1/) подключают kintsugi.common.conf;

  • WebSocket-локация (/dbadvisor/v1/ws/…) подключает kintsugi.websockets.common.conf (заголовки Upgrade).

Примечание

OpenResty валидирует Bearer-токен на границе и пробрасывает оригинальный Authorization наверх. При этом dbadvisor сам JWT не проверяет — он доверяет OpenResty. Сервис dbadvisor читает claims для определения пользователя и ролей.

Проверка результата#

Для валидации установки DB Advisor убедитесь, что:

  1. Контейнер сервиса запущен.

    При выполнении команды docker compose --profile dbadvisor ps в ответ получаем статус Up.

  2. Собственная БД доступна.

    В логе сервиса присутствует запись об успешном подключении к БД aiagent и применении Liquibase-миграций.

  3. Точка подключения живости и готовности отвечают.

    Проверка

    Точка подключения

    Ожидаемый результат

    Живость процесса

    GET /<service>/v1/liveness

    200 OK

    Готовность сервиса

    GET /<service>/v1/readiness

    200 OK (БД доступна, промпты загружены)

  4. Промпты агентов загружены.

    В логе сервиса присутствует запись о загрузке YAML-промптов (файлы workload.yaml, index.yaml, vacuum.yaml, configuration.yaml, connection.yaml, planner.yaml).

  5. Конфигурация маршрутизации OpenResty применена.

    Запросы к /<service>/v1/liveness через OpenResty возвращают 200 OK.