Перейти к содержимому
Перейти к основному содержимому

Интеграция с Docker

Агент собирает метрики контейнеров (CPU, память, статус) через Docker Engine API и стримит логи выбранных контейнеров. Всё общение с демоном идёт через локальный Unix-сокет только на чтение: агент выполняет GET /containers/json, GET /containers/{id}/stats и GET /containers/{id}/logs — и ничего не пишет.

Предварительные требования

  • Агент Flaree установлен на том же хосте, что и Docker Engine (см. установку через Docker Compose).
  • Сокет /var/run/docker.sock смонтирован в контейнер агента в режиме read-only.
  • Если агент работает как systemd-сервис — его пользователь состоит в группе docker.

Минимальная конфигурация

Смонтируйте сокет при запуске агента:

# docker-compose.yml
services:
flaree-agent:
image: registry.flaree.ru/agent:1
restart: unless-stopped
environment:
FLAREE_AGENT_TOKEN: ${FLAREE_AGENT_TOKEN}
volumes:
- flaree-agent-state:/var/lib/flaree-agent
- /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
flaree-agent-state:

Метрики контейнеров начнут собираться автоматически. Для логов добавьте источник в дашборде: Агенты → ваш агент → Источники логов → Новый источник, тип Docker, укажите имя контейнера.

Полная конфигурация

Что собирает источник метрик Docker:

МетрикаОписание
docker.container.cpu.usageДоля CPU контейнера с учётом числа ядер.
docker.container.memory.usage_bytesИспользованная память.
docker.container.memory.limit_bytesЛимит памяти контейнера.
docker.container.up1, если контейнер в состоянии running, иначе 0.

Все метрики имеют лейбл container с именем контейнера. Источник поддерживает фильтр по подстроке имени (name_match) и нестандартный путь к сокету (socket) — они настраиваются в дашборде вместе с источником.

Источник логов Docker подключается к потокам stdout/stderr контейнера, переподключается с backoff при рестарте контейнера и прогоняет строки через общий пайплайн логов: автодетект формата, фильтры, маскирование, сэмплирование.

Проверка работы

  • Убедитесь, что сокет виден внутри контейнера агента и отвечает.
  • Проверьте логи агента — не должно быть ошибок permission denied по docker.sock.
  • Откройте компонент в дашборде: метрики docker.container.* появляются в списке доступных для привязки в течение пары минут.
# Сокет доступен из контейнера агента
docker exec flaree-agent ls -l /var/run/docker.sock

# Логи агента без ошибок доступа
docker logs flaree-agent --tail 50

Troubleshooting

  • Метрики контейнеров не появляются — чек-лист нет данных.
  • Агент не выходит на связь после запуска контейнера — агент offline.
warning

Монтируйте сокет строго с флагом :ro. Агент не пишет в Docker API, но доступ на запись к сокету равен root-доступу к хосту.

Связанные страницы: Kubernetes · сбор логов · привязка метрик.