DB
DBAigent · документация

Документация DBAigent

DBAigent — платформа управления PostgreSQL с ИИ-аналитиком. Веб-консоль для развёртывания кластеров, настройки, операций и алертинга — и локальная модель pgctl-v2, которая проводит аудит базы, объясняет проблемы и предлагает действия. Всё работает внутри вашего периметра.

Архитектура

Три уровня: консоль, целевые хосты с агентами, локальная модель. Данные с хостов не проходят через внешние сервисы — агент собирает статистику, модель анализирует её в вашей сети, консоль хранит результат.

Пользователь браузер · роли Консоль DBAigent кластеры · операции · параметры алерты · отчёты ИИ · чат хранилище состояния оркестрация задач · история · доступы Хост PostgreSQL · primary агент сбора статистики чекер алертов (таймер) реплики / etcd / балансировщик по топологии кластера Модель pgctl-v2 Qwen2.5-3B · QLoRA NVIDIA RTX 3060 12 ГБ OpenAI-совместимый локальный сервер ваш периметр — данные не покидают SSH · задачи отчёты · алерты снапшот → JSON-аудит чат

Потоки: консоль отправляет задачи на хосты по SSH; агент на хосте собирает статистику и обращается к модели; готовый отчёт возвращается в консоль. Чат по проблеме идёт из консоли напрямую к модели. Наружу — ничего.

Установка

Консоль поднимается контейнерами; нужен доступ по SSH (ключ или пароль) к целевым хостам Ubuntu 22.04/24.04 с sudo. Локальная модель — отдельный сервер с GPU, отдающий OpenAI-совместимый API; адрес указывается в настройках агента.

# консоль
cd dbaigent && docker compose up -d --build     # UI на :8080

# первый вход создаёт администратора; для публичного стенда:
PGCTL_DEMO_LOGIN=demo:demo                       # гостевой вход с ролью demo

Кластеры и операции

Мастер развёртывания: версия → репозиторий → топология (standalone / реплики / отказоустойчивый кластер с автопереключением) → роли узлов → балансировка и мониторинг → раскат с живым журналом. Параметры сгруппированы, описаны и применяются без ручных правок конфигов.

Раздел «Операции» — действие → цели → параметры → выполнить: создание ролей и баз, выдача/отзыв прав, смена паролей, изменение параметра на нескольких кластерах сразу. Имена валидируются, пароли экранируются, SQL не собирается из сырого ввода.

ИИ-аудит

Запуск по кнопке, по выбранным блокам (сессии, запросы, блокировки, vacuum, репликация, индексы, конфиг) или всем разом. Агент собирает срез, применяет умный отсев — в модель уходит только новое и изменившееся, известные проблемы переносятся в отчёт с датой появления — и возвращает JSON-аудит: критичность, evidence, расчёты, рассуждение, рекомендации.

  • Лимиты: размер ответа, объём входа, дневной бюджет; расход виден по каждому отчёту и чату.
  • Действия из отчёта: переход к рекомендованному параметру с подсветкой и значением; чат по конкретной находке с дозапросом данных.
  • Отчёты: история по всем кластерам, статус задачи по клику, отмена зависших, выгрузка.

Алертинг

Чекер ставится на primary как системный таймер, проверяет пороги локально и присылает сработки в консоль. Сервер ведёт firing/resolved с дедупом; хранятся активные и ограниченная история — без нагрузки на консоль.

13 правил из коробки: долгая транзакция, долгий запрос, idle in transaction, блокировки, соединения у лимита, wraparound, dead tuples, лаг репликации, неактивный слот, deadlocks, CPU, память, диск. Пороги и критичность настраиваются на кластер. У каждого алерта — «Провести ИИ-анализ» (собираются только относящиеся к алерту блоки, контекст алерта уходит в модель) и чат по алерту.

Модель pgctl-v2

База Qwen2.5-3B-Instruct (4-bit), дообучение QLoRA на RTX 3060 12 ГБ, ~4 600 примеров в четырёх слоях (знания PG, причинно-следственные цепочки, расследование по логам, реальный формат агента с эталонными действиями). Контракт вывода: info/warning/critical + evidence + calculations + reasoning + recommendations; пороги передаются в запросе. Подробнее — на странице модели.

{"task": "audit" | "alert_analysis", "thresholds": {...}, "alert": {...}, "stats": {...}}
→ {"severity", "evidence": [...], "calculations": [...], "reasoning", "recommendations": [...]}

Песочница и открытый стенд

Песочница — одноразовая изолированная база: кнопки нагрузки (блокировки, долгие транзакции, deadlock, наплыв соединений, bloat, seq scan), живой мониторинг, SQL-консоль под ограниченной ролью, ИИ-аудит на локальной модели, сброс в исходное.

Открытый стенд pgctl — полная консоль на демо-хостах, вход гостем. Доступно всё: раскатка, операции, параметры, алерты, ИИ-анализ, чат. Отключено то, что превращает стенд в инструмент атаки: добавление своих хостов, смена ИИ-эндпоинта, управление пользователями, снос кластеров.

Открытый стенд → Чат с моделью →

Безопасность

  • Данные не покидают периметр. Модель локальная; статистика собирается и анализируется внутри вашей сети.
  • Роли: администратор, оператор, наблюдатель, гость (демо). Ограничение доступа вплоть до групп параметров.
  • Секреты шифруются при хранении и скрываются в журналах выполнения. Колбэки с хостов защищены токенами.
  • Песочница изолирована: эфемерные данные, лимиты ресурсов, роль без суперпользователя, денайлист опасных SQL, rate-limit.