Журналы приложений, собранные в журнале данных, реплицируются

#docker #amazon-ecs #datadog

Вопрос:

У меня есть контейнерное приложение Java/Spring-Boot, работающее на Amazon ECS с EC2 в качестве базовой службы для контейнерного кластера. Контейнер агента datadog (v7.18.1-jmx) также запущен в кластере для передачи журналов/показателей обратно на серверы datadog. Журналы передаются в веб-приложение datadog, как и ожидалось, но я вижу одну и ту же строку журнала 3 раза в пользовательском интерфейсе. Были заданы следующие переменные среды —

 DD_API_KEY=lt;API-KEYgt; DD_APM_ENABLED=true DD_APM_ENV=dev DD_APM_NON_LOCAL_TRAFFIC=true DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true DD_DOGSTATSD_ORIGIN_DETECTION=true DD_DOGSTATSD_TAGS=["env:dev"] DD_LOG_LEVEL=error DD_LOGS_CONFIG_COMPRESSION_LEVEL=1 DD_LOGS_CONFIG_USE_COMPRESSION=true DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true DD_LOGS_CONFIG_USE_HTTP=true DD_LOGS_ENABLED=true DD_TAGS=environment:dev DD_URL=lt;Datadog-urlgt;  

Следующие точки монтирования присутствуют в определении контейнера datadog-агента в ECS —

 Container Path Source Volume Read only  /var/run/docker.sock docker_sock true /host/proc/ proc true /host/sys/fs/cgroup cgroup true /opt/datadog-agent/run pointdir  /etc/passwd passwd true   

Я попытался повторить это, настроив приложение и datadog-агент на своем рабочем столе Docker, и, похоже, с этой настройкой проблем нет. Происходит ли это из-за того, что одно и то же содержимое журнала фиксируется в нескольких точках монтирования? Любая помощь была бы великолепна!

Ответ №1:

Проблема не была связана с Датадогом или Докером. Это была проблема с тем, как log4j был настроен в приложении. Было несколько приложений, инициализируемых программно, что привело к этой проблеме.