Документация DBAigent
DBAigent — платформа управления PostgreSQL с ИИ-аналитиком. Веб-консоль для развёртывания кластеров, настройки, операций и алертинга — и локальная модель pgctl-v2, которая проводит аудит базы, объясняет проблемы и предлагает действия. Всё работает внутри вашего периметра.
Архитектура
Три уровня: консоль, целевые хосты с агентами, локальная модель. Данные с хостов не проходят через внешние сервисы — агент собирает статистику, модель анализирует её в вашей сети, консоль хранит результат.
Потоки: консоль отправляет задачи на хосты по 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.