Интеграция с 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.up | 1, если контейнер в состоянии 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.
Монтируйте сокет строго с флагом :ro. Агент не пишет в Docker API, но доступ на запись к сокету равен root-доступу к хосту.
Связанные страницы: Kubernetes · сбор логов · привязка метрик.