03:12 сработал алерт. Никто не проснулся.
AI-дежурный
инженер
Агент сам разбирает алерты: идёт в логи и метрики, находит причину и присылает в Telegram готовый диагноз с командой для исправления. Утром вы читаете разбор — а не 40 сработок.
Read-only: агент только читает. Разворачивается в вашем контуре. Каждая команда — в аудит-логе.
api-gateway (prod) не отвечает
Диагноз: api-gateway упал — на node-2 закончилось место на диске.
Проверил:
- Prometheus node_filesystem_avail: 0 B (node-2)
- Loki «no space left on device» в логах, 03:11
- SSH docker ps: api-gateway — Exited (1)
- SSH df -h: /dev/vda1 — 100%
- SSH du -sh /var/log/* → billing-worker: 41 GB
- SSH lsof: app.log держит процесс billing-worker
Причина: billing-worker пишет логи без ротации — 41 GB за три дня.
Что сделать:
truncate -s 0 /var/log/billing-worker/app.log docker restart api-gateway
✓ Решение провалидировано: файл держит процесс — rm место не освободит, truncate освободит сразу. Логи уже собраны в Loki, потерь нет.
Чтобы не повторилось:
- настроить logrotate для /var/log/billing-worker — пришлю готовый конфиг
- добавить алерт на заполнение диска с прогнозом (predict_linear) — предупредит за часы, а не в 03:12
Одна ночь с агентом
Сработал алерт
Alertmanager или vmalert шлёт вебхук агенту. Телефон дежурного молчит — дежурного может вообще не быть.
Агент собирает контекст
Запросы к вашему мониторингу — Prometheus и Loki, df -h и docker logs по SSH. Только чтение, каждая команда — в аудит-логе.
Диагноз в Telegram
Причина, доказательства из логов и метрик, команда для исправления. В общий чат и в личку ответственному. Команду агент только рекомендует — выполнять или нет, решаете вы.
Вы читаете разбор за кофе
Вместо ленты сработок — одно резюме и готовый план. Если случай серьёзный — вы узнали о нём ночью, уже с контекстом.
Подключается к тому, что у вас уже есть
Метрики
- Prometheus
- VictoriaMetrics
Логи
- Loki
- VictoriaLogs
- OpenSearch / Elasticsearch
Алерты
- Alertmanager
- vmalert
Серверы по SSH
- docker logs
- файлы логов на VM
Kubernetes
- kubectl logs
- kubectl get / describe / top
Мозг — любая LLM с OpenAI-совместимым API: ваш ключ (напрямую, OpenRouter, LiteLLM) или наш в составе подписки. По умолчанию можно использовать модель проще, а сложные случаи эскалировать на более сильную (например, DeepSeek V4 Pro с эскалацией на Claude Sonnet 5). Возможен self-hosted вариант.
Zabbix — обсудим на пилоте: подключим индивидуально или поможем с переходом на современный стек мониторинга.
Read-only по построению
Агент ничего не меняет на серверах — он только читает и рекомендует. «Только чтение» — это свойство системы, а не обещание в промпте.
Никакого свободного shell
Модель не пишет команды сама — она выбирает инструмент из фиксированного набора, а параметры проверяет код: список разрешённых путей, лимиты объёма, таймауты.
Аудит каждой команды
Полный журнал того, что агент читал на ваших серверах, доступен вам в любой момент.
В вашем контуре
Разворачивается у вас: docker-compose или helm-чарт. Наружу уходят только запросы к LLM и диагнозы в Telegram; с self-hosted моделью — только Telegram.
Ограниченные учётки
На серверы агент ходит под отдельным SSH-пользователем, в Kubernetes — под ServiceAccount с read-only правами. Обе учётки создаёте и контролируете вы.
Что уходит в LLM
Только фрагменты логов и метрик, собранные для конкретного разбора, — ровно то, что вы видите в аудит-логе. Фильтр секретов вычищает токены и пароли до отправки в модель.
journalctltailgrepdffreepssystemctl statusdocker logskubectl logs / get / describe / top…расширяется добавлением инструментов, не снятием ограниченийФиксы агент не выполняет — только рекомендует команду. Выполнение по вашему апруву появится позже, когда вы сами решите, что готовы его доверить.
Для кого
Маленькая ops-команда
Инженеров мало, дежурств нет — ночные алерты ждут утра, и иногда не доживают до него без последствий. Агент становится первой линией: ночь он разбирает сам.
Команда с дежурными
Дежурный получает не голый алерт, а собранный контекст и гипотезу. Разбор инцидента начинается не с нуля — и не в пяти вкладках Grafana.
Частые вопросы
Что, если агент ошибётся в диагнозе?
Диагноз всегда приходит с доказательствами: выдержки из логов и метрик, полный список выполненных read-команд. Вы проверяете разбор так же, как проверили бы разбор коллеги, — и агент ничего не выполняет сам. Ошибочная гипотеза стоит вам пары минут чтения, а не сломанного прода.
Что из наших данных уходит в LLM?
В модель попадают только те фрагменты логов и метрик, которые агент собрал по конкретному инциденту, — каждый из них виден в аудит-логе. Полностью закрытый контур тоже возможен: агент умеет работать с self-hosted моделью.
У нас Zabbix. Нам не подойдёт?
Подойдёт. На пилоте посмотрим на вашу установку и решим вместе: подключим Zabbix индивидуально или поможем перейти на Prometheus/VictoriaMetrics.
Сколько это стоит?
Цены объявим после первых пилотов. Для пилотных команд условия индивидуальные и заведомо щадящие: сейчас нам важнее ваша инфраструктура и обратная связь, чем выручка.
Как это разворачивается?
Одним docker-compose или helm-чартом в вашем контуре. Понадобится отдельный SSH-пользователь с ограниченными правами, а если есть Kubernetes — read-only ServiceAccount. Учётки создаёте и контролируете вы.
Что нужно, чтобы запустить пилот?
Read-only доступ к вашему стеку мониторинга и инфраструктуре (учётки создаёте и контролируете вы) и около часа вашего времени на подключение. Дальше агент разбирает боевые алерты — первые разборы в течение недели.
Открываем пилоты
Подключим агента к вашему стеку, поможем с установкой и вместе посмотрим на первые разборы инцидентов. Напишите пару слов о вашей инфраструктуре — расскажем, что агент сможет взять на себя. Условия пилота — индивидуальные: для первых команд это про совместную настройку, а не про деньги.
Обсудить пилот в TelegramОтвечает основатель — Денис Иванов (@dendw), практикующий DevOps-инженер с 8+ лет опыта