Skip to content

About

Independent Docker Engine module for Pulse Monitor: container CPU, memory, network counters and logs over local sockets or named pipes. RU / EN docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pulse Module Docker

Сайт Pulse · Практические руководства

Русский · English

Мониторинг Docker и управление выбранным контейнером: изолированный WASI-гость и нативные пакеты совместимости.

CI Release MIT

Установка · Параметры · Показатели · Безопасность · Поддержка

Модуль собирает версию движка, список контейнеров, CPU, память, сетевые счётчики и последние журналы выбранного контейнера. Панель строит карточки, таблицу, графики и журналы по манифесту. Модуль выпускается отдельно как загружаемый JSON-пакет; он не является отдельной службой или Docker-образом.

Pulse Monitor → назначение модуля серверу → Pulse Agent → сборщик → Docker Engine
Pulse Monitor ← карточки, таблица, графики и журналы ← JSON-результат

Изолированный пакет WASI (v3)

manifest-wasi.json предназначен для Monitor 0.7.0+ и Agent 0.6.0+. Сборка: ./scripts/build.ps1. Основной artifacts/releases/docker-module.json содержит один артефакт wasip1-wasm для Linux и Windows. Go на сервере не нужен. Загрузите JSON в Monitor или установите отдельно одобренную версию из Marketplace, затем настройте каждый узел.

Для списка контейнеров и ресурсов выдайте docker.read. Для логов выбранного контейнера дополнительно нужен docker.logs; для запуска, перезапуска и остановки — одновременно docker.control и actions.execute. Дополнительные разрешения необязательны: мониторинг работает без управления. Логи и действия открываются по нужной строке контейнера. Смена runtime отключает прежние настройки до повторного подтверждения разрешений.

У гостя нет смонтированных файлов хоста, унаследованных секретов, прямого доступа к сети, запуску процессов или Docker socket. Посредник агента использует фиксированный локальный адрес Docker и проверяет состояние выбранного контейнера, healthcheck и новое время запуска после перезапуска. Неопределённый результат остаётся unknown; команда автоматически не повторяется. Ограничения WASI: 128 MiB линейной памяти гостя, 30 секунд на запуск, 512 KiB вывода. Лимит линейной памяти не ограничивает весь RSS процесса хоста.

Корневой Go-сборщик и manifest-v2.json сохранены для нативной совместимости. Сборка нативного v2: ./scripts/build.ps1 -Version 2.0.0-alpha3; v1: -Version 1.0.6 -LegacyOnly. Для изменённых байтов всегда выпускайте новую версию, не перезаписывайте опубликованные релизы. Нативный код требует полного доверия к автору. Инструкции установки и параметров ниже относятся к прежнему пакету v1.

Установка legacy-пакета

  1. Установите Pulse Monitor и Pulse Agent, подключите реальный сервер. Первый публичный набор использует панель и агент v0.4.0.

  2. Скачайте docker-module.json v1.0.3 и checksums.txt. Сверьте SHA-256 файла с записью в checksums.txt:

    sha256sum docker-module.json

    В PowerShell:

    Get-FileHash ./docker-module.json -Algorithm SHA256
  3. В разделе Модули панели загрузите JSON. В настройках нужного сервера назначьте модуль Docker, заполните поля и включите его.

  4. Агент загрузит сборщик для своей платформы и выполнит его. Откройте раздел модуля в панели. Для другого сервера создайте отдельное назначение.

Пакет содержит сборки Linux amd64/arm64 и Windows amd64. Go и Node.js на сервере для модуля не нужны. Нужны работающий Docker Engine и доступ службы агента к нему. SHA-256 проверяет целостность файла; проверяйте также происхождение пакета.

Параметры

Поле По умолчанию Назначение
socket Пустая строка Unix socket или Windows named pipe; пустое поле выбирает путь платформы
logContainer Пустая строка Необязательный ID контейнера для журналов, минимум 12 символов

Linux: /var/run/docker.sock. Windows: \\.\pipe\docker_engine. Для rootless Docker укажите socket своего пользователя и предоставьте службе агента доступ. На Windows проверьте доступ учётной записи службы к named pipe выбранного Docker Engine: наличие Docker Desktop само по себе его не гарантирует.

Показатели и ограничения

Показатель Как читать
Контейнеры В списке не более 100; флаг truncated показывает, что список ограничен, число контейнеров относится к этому списку
CPU Два пакетных прохода текущей статистики с интервалом в одну секунду; 100% — одно полностью занятое ядро
Память Используемая память контейнера без файлового кэша Linux; Memory total — сумма работающих контейнеров, а не RAM сервера
Сеть Накопительные входящие и исходящие счётчики, а не скорость
Журналы Последние 50 строк выбранного контейнера; модуль не сохраняет полный архив
Графики Последние измерения в текущем просмотре панели

