← Все работы

BIOS-Agent

Сервер, на котором живут клиентские сайты, не может позволить себе сценарий «упало ночью, узнали утром». BIOS-Agent следит за ним сам: проверяет диск, память, процессы, сертификаты и доступность сайтов, чинит типовые сбои без человека и обращается к владельцу только тогда, когда решение действительно за ним.

Скриншот проекта BIOS-Agent — Telegram Mini App · DevOps-автоматизация

Задача

Готовые системы мониторинга рассчитаны на другие масштабы. На двухъядерной машине, где каждый мегабайт памяти работает на клиентские сайты, тяжёлый стек сам стал бы источником проблем.

И главное, нужны были не графики. Графики требуют, чтобы кто-то на них смотрел. Требовалась система, которая принимает типовые решения самостоятельно, а человека зовёт только на то, что нельзя доверить автоматике.

Решение

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

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

Панель в Telegram, а не веб-админка

Классическая админка означала бы ещё один пароль, ещё одну форму входа и ещё одну поверхность для атаки. Telegram Mini App снимает этот слой: приложение открывается изнутри мессенджера, а личность пользователя подтверждает сама платформа криптографической подписью. Доступ есть ровно у одного аккаунта.

Панель показывает состояние сервера, процессы, журналы и защиту, а любую строку можно раскрыть в карточку: что происходит, почему это важно и какие есть варианты действий. У каждой кнопки подписано последствие. Интерфейс собран на нативных ES-модулях без сборщика: панель обязана открываться мгновенно даже на телефоне в роуминге.

Разграничение рисков

Операции разделены на два класса. Обратимые выполняются сразу по нажатию. Разрушительные из панели не выполняются вообще: они попадают в очередь и ждут отдельного подтверждения в чате.

Смысл в том, что чат работает как второй фактор. Даже если бы кто-то получил доступ к интерфейсу, необратимое действие потребовало бы подтверждения в другом контуре. Произвольных команд в системе нет: агент умеет только те операции, которые заранее описаны в коде.

Результат

Время реакции на сбой сократилось с «когда замечу» до пяти минут. Типовые аварии, ради которых раньше приходилось открывать ноутбук, закрываются без участия человека, а владелец получает утренний дайджест вместо потока уведомлений.

Систему покрывают 79 автотестов, а сам агент ограничен по ресурсам так, чтобы никогда не конкурировать с сайтами, которые он обслуживает.

Нужен похожий проект?

Расскажите задачу — покажу, как решил бы её для вашего бизнеса, и назову фикс-цену.