Установка компонента DB Advisor (опциональный)#
DB Advisor в редакции Standard запускается как опциональный профиль Docker Compose.
Цель выполнения#
Установка компонента DB Advisor необходима, чтобы:
Запускать интеллектуальную диагностику экземпляров PostgreSQL и Platform V Pangolin DB с помощью ИИ-агентов.
Получать структурированные рекомендации по оптимизации СУБД.
Рассчитывать индекс здоровья (0–100) на основе обнаруженных проблем.
Анализировать историю прогонов диагностики и формировать сводные профили нагрузки.
Примечание
DB Advisor — опциональный компонент. Если сервис не требуется, пропустите этот раздел.
Последовательность действий#
Установка DB Advisor делится на этапы:
Подготовка окружения#
Перед началом установки убедитесь, что выполнены следующие требования:
Платформа Kintsugi (Standard) с развернутым экземпляром Kintsugi (DBM) на виртуальных машинах.
Docker Compose версии 2.0+ установлен на целевой машине.
PostgreSQL 14+ доступен и настроен (хранится на той же или выделенной VM).
LLM-сервис (mock или production) доступен по сети для сервиса
dbadvisor.OpenResty встроен в установку Kintsugi Standard (reverse-proxy).
Развертывание сервиса#
Для развертывания DB Advisor выполните следующие шаги:
Перейдите в каталог конфигурации:
cd /opt/kintsugi/standard/confЗапустите сервис DB Advisor с указанием профиля:
docker compose --profile dbadvisor up -dЭта команда запускает три связанных сервиса:
dbadvisor_db_init— инициализация собственной базы данных;dbadvisor_migrate_db— применение Liquibase-миграций;dbadvisor— основной сервис AI-диагностики.
Дождитесь завершения инициализации базы данных:
docker compose --profile dbadvisor logs dbadvisor_migrate_dbОжидаемый результат: запись
Liquibase: Migration completed successfully.Проверьте статус сервиса:
docker compose --profile dbadvisor psОжидаемый результат: сервис
dbadvisorв статусеUp.
Подготовка базы данных#
DB Advisor использует собственную базу данных AI-agent Database (PostgreSQL 14+). БД хранит прогоны диагностики, находки, шаги агентов, сводки рекомендаций, журнал решений и аудит обращений к LLM.
При запуске профиля dbadvisor сервис dbadvisor_db_init создаает базу данных aiagent и применяет Liquibase-миграции для создания таблиц.
Создание базы данных#
Создайте базу данных
aiagentна сервере PostgreSQL:CREATE DATABASE aiagent OWNER dbadvisor;Настройте подключение: убедитесь, что параметры
global.database.dbadvisordb.*соответствуют созданной БД.
Применение миграций#
При первом запуске сервис автоматически применяет SQL-миграции к БД aiagent. Миграции создают следующие таблицы:
Таблица |
Назначение |
|---|---|
|
Прогоны диагностики (полная проверка или анализ) |
|
Находки прогона: проблема + доказательства + рекомендации + статус |
|
Шаги работы агентов (ReAct): рассуждение, действие, наблюдение |
|
Сводка рекомендаций по итогам прогона |
|
Журнал смен статуса находки (аудит решений) |
|
Записи об обращениях к LLM (токены, стоимость, маскированный фрагмент) |
|
Сводка по последнему прогону ассета (для быстрых списков) |
Примечание
Миграции выполняются в транзакции. При ошибке все изменения откатываются. Повторный запуск сервиса после исправления ошибки продолжит применение миграций с прерванного места.
Назначение прав пользователям#
Права 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 убедитесь, что:
Контейнер сервиса запущен.
При выполнении команды
docker compose --profile dbadvisor psв ответ получаем статусUp.Собственная БД доступна.
В логе сервиса присутствует запись об успешном подключении к БД
aiagentи применении Liquibase-миграций.Точка подключения живости и готовности отвечают.
Проверка
Точка подключения
Ожидаемый результат
Живость процесса
GET /<service>/v1/liveness200 OKГотовность сервиса
GET /<service>/v1/readiness200 OK(БД доступна, промпты загружены)Промпты агентов загружены.
В логе сервиса присутствует запись о загрузке YAML-промптов (файлы
workload.yaml,index.yaml,vacuum.yaml,configuration.yaml,connection.yaml,planner.yaml).Конфигурация маршрутизации OpenResty применена.
Запросы к
/<service>/v1/livenessчерез OpenResty возвращают200 OK.