Статистика собирается максимум для 100 контейнеров. Если метрики работающего контейнера недоступны, соответствующая сумма остаётся неизвестной (—), а не показывает неполный результат. Неизвестное значение не означает ноль.

Права и безопасность

Сборщик делает запросы чтения Docker API, но доступ к socket или pipe обычно даёт возможности уровня root на хосте. Это привилегированный доступ к Docker daemon. Не открывайте Docker API в сеть ради модуля.

Нативный процесс выполняется с правами агента без песочницы. Поле permissions описывает доступ и не ограничивает ОС. Устанавливайте только доверенные пакеты; журналы контейнеров могут содержать секреты. Подробности и приватное сообщение об уязвимости: SECURITY.ru.md.

Обновление и удаление

Пакет v1.0.3 использует id: docker, schemaVersion: 1, protocol: 1. Версия модуля независима от панели и агента. Перед обновлением сохраните пакет и настройки, загрузите новую версию с тем же ID и проверьте назначения и результаты. Не переписывайте выпущенный пакет или тег: конфликт содержимого уже существующей версии отклоняется.

Чтобы остановить сбор, выключите назначение на нужном сервере. Чтобы удалить модуль, уберите его в настройках панели; удалённая конфигурация больше не выдаётся агентам. Кэш бинарников может остаться в состоянии агента. Удаляйте его только при остановленном агенте и после проверки путей.

Сборка и протокол

Нужны Go 1.25+ и PowerShell 7.4+ для упаковки. Go должен быть в PATH; для другого пути используйте параметр -GoExe.

go test ./...
go vet ./...
./scripts/build.ps1 -Version 1.0.3

Скрипт использует toolchain Go 1.27.2. Результаты в artifacts/releases/: docker-module.json, pulse-module-docker_v1.0.3_source.zip, checksums.txt.

Процесс получает один JSON {"protocol":1,"config":{}} через stdin и возвращает один JSON-объект через stdout с кодом завершения 0. Диагностика идёт в stderr; агент не передаёт его в панель. Лимит stdout — 512 KiB, скачивание и выполнение разделяют бюджет 5 секунд. См. протокол модулей.

CI запускает go vet и тесты на Linux и Windows, а race detector — на Linux. Это не подтверждает доступ к реальному Docker Engine на каждой платформе.

Диагностика и участие

unsupported означает отсутствие сборки для платформы. При error проверьте Docker Engine, socket/pipe, права службы, ID контейнера и таймаут. Недоступные журналы могут быть ограничением logging driver. Не запускайте два агента с одним ID/токеном.

Участие · История изменений · Поддержка · Issues

Экосистема Pulse

Репозиторий Назначение
Pulse Monitor Панель, серверы, пакеты и представления модулей
Pulse Agent Сбор метрик и выполнение назначенных модулей на сервере
Pulse Module Docker Этот сборщик Docker Engine

Лицензия

MIT. Вклад участников распространяется под той же лицензией.

Marketplace

Репозиторий содержит маркер pulse-marketplace.json и topic pulse-module. Маркер должен находиться и в исходниках тега релиза; установочным пакетом остаётся docker-module.json из assets. Marketplace проверяет конкретную версию и SHA-256, затем ставит её в очередь независимой модерации. Наличие релиза на GitHub не означает одобрения в каталоге. Ручная установка JSON остаётся доступной.

Интерактивный v2 (ещё не выпущен)

Сборка ветки разработки создаёт docker-module.json (2.0.0-alpha1, schema2) и docker-module-v1.json (1.0.4, совместимый schema1). Опубликованный 1.0.3 не изменён. Для интерактивного v2 нужны новые совместимые сборки Monitor и Agent с module-runtime; опубликованный 0.4.0 его не поддерживает. Номер минимального стабильного релиза пока не заявлен.

V2 показывает и копирует ID контейнеров, использует стандартные графики Pulse и открывает последние 200 строк по клику на контейнер без изменения общих настроек. Для запуска/перезапуска/остановки нужны явное actions.execute на узле, подтверждение и полный 64-символьный ID. Ожидание остановки/перезапуска — 5 секунд внутри 20-секундного бюджета запроса. При потере ответа исход может быть неизвестен: перед повтором проверьте фактическое состояние. Автоматического повтора команд нет. Сбор данных работает без разрешения управления. В логах могут быть секреты.

Сборка v2: ./scripts/build.ps1 -GoExe D:/Go/bin/go.exe -GoToolchain local -Version 2.0.0-alpha1. Для отдельного совместимого выпуска: -Version 1.0.4 -LegacyOnly; основной пакет сохранит schema1. После загрузки v2 компонент выключен и разрешения не выданы. При переходе удалите активный v1 с тем же ID; настройки автоматически не мигрируют.

About

Independent Docker Engine module for Pulse Monitor: container CPU, memory, network counters and logs over local sockets or named pipes. RU / EN docs.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages