Описание функциональных характеристик программного обеспечения и информация, необходимая для установки и эксплуатации
Наименование ПО: WarpFleet
Класс по классификатору (приказ Минцифры России от 22.09.2020 № 486): 02.08 «Средства мониторинга и управления»
Правообладатель: Индивидуальный предприниматель Гущин Василий Александрович, ИНН 026815274864, ОГРНИП 326508100376067
Сайт продукта: https://warpfleet.ru
Техническая поддержка: info@warpfleet.ru
Дата составления: 19.08.2026
1. Назначение программного обеспечения
WarpFleet — программное обеспечение для непрерывного мониторинга парка серверов под управлением ОС Linux и автоматического устранения типовых отказов на них.
ПО решает две задачи:
- Мониторинг. Измерение, сбор, хранение и анализ рабочих характеристик серверов (объектов управления): загрузки процессора, памяти, дискового пространства и inode, состояния служб systemd, журналов, состояния пакетного менеджера, сети и DNS, подсистемы хранения (LVM), синхронизации времени, доменной аутентификации, кластеров Kubernetes, а также рантайма прикладных сервисов — СУБД PostgreSQL и MySQL/MariaDB, веб-серверов nginx, Apache, HAProxy, почтовых служб и Java-приложений.
- Автоматическое устранение неисправностей. Выявление классов проблем по собранному состоянию, подбор сценария восстановления, его исполнение службой исполнения с предварительными проверками, последующей верификацией результата и откатом, если проблема не устранена и откат для сценария предусмотрен.
Типовые пользователи ПО: системные администраторы, отделы эксплуатации, организации, оказывающие услуги по сопровождению ИТ-инфраструктуры.
2. Состав программного обеспечения
ПО является клиент-серверным и состоит из следующих компонентов:
| Компонент | Назначение | Технология |
|---|---|---|
Агент (warpfleet-agent) | Устанавливается на наблюдаемый сервер. Работает от непривилегированного пользователя warpfleet. Сбор состояния, выявление проблем, передача службе исполнения | Язык Go, единый статически слинкованный исполняемый файл |
Служба исполнения (warpfleet-exec) | Работает с правами root на наблюдаемом сервере. Исполняет сценарии восстановления из собственного подписанного каталога и действия консоли — только по подписанным консолью билетам | Тот же исполняемый файл агента, отдельная служба systemd |
Помощник проверок (warpfleet-probe) | Работает с правами root на наблюдаемом сервере. Выполняет проверки только на чтение из закрытого перечня | Тот же исполняемый файл агента, отдельная служба systemd |
| Управляющий контур (bridge) | Приём данных от агентов, хранение, выдача веб-интерфейса и API, управление политиками и подтверждениями | Язык Go, СУБД PostgreSQL |
| Веб-консоль оператора | Интерфейс управления парком серверов | Vue 3, поставляется как статические файлы |
| Мобильное приложение оператора | Просмотр состояния парка и подтверждение рискованных действий | Android, Kotlin, Jetpack Compose |
| Библиотека сценариев (плейбуков) | Декларативное описание диагностики и восстановления | 272 файла формата YAML |
Полный перечень используемых сторонних компонентов с указанием лицензий приведён в документе «Состав компонентов и лицензии».
3. Функциональные характеристики
3.1. Цикл работы агента
Агент выполняет повторяющийся цикл с периодом 30 секунд:
- Сбор (Collect). Коллекторы снимают состояние сервера. Коллектор, не уложившийся в отведённое время, прерывается по таймауту и не задерживает цикл.
- Выявление (Detect). Из снимка выводятся классы проблем: переполнение диска, отказ службы, отставание репликации, переполнение таблицы conntrack и иные. Наблюдения, для которых отсутствует план устранения, помечаются как диагностические и не влияют на итоговый статус сервера.
- Политика (Policy). Определяется допустимое действие: устранить автоматически, запросить подтверждение оператора либо только отобразить информацию.
- Устранение (Remediate). Для проблемы подбирается сценарий: выполняются предварительные проверки, затем шаги устранения, затем верификация того, что проблема действительно устранена. При неуспешной верификации выполняется откат по описанным в сценарии шагам.
- Сохранение (Persist). Результат записывается в локальную базу данных на сервере (SQLite) и передаётся в управляющий контур. При потере связи агент продолжает работу автономно, накопленная история не теряется.
3.2. Модель сетевого взаимодействия
Все соединения инициирует агент — исходящие запросы по протоколу HTTPS (порт 443) с предъявлением токена. Входящие соединения к наблюдаемому серверу не требуются: открытые порты и входящий доступ по SSH не нужны, серверы за NAT работают без проброса портов. Терминальный доступ из веб-консоли, если он используется, реализован через обратный туннель, инициируемый самим агентом.
3.3. Сценарии (плейбуки)
Сценарий — файл формата YAML, содержащий: класс проблемы, перечень поддерживаемых операционных систем, уровень риска, перечень разрешённых к исполнению команд, предварительные проверки, шаги устранения, шаги верификации и политику отката.
Библиотека содержит 272 сценария, покрывающих дисковую подсистему, службы, сеть, СУБД, Kubernetes, а также особенности отечественных операционных систем. 115 из них не выполняют изменений и только формируют рекомендации оператору. Разметку дисков, массивы RAID, тома LVM, файловые системы, монтирование, swap, правила межсетевого экрана, таблицу conntrack, сетевые интерфейсы и маршруты ПО не изменяет ни автоматически, ни по подтверждению: для таких проблем выдаётся только рекомендация.
3.4. Режим наблюдения
До включения автоматического устранения агент выполняет полный цикл, но вместо исполнения команд фиксирует, какие именно действия он выполнил бы. Перечень таких команд отображается в карточке проблемы. Режим предназначен для оценки корректности принимаемых решений на реальной инфраструктуре до передачи ПО права на исполнение.
3.5. Ограничения исполнения и безопасность
- Перечень разрешённых команд. Агент исполняет только команды, объявленные в сценарии. Проверка выполняется дважды: до и после подстановки переменных.
- Командная оболочка — только где объявлена. Команды исполняются передачей аргументов процессу. Интерпретатор
sh/bashзапускается лишь в тех сценариях, где он явно указан в перечне разрешённых команд (allowed_commands); такие сценарии открыты для чтения вместе с остальными. - Валидация переменных. Значения, содержащие метасимволы командной оболочки или похожие на подстановку ключей командной строки, отклоняются; для переменных, попадающих в команду оболочки, дополнительно отклоняются пробелы и фигурные скобки. Сценарий в этих случаях отказывается формировать команду.
- Жёсткое ограничение времени шага. Ни один шаг сценария не исполняется дольше 5 минут независимо от значения, запрошенного сценарием.
- Уровни риска и допуск к автономному исполнению. Без подтверждения оператора исполняются только сценарии, допущенные правообладателем к автономному исполнению на семействе ОС данного сервера, и только в категориях, для которых владелец включил автоматическое устранение (по умолчанию — запрашивать подтверждение). Остальные сценарии исполняются после подтверждения оператора. Сценарии высокого риска (перезапуск критичных служб, операции с доменной инфраструктурой) — всегда только после явного подтверждения оператора.
- Целостность поставки. Исполняемый файл агента и архив сценариев распространяются с манифестом, подписанным по алгоритму Ed25519. При несовпадении контрольной суммы или подписи обновление отклоняется, продолжает работать ранее установленная версия, в консоли регистрируется инцидент нарушения целостности.
- Изоляция агента. Служба systemd с ограничениями, задаваемыми при установке: бюджет памяти
MemoryHigh=768 МБи жёсткий пределMemoryMax=1024 МБ, ограничение числа задачTasksMax=512, сторожевой таймерWatchdogSec=120sс автоматическим перезапуском зависшего процесса,ProtectKernelModules=true,RestrictRealtime=true,LockPersonality=true,SystemCallArchitectures=native. Агент работает от непривилегированного пользователяwarpfleetбез Linux capabilities (CapabilityBoundingSet=пуст,NoNewPrivileges=true), повысить права не может. Действия, требующие прав root, выполняют служба исполненияwarpfleet-exec(только по подписанным консолью билетам и по собственному каталогу сценариев) и помощник проверокwarpfleet-probe(закрытый перечень проверок на чтение). В штатном режиме потребление памяти существенно ниже установленного бюджета. - Разграничение доступа. Роли: наблюдатель, оператор, подтверждающий, администратор.
- Аудит. Каждое решение политики, исполненная команда и её вывод фиксируются в журнале аудита. Секреты в командах и выводе маскируются до записи.
3.6. Функции, реализуемые в управляющем контуре
- Регистрация и инвентаризация серверов, объединение их в группы.
- Отображение метрик и их истории, графики, отчёты о состоянии обновлений.
- Управление политиками автоматического устранения и подтверждение действий.
- Оповещения: push-уведомления в мобильное приложение и электронная почта.
- Журнал аудита с возможностью выгрузки в форматах ndjson и csv.
- Программный интерфейс REST (
/api/v1) с описанием в формате OpenAPI и встроенной интерактивной документацией.
4. Требования к аппаратному и программному обеспечению
4.1. Наблюдаемый сервер (агент)
| Параметр | Значение |
|---|---|
| Операционная система | Linux с системой инициализации systemd |
| Архитектура | amd64 или arm64 |
| Права | root (или sudo) для установки |
| Сеть | Исходящий доступ по HTTPS к управляющему контуру. Входящие порты не требуются |
| Дополнительное ПО | Не требуется: интерпретаторы, контейнерная среда и сторонние библиотеки не нужны |
| Потребление | Единицы процентов процессорного времени; память ограничена средствами systemd (см. п. 3.5) |
Поддерживаемые операционные системы:
| Операционная система | Проверенная версия | Примечание |
|---|---|---|
| Astra Linux | 1.8.1 SE «Смоленск» | Отдельная логика: диагностика мандатного контроля parsec, собственные сценарии, пакетный стек apt/dpkg |
| РЕД ОС | 8.0.2 / 8.0.3 (МУРОМ) | Отдельная логика: dnf, SELinux, firewalld; собственные репозитории без subscription-manager; журналы аудита при очистке диска не затрагиваются |
| ALT Linux | p10 / p11 | Отдельная логика: apt-rpm, make-initrd, собственные сценарии восстановления |
| Ubuntu | 24.04 / 26.04 LTS | Полная поддержка |
| Debian | 13 | Полная поддержка |
| RHEL | 9 | Совместимость с RHEL 9 проверена на Rocky Linux, AlmaLinux и Oracle Linux 9, включая сценарии SELinux |
| Rocky Linux | 9 / 10 | Полная поддержка |
| AlmaLinux | 9 / 10 | Полная поддержка |
| Oracle Linux | 8 / 9 / 10 | Полная поддержка |
| CentOS Stream | 9 | Совместимость с RHEL 9 проверена на Rocky Linux, AlmaLinux и Oracle Linux 9 |
| openSUSE Leap | 16 | Полная поддержка, включая сценарии snapper и zypper |
4.2. Сервер управляющего контура (при установке в инфраструктуре заказчика)
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| Операционная система | Ubuntu 22.04 / Debian 12 / Rocky Linux 9 / AlmaLinux 9 | Ubuntu 24.04 |
| Процессор | 1 vCPU | 2 vCPU |
| Оперативная память | 1 ГБ | 2 ГБ |
| Дисковое пространство | 10 ГБ | 50 ГБ (с учётом резервных копий) |
| Контейнерная среда | Docker 24.x, Docker Compose plugin v2.20+ | текущая версия |
Фактическое потребление управляющего контура при 50 подключённых серверах — около 80 МБ оперативной памяти и около 200 МБ дискового пространства.
5. Установка
5.1. Вариант 1 — использование облачного управляющего контура
- Регистрация в консоли по адресу https://app.warpfleet.ru. Вход выполняется по одноразовому коду, направляемому на адрес электронной почты; пароль не используется.
- В разделе «Серверы» выбрать «Добавить». Консоль создаёт установочный токен и показывает готовую команду для запуска на сервере:
curl -fsSL https://app.warpfleet.ru/api/install/<установочный токен> | sudo bash
Токен имеет ограниченный срок действия и ограниченное число использований; его можно отозвать в консоли.
- Альтернативно консоль может выполнить установку сама по SSH. Для этого указывается учётная запись с правами sudo; вход под root не принимается. После того как агент установил канал связи с управляющим контуром, данные SSH-доступа удаляются: дальнейшее управление идёт только через агента.
Установщик проверяет дистрибутив и архитектуру, при необходимости доустанавливает curl и tar, размещает исполняемый файл в /opt/warpfleet/bin/, создаёт файл конфигурации /opt/warpfleet/runtime/agent.env, регистрирует и запускает службу systemd. Время установки — 15–25 секунд на сервер.
5.2. Вариант 2 — установка управляющего контура в инфраструктуре заказчика
На выделенный сервер:
curl -fsSL https://warpfleet.ru/install.sh -o install.sh && sudo bash install.sh
Установщик запрашивает доменное имя консоли (сертификат TLS выпускается автоматически) и создаёт административный токен. Параметры могут быть заданы заранее переменными окружения:
| Переменная | Назначение | Значение по умолчанию |
|---|---|---|
DOMAIN | Публичное доменное имя консоли, автоматический выпуск TLS | — |
ADMIN_TOKEN | Административный токен API | генерируется |
PORT | HTTP-порт | 18080 |
DATA_DIR | Каталог установки | /opt/warpfleet |
UNATTENDED=1 | Установка без интерактивных вопросов | 0 |
Агенты на наблюдаемых серверах в этом случае устанавливаются командой, которую выдаёт ваш собственный управляющий контур:
curl -fsSL https://<адрес вашего контура>/api/install/<установочный токен> | sudo bash
Установочный скрипт при этом скачивается с вашего контура, обращение к инфраструктуре правообладателя не требуется.
5.3. Установка в изолированном (air-gap) контуре
Лицензионный ключ представляет собой подписанный файл, проверяемый локально; обращение к внешним сервисам для проверки лицензии не выполняется. Ключ не привязан к аппаратному обеспечению и переносится в изолированный контур как файл. Проверка подписи лицензии, исполняемых файлов и сценариев выполняется автономно (алгоритм Ed25519, открытый ключ включён в состав ПО). Обновления переносятся вручную в виде исполняемого файла и подписанного манифеста; файл, контрольная сумма которого не совпадает с манифестом, отклоняется.
6. Эксплуатация
6.1. Проверка работоспособности
systemctl status warpfleet-agent # ожидается состояние active (running)
journalctl -u warpfleet-agent -n 20
Сервер отображается в консоли в течение примерно 25 секунд после запуска службы.
6.2. Штатное использование
- Просмотр состояния парка, метрик и их истории в веб-консоли.
- Разбор выявленных проблем; для каждой доступен перечень команд, которые предполагается исполнить, до фактического исполнения.
- Подтверждение действий высокого уровня риска — в веб-консоли или в мобильном приложении.
- Настройка политики автоматического устранения, порогов и оповещений.
- Выгрузка журнала аудита.
6.3. Удаление
Удаление агента выполняется из консоли: консоль передаёт команду агенту, агент останавливает и удаляет свою службу, исполняемый файл, сценарии и файл конфигурации с токеном (/opt/warpfleet), локальную базу данных и файлы времени выполнения (/var/lib/warpfleet), а также настройки журнала journald, которые устанавливали версии до 23.10.2026. Если агент недоступен, консоль показывает команду для запуска на сервере вручную. Удаление не восстанавливает записи журнала, удалённые его ротацией, и не отменяет уже выполненные действия по устранению проблем.
7. Сведения о принадлежности и ограничениях
- Исключительное право на ПО принадлежит правообладателю в полном объёме на территории всех стран мира.
- ПО не осуществляет принудительного обновления и не управляется из-за пределов Российской Федерации. Обновления инициируются владельцем инфраструктуры.
- ПО не содержит компонентов, требующих обращения к иностранным сервисам для своей работы. Все используемые сторонние компоненты распространяются под свободными лицензиями и поставляются в составе продукта.
- ПО не является средством защиты информации и не проходило сертификацию ФСТЭК России. Функции контроля исполнения команд и подписи поставки реализованы как внутренние меры безопасности продукта.
- Сведения, составляющие государственную тайну, в ПО не содержатся.
8. Стоимость и порядок приобретения
Сведения о стоимости, составе тарифных планов и порядке приобретения размещены на сайте продукта: https://warpfleet.ru (раздел «Тарифы») и в документе публичной оферты: https://warpfleet.ru/offer.html