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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

  4. Настройка edge-прокси

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

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

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

  1. Kubernetes-кластер с развернутым экземпляром Kintsugi (DBCM).

  2. Service mesh (Istio) настроен для внутрикластерного mTLS.

  3. Сервис curator доступен и настроен (нужен для проверки asset-привилегий).

  4. Сервис backend (брокер) доступен и настроен (нужен для доступа к управляемым БД).

  5. Хранилище секретов (k8s Secrets или SecMan) настроено для хранения LLM-ключей.

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

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

  1. Задайте значение true параметру application.enabled в файле ./helm/application/dbadvisor.

    При этом значении Helm-чарт создает ресурсы сервиса: Deployment, Service, ConfigMap с промптами.

  2. Определите параметры подключения к собственной БД сервиса:

    Параметр

    Пример

    Описание

    global.database.dbadvisordb.hosts[0].host

    aiagent-db.kintsugi.svc.cluster.local

    Хост PostgreSQL для БД aiagent

    global.database.dbadvisordb.hosts[0].port

    5432

    Порт PostgreSQL

    global.database.dbadvisordb.dbname

    aiagent

    Имя базы данных

    global.database.dbadvisordb.user

    dbadvisor

    Имя пользователя БД (по умолчанию dbadvisor)

    global.secrets.dbadvisordb.data.password.secret

    <СЕКРЕТ>

    Пароль пользователя БД (хранится в k8s Secret)

  3. Параметры интеграции с внутренними сервисами генерируются автоматически через Helm-шаблоны:

    Параметр

    Helm-шаблон

    Описание

    abac.curator_url

    common.endpoints.service.curator

    Адрес сервиса curator для проверки asset-привилегий

    backend.service_name

    common.endpoints.service.backend (порт 8080)

    Адрес брокера backend для доступа к управляемым БД

  4. Разверните Helm-чарт:

    helm upgrade --install aiagent ./helm/application/dbadvisor \
      -f ./helm/application/dbadvisor \
      -n kintsugi
    
  5. Проверьте статус подов:

    kubectl get pods -n kintsugi -l app=dbadvisor
    

    Ожидаемый результат: под в статусе Running.

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

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

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

  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

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

Примечание

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

Привилегии в curator#

Для работы раздела «AI-диагностика» в curator должны быть зарегистрированы две asset-привилегии:

Привилегия

Описание

asset_pg_ai_view

Просмотр раздела и результатов диагностики экземпляра

asset_pg_ai_run

Запуск прогона диагностики и принятие решений по находкам

Процедура заведения привилегий описана в разделе Настройка прав доступа.

Настройка edge-прокси#

Сервис DB Advisor находится за edge-прокси iam (OpenResty). Для корректной маршрутизации запросов требуется конфигурационный файл aiagent.server.conf.

  1. Создайте файл aiagent.server.conf в каталоге package/conf/helm/iam/ с содержимым:

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

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

  2. Разверните конфигурацию iam:

    kubectl rollout restart deployment/iam -n kintsugi
    

Примечание

iam валидирует Bearer-токен на границе и пробрасывает оригинальный Authorization наверх. aiagent сам JWT не проверяет (доверяет iam), но читает claims для определения пользователя и ролей.

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

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

  1. Под сервиса запущен.

    При выполнении команды kubectl get pods -n kintsugi -l app=dbadvisor в ответ получаем статус Running.

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

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

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

    Проверка

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

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

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

    GET /aiagent/v1/liveness

    200 OK

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

    GET /aiagent/v1/readiness

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

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

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

  5. Конфигурация edge-прокси применена.

    Запросы к /aiagent/v1/liveness через iam возвращают 200 OK.