Интеграция с Docker
Перевод в процессе / Translation in progress. See русская версия.
Интеграция собирает данные Docker Engine: события контейнеров (create, start, die, restart), потоки логов stdout/stderr и метрики Docker API (число контейнеров, перезапуски, uptime, статусы health-check). Агент общается с демоном через локальный Unix-сокет в режиме read-only и не требует привилегий сверх доступа к сокету.
Предварительные требования
- Агент Flaree установлен и зарегистрирован (см. Установка через Docker Compose).
- Docker Engine версии ≥ 20.10 запущен на том же хосте, где работает агент.
- Сокет
/var/run/docker.sockдоступен агенту в режиме read-only (для Docker Compose добавьте- /var/run/docker.sock:/var/run/docker.sock:roвvolumes). - Пользователь агента входит в группу
dockerили имеет права на чтение сокета. - Токен агента и endpoint ingestion-шлюза заданы через переменные окружения
${FLAREE_TOKEN}и${FLAREE_ENDPOINT}.
Минимальная конфигурация
Минимально — подключить Docker-интеграцию к агенту через agent.yaml:
# agent.yaml
integrations:
docker:
enabled: true
socket: /var/run/docker.sock
Если агент запускается рядом с приложением через Docker Compose, смонтируйте сокет read-only:
# docker-compose.yml
services:
flaree-agent:
image: flaree/agent:latest
restart: unless-stopped
environment:
FLAREE_TOKEN: ${FLAREE_TOKEN}
FLAREE_ENDPOINT: ${FLAREE_ENDPOINT}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./agent.yaml:/etc/flaree/agent.yaml:ro
Полная конфигурация
Расширенный пример с фильтрами, событиями и стримингом логов:
# agent.yaml
integrations:
docker:
enabled: true
socket: /var/run/docker.sock
api_version: "1.43"
# Какие контейнеры наблюдать
include_labels:
- flaree.monitor=true
exclude_containers:
- ^k8s_POD_
- ^buildx_buildkit_
# События Docker Engine
events:
enabled: true
types:
- create
- start
- die
- kill
- restart
- oom
# Стриминг stdout/stderr
log_stream:
enabled: true
since: 1m
follow: true
fields_redact:
- password
- token
sampling:
info: 0.1
warn: 1.0
error: 1.0
# Метрики
metrics:
enabled: true
interval: 15s
include:
- container_count
- container_restarts
- container_cpu_percent
- container_memory_bytes
# Секреты — только через env-переменные
tls:
ca_file: ${DOCKER_TLS_CA}
cert_file: ${DOCKER_TLS_CERT}
key_file: ${DOCKER_TLS_KEY}
Проверка работы
- Убедитесь, что сокет виден агенту:
docker psиз контейнера агента должна возвращать список контейнеров. - Проверьте, что события Docker поступают в агент, запустив тестовый контейнер и наблюдая лог агента.
- Откройте дашборд Flaree и убедитесь, что в списке источников появился Docker-хост с ненулевым числом контейнеров.
# Список контейнеров из-под агента
docker ps --format '{{.Names}} {{.Status}}'
# Проверка доступности сокета и стрима событий
curl --unix-socket /var/run/docker.sock \
--silent --max-time 3 \
http://localhost/events?filters=%7B%22type%22%3A%5B%22container%22%5D%7D | head -n 5
Troubleshooting
- Если контейнеры не появляются в дашборде, см. Агент не видит контейнеры, см. Нет данных.
- Если агент не выходит на связь после старта контейнера, см. Agent offline.
Агент никогда не пишет в Docker-сокет. Монтируйте его исключительно с флагом :ro, иначе утечка токена агента даст возможность управлять контейнерами хоста.