Установка компонента DB Advisor (опциональный)#
Цель выполнения#
Установка компонента DB Advisor необходима, чтобы:
Запускать интеллектуальную диагностику экземпляров PostgreSQL и Platform V Pangolin DB с помощью ИИ-агентов.
Получать структурированные рекомендации по оптимизации СУБД.
Рассчитывать индекс здоровья (0–100) на основе обнаруженных проблем.
Анализировать историю прогонов диагностики и формировать сводные профили нагрузки.
Примечание
DB Advisor — опциональный компонент. Если сервис не требуется, пропустите этот раздел.
Последовательность действий#
Установка DB Advisor делится на этапы:
Подготовка окружения#
Перед началом установки убедитесь, что выполнены следующие требования:
Kubernetes-кластер с развернутым экземпляром Kintsugi (DBCM).
Service mesh (Istio) настроен для внутрикластерного mTLS.
Сервис
curatorдоступен и настроен (нужен для проверки asset-привилегий).Сервис
backend(брокер) доступен и настроен (нужен для доступа к управляемым БД).Хранилище секретов (k8s Secrets или SecMan) настроено для хранения LLM-ключей.
Развертывание сервиса#
Для развертывания DB Advisor выполните следующие шаги:
Задайте значение
trueпараметруapplication.enabledв файле./helm/application/dbadvisor.При этом значении Helm-чарт создает ресурсы сервиса: Deployment, Service, ConfigMap с промптами.
Определите параметры подключения к собственной БД сервиса:
Параметр
Пример
Описание
global.database.dbadvisordb.hosts[0].hostaiagent-db.kintsugi.svc.cluster.localХост PostgreSQL для БД
aiagentglobal.database.dbadvisordb.hosts[0].port5432Порт PostgreSQL
global.database.dbadvisordb.dbnameaiagentИмя базы данных
global.database.dbadvisordb.userdbadvisorИмя пользователя БД (по умолчанию
dbadvisor)global.secrets.dbadvisordb.data.password.secret<СЕКРЕТ>Пароль пользователя БД (хранится в k8s Secret)
Параметры интеграции с внутренними сервисами генерируются автоматически через Helm-шаблоны:
Параметр
Helm-шаблон
Описание
abac.curator_urlcommon.endpoints.service.curatorАдрес сервиса
curatorдля проверки asset-привилегийbackend.service_namecommon.endpoints.service.backend(порт 8080)Адрес брокера
backendдля доступа к управляемым БДРазверните Helm-чарт:
helm upgrade --install aiagent ./helm/application/dbadvisor \ -f ./helm/application/dbadvisor \ -n kintsugiПроверьте статус подов:
kubectl get pods -n kintsugi -l app=dbadvisorОжидаемый результат: под в статусе
Running.
Подготовка базы данных#
DB Advisor использует собственную базу данных AI-agent Database (PostgreSQL 14+). БД хранит прогоны диагностики, находки, шаги агентов, сводки рекомендаций, журнал решений и аудит обращений к LLM.
Создание базы данных#
Создайте базу данных
aiagentна сервере PostgreSQL:CREATE DATABASE aiagent OWNER dbadvisor;Настройте подключение: убедитесь, что параметры
global.database.dbadvisordb.*соответствуют созданной БД.
Применение миграций#
При первом запуске сервис автоматически применяет SQL-миграции к БД aiagent. Миграции создают следующие таблицы:
Таблица |
Назначение |
|---|---|
|
Прогоны диагностики (полная проверка или анализ) |
|
Находки прогона: проблема + доказательства + рекомендации + статус |
|
Шаги работы агентов (ReAct): рассуждение, действие, наблюдение |
|
Сводка рекомендаций по итогам прогона |
|
Журнал смен статуса находки (аудит решений) |
|
Записи об обращениях к LLM (токены, стоимость, маскированный фрагмент) |
|
Сводка по последнему прогону ассета (для быстрых списков) |
Примечание
Миграции выполняются в транзакции. При ошибке все изменения откатываются. Повторный запуск сервиса после исправления ошибки продолжит применение миграций с прерванного места.
Привилегии в curator#
Для работы раздела «AI-диагностика» в curator должны быть зарегистрированы две asset-привилегии:
Привилегия |
Описание |
|---|---|
|
Просмотр раздела и результатов диагностики экземпляра |
|
Запуск прогона диагностики и принятие решений по находкам |
Процедура заведения привилегий описана в разделе Настройка прав доступа.
Настройка edge-прокси#
Сервис DB Advisor находится за edge-прокси iam (OpenResty). Для корректной маршрутизации запросов требуется конфигурационный файл aiagent.server.conf.
Создайте файл
aiagent.server.confв каталогеpackage/conf/helm/iam/с содержимым:REST-локации (
/aiagent/v1/) подключаютkintsugi.common.conf;WebSocket-локация (
/aiagent/v1/ws/…) подключаетkintsugi.websockets.common.conf(заголовки Upgrade).
Разверните конфигурацию
iam:kubectl rollout restart deployment/iam -n kintsugi
Примечание
iam валидирует Bearer-токен на границе и пробрасывает оригинальный Authorization наверх. aiagent сам JWT не проверяет (доверяет iam), но читает claims для определения пользователя и ролей.
Проверка результата#
Для валидации установки DB Advisor убедитесь, что:
Под сервиса запущен.
При выполнении команды
kubectl get pods -n kintsugi -l app=dbadvisorв ответ получаем статусRunning.Собственная БД доступна.
В логе сервиса присутствует запись об успешном подключении к БД
aiagentи применении миграций.Точка подключения живости и готовности отвечают.
Проверка
Точка подключения
Ожидаемый результат
Живость процесса
GET /aiagent/v1/liveness200 OKГотовность сервиса
GET /aiagent/v1/readiness200 OK(БД доступна, промпты загружены)Промпты агентов загружены.
В логе сервиса присутствует запись о загрузке YAML-промптов из ConfigMap (файлы
workload.yaml,index.yaml,vacuum.yaml,configuration.yaml,connection.yaml,planner.yaml).Конфигурация edge-прокси применена.
Запросы к
/aiagent/v1/livenessчерезiamвозвращают200 OK.