도커, containerd, Podman을 위한 도커 에이전트

개요

Datadog 도커(Docker) 에이전트는 호스트 에이전트의 컨테이너화된 버전입니다. 도커(Docker) 에이전트는 도커(Docker), containerd, Podman 런타임을 지원합니다. 공식 도커(Docker) 이미지는 도커(Docker) Hub, GCR 및 ECR-Public에서 사용할 수 있습니다.

도커(Docker) 허브는 2023년 7월 10일부터 데이터독의 도커(Docker) 허브 레지스트리에 대한 다운로드 속도 제한을 시행할 예정입니다. 레지스트리에서 이미지를 다운로드하면 제한 할당량에 따라 제한이 적용됩니다.

Datadog는 Datadog 에이전트와 클러스터 에이전트 구성을 업데이트하여 다운로드 속도 제한이 적용되지 않는 다른 레지스트리에서 가져오도록 권장하고 있습니다. 자세한 내용은컨테이너 레지스트리 변경"을 참조하세요.

이미지는 64비트 x86 및 Arm v8 아키텍처에서 사용할 수 있습니다.

ECR-PublicGCRDocker Hub
에이전트 v6+
docker pull public.ecr.aws/datadog/agent
에이전트 v6+
docker pull gcr.io/datadoghq/agent
에이전트 v6+
docker pull datadog/agent
에이전트 v5
docker pull public.ecr.aws/datadog/docker-dd-agent
에이전트 v5
docker pull gcr.io/datadoghq/docker-dd-agent
에이전트 v5
docker pull datadog/docker-dd-agent

CLI 명령은 Docker 런타임에 대한 명령입니다. containerd 런타임인 경우 dockernerdctl로 대체하며, Podman 런타임의 경우 podman으로 대체합니다.

설정

도커(Docker) 에이전트를 설치하지 않은 경우, 인앱 설치 지침을 따르거나 아래를 참조하세요. 지원되는 버전에 대해서는 에이전트 설명서를 확인하시고, 원스텝 설치 명령을 사용하세요. <YOUR_DATADOG_API_KEY>Datadog API 키로 교체합니다.

docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> gcr.io/datadoghq/agent:7

ECR-Public인 경우:

docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> public.ecr.aws/datadog/agent:7

참고: GCR 또는 ECR-Public 이외의 다른 레지스트리를 사용하는 경우, 이미지를 업데이트해야 합니다.

참고: 네트워크 모니터링, 보안 에이전트 및 oom_kill 검사 등 시스템-프로브에서 제공하는 일부 기능의 경우, /etc/os-release 파일을 -v /etc/os-release:/host/etc/os-release:ro. If your Linux distribution does not include an /etc/os-release file, mount the equivalent one provided, for example /etc/redhat-release or /etc/fedora-release와 마운트해야 합니다.

아마존 리눅스 < v2인 경우:

docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> gcr.io/datadoghq/agent:7

ECR-Public인 경우:

docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> public.ecr.aws/datadog/agent:7

아마존 리눅스 v2인 경우:

docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> gcr.io/datadoghq/agent:7

ECR-Public인 경우:

docker run -d --cgroupns host --pid host --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> public.ecr.aws/datadog/agent:7

Datadog 에이전트는 윈도우즈(Windows) 서버 2019(LTSC) 및 윈도우즈(Windows) 서버 2022(LTSC)에서 지원됩니다.

docker run -d --name dd-agent -e DD_API_KEY=<API_KEY> -v \\.\pipe\docker_engine:\\.\pipe\docker_engine gcr.io/datadoghq/agent

ECR-Public인 경우:

docker run -d --name dd-agent -e DD_API_KEY=<API_KEY> -v \\.\pipe\docker_engine:\\.\pipe\docker_engine public.ecr.aws/datadog/agent

(선택 사항) 권한 없는 설치를 실행하려면, --group-add=<DOCKER_GROUP_ID>를 설치 명령에 추가합니다. 예를 들면:

docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> gcr.io/datadoghq/agent:7 --group-add=<DOCKER_GROUP_ID>

ECR-Public인 경우:

docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> public.ecr.aws/datadog/agent:7 --group-add=<DOCKER_GROUP_ID>

참고: 도커(Docker) 구성은, 구성 및 Datadog 에이전트를 참조하세요.

통합

에이전트가 실행되고 나면, Datadog 자동 탐지 기능을 사용하여 애플리케이션 컨테이너에서 자동으로 메트릭 및 로그를 수집합니다.

환경 변수

에이전트의 주요 설정 파일datadog.yaml입니다. 도커(Docker) 에이전트인 경우 환경 변수와 함께 datadog.yaml 설정 옵션이 전달됩니다.

글로벌 옵션

환경 변수설명
DD_API_KEYDatadog API 키(필수).
DD_ENV내보내기한 모든 데이터에 글로벌 env 태그 설정
DD_HOSTNAME메트릭에 사용할 호스트 이름 (자동으로 감지되지 않을 경우).
DD_HOSTNAME_FILE일부 환경에서는 호스트 이름 자동 감지가 적절하지 않으며, 환경 변수로 값을 설정할 수 없습니다. 이러한 경우, 호스트의 파일을 사용하여 적절한 값을 제공할 수 있습니다. DD_HOSTNAME이 비어 있지 않은 값으로 설정된 경우, 이 옵션은 무시됩니다.
DD_TAGS스페이스로 구분된 호스트 태그. 예를 들어: key1:value1 key2:value2.
DD_SITE메트릭, 트레이스 및 로그에 대한 목적지 사이트입니다. Datadog 사이트를 으로 설정합니다. 기본값은 datadoghq.com입니다.
DD_DD_URL제출 메트릭에 대한 URL을 덮어쓰기 위한 부수적인 설정입니다.
DD_URL(6.36+/7.36+)DD_DD_URL에 대한 별칭입니다. DD_DD_URL이(가) 이미 설정된 경우 무시합니다.
DD_CHECK_RUNNERS에이전트는 기본적으로 동시에 모든 검사를 실행합니다(기본값 = 4 러너). 순차적으로 검사를 실행하려면 값을 1로 설정합니다. 많은 검사(또는 느린 검사)를 실행하는 경우 collector-queue 구성 요소가 밀려서 상태 검사에 실패할 수 있습니다. 동시에 검사를 실행하려면 러너의 수를 늘립니다.
DD_APM_ENABLED트레이스 수집을 활성화합니다. 기본값은 true입니다. 추가적인 트레이스 수집 환경 변수에 대한 자세한 내용은 도커(Docker) 애플리케이션 추적을 참조하세요.
DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION일부 환경에서는 호스트의 초기 로그가 올바른 태그를 포함하지 않을 수 있습니다. 로그에서 새 호스트에 대한 태그가 누락된 경우, 해당 환경 변수를 포함시키고 "10m"로 설정합니다.

프록시 설정

에이전트 v6.4.0(및 트레이스 에이전트 v6.5.0)으로 시작하여 에이전트 프록시 설정을 다음 환경 변수로 덮어쓸 수 있습니다.

환경 변수설명
DD_PROXY_HTTPhttp 요청에 대해 프록시로 사용할 수 있는 HTTP URL
DD_PROXY_HTTPShttps 요청에 대해 프록시로 사용할 수 있는 HTTPS URL
DD_PROXY_NO_PROXY프록시를 사용하지 않아야 하며, 공백으로 구분된 URL 목록.

프록시 설정에 대한 자세한 정보는, 에이전트 v6 프록시 설명서를 참조하세요.

부수적인 수집 에이전트

부수적인 수집 에이전트는 보안 또는 성능상의 이유로 기본적으로 비활성화되어 있습니다. 이러한 환경 변수를 사용해 활성화하세요.

환경 변수설명
DD_APM_NON_LOCAL_TRAFFIC다른 컨테이너에서 추적할 때 로컬이 아닌 트래픽을 허용합니다.
DD_LOGS_ENABLED로그 에이전트를 통해 로그 수집을 활성화합니다.
DD_PROCESS_AGENT_ENABLED프로세스 에이전트를 통해 실시간 프로세스 수집을 활성화합니다. 실시간 컨테이너 보기는 도커(Docker) 소켓을 사용할 수 있는 경우, 기본적으로 활성화되어 있습니다. false로 설정하면 실시간 프로세스 수집실시간 컨테이너 보기가 비활성화됩니다.

DogStatsD(커스텀 메트릭)

StatsD 프로토콜을 사용하여 커스텀 메트릭 전송:

환경 변수설명
DD_DOGSTATSD_NON_LOCAL_TRAFFIC다른 컨테이너에서 DogStatsD 패킷 수신(커스텀 메트릭 전송에 필요)
DD_HISTOGRAM_PERCENTILES계산을 위한 히스토그램 백분위수(공백으로 구분)입니다. 기본값은 0.95입니다.
DD_HISTOGRAM_AGGREGATES히스토그램은 계산을 위해 집계됩니다(공백으로 구분). 기본값은 “max median avg count"입니다.
DD_DOGSTATSD_SOCKET수신할 Unix 소켓 경로입니다. rw 마운트된 볼륨에 있어야 합니다.
DD_DOGSTATSD_ORIGIN_DETECTIONUnix 소켓 메트릭을 위한 컨테이너 감지 및 태깅을 활성화합니다.
DD_DOGSTATSD_TAGS이 DogStatsD 서버가 수신한 모든 메트릭, 이벤트 및 서비스 점검에 추가하기 위한 추가 태그입니다. 예: "env:golden group:retrievers"
DD_USE_DOGSTATSDDogStatsD 라이브러리에서 커스텀 메트릭 전송을 활성화하거나 비활성화합니다.
Unix 도메인 소켓을 통한 DogStatsD에 대해 자세히 알아보세요.

태그 설정

모범 사례로, Datadog은 태그를 할당할 때 통합 서비스 태깅을 사용할 것을 권장합니다.

Datadog은 도커(Docker), 쿠버네티스(Kubernetes), ECS, Swarm, Mesos, Nomad, Rancher에서 공통 태그를 자동으로 수집합니다. 더 많은 태그를 추출하려면 다음 옵션을 사용하세요:

환경 변수설명
DD_CONTAINER_LABELS_AS_TAGS컨테이너 라벨을 추출합니다. 이 환경은 기존 DD_DOCKER_LABELS_AS_TAGS 환경과 동일합니다.
DD_CONTAINER_ENV_AS_TAGS컨테이너 환경 변수를 추출합니다. 이 환경은 기존 DD_DOCKER_ENV_AS_TAGS 환경과 동일합니다.
DD_COLLECT_EC2_TAGSAWS 통합을 사용하지 않고 커스텀 EC2 태그를 추출합니다.

도커(Docker) 태그 추출 설명서를 참조하여 자세히 알아보세요.

기밀 파일 사용하기

통합 크리덴셜은 도커(Docker) 또는 쿠버네티스(Kubernetes) 기밀에 저장되어 자동 탐지 템플릿에서 사용됩니다. 자세한 정보는 기밀 관리 설명서를 참조하세요.

컨테이너 무시

로그 수집, 메트릭 수집 및 자동 탐지에서 컨테이너를 제외합니다. Datadog은 기본적으로 쿠버네티스(Kubernetes) 및 OpenShift pause 컨테이너를 제외합니다. 이러한 허용 목록 및 차단 목록은 자동 탐지에만 적용되며, 트레이스 및 DogStatsD는 영향을 받지 않습니다. 이러한 환경 변수의 값은 정규식을 지원합니다.

환경 변수설명
DD_CONTAINER_INCLUDE포함할 컨테이너의 허용 목록(스페이스로 구분)입니다. 모두 포함하려면 .* 을 사용하세요. 예: "image:image_name_1 image:image_name_2", image:.* OpenShift 환경 내에서 ImageStream을 사용하는 경우, 이미지 대신 컨테이너 이름을 사용하세요. 예: “name:container_name_1 name:container_name_2”, name:.*
DD_CONTAINER_EXCLUDE제외할 컨테이너의 차단 목록(스페이스로 구분)입니다. .* 을 사용해 모두 제외합니다. 예: "image:image_name_3 image:image_name_4" (참고: 이 변수는 자동 탐지에만 적용됨.), image:.*
DD_CONTAINER_INCLUDE_METRICS포함하려는 메트릭의 컨테이너 허용 목록입니다.
DD_CONTAINER_EXCLUDE_METRICS제외하려는 메트릭의 컨테이너 차단 목록입니다.
DD_CONTAINER_INCLUDE_LOGS포함하려는 로그의 컨테이너 허용 목록입니다.
DD_CONTAINER_EXCLUDE_LOGS제외하려는 로그의 컨테이너 차단 목록입니다.
DD_AC_INCLUDE지원 중단 포함하려는 컨테이너 허용 목록입니다(공백으로 구분). .*을(를) 사용하여 모두 포함합니다. 예: "image:image_name_1 image:image_name_2", image:.*
DD_AC_EXCLUDE지원 중단 제외하려는 컨테이너 차단 목록입니다(공백으로 구분). .*을(를) 사용해 모두 제외합니다. 예: "image:image_name_3 image:image_name_4"(참고: 이 변수는 자동탐지에만 허용됩니다.), image:.*

더 많은 예는 컨테이너 탐지 관리 페이지에서 확인할 수 있습니다.

참고: kubernetes.containers.running, kubernetes.pods.running, docker.containers.running, .stopped, .running.total.stopped.total 메트릭은 이러한 설정의 영향을 받지 않습니다. 모든 컨테이너가 집계되며, 컨테이너 당 빌링에 영향을 주지 않습니다.

참고: containerd를 사용할 때 DD_CONTAINERD_NAMESPACESDD_CONTAINERD_EXCLUDE_NAMESPACES를 이용하여 네임스페이스에 따라 컨테이너를 무시할 수 있습니다. 둘 다 스페이스로 구분된 네임스페이스 목록입니다. DD_CONTAINERD_NAMESPACES가 설정되면, 에이전트는 목록에 있는 네임스페이스에 속한 컨테이너에 대해 데이터를 보고합니다. DD_CONTAINERD_EXCLUDE_NAMESPACES가 설정되면 에이전트는 목록에 있는 네임스페이스에 속한 컨테이너를 제외한 모든 컨테이너에 대해 데이터를 보고합니다.

기타

환경 변수설명
DD_PROCESS_AGENT_CONTAINER_SOURCE단일 소스 강제 적용을 위한 컨테이너 소스 자동탐지를 덮어씁니다. 예: "docker", "ecs_fargate", "kubelet". 에이전트 v7.35.0 이후 더 이상 필요하지 않습니다.
DD_HEALTH_PORT5555(으)로 설정하여 포트 5555에서 에이전트 상태 점검을 표시합니다.

DD_EXTRA_LISTENERSDD_EXTRA_CONFIG_PROVIDERS 환경 변수를 사용해 추가 수신기와 구성 공급자를 추가할 수 있습니다. datadog.yaml 구성 파일의 listenersconfig_providers 섹션에서 정의된 변수와 함께 추가됩니다.

명령어

모든 도커(Docker) 에이전트 명령을 알아보려면 에이전트 명령 가이드를 참조하세요.

수집 데이터

메트릭

기본적으로, 도커(Docker) 에이전트는 다음 핵심 검사를 통해 메트릭을 수집합니다. 다른 기술을 이용해 메트릭을 수집하려면 통합 섹션을 참조하세요.

점검메트릭
컨테이너메트릭
CPU시스템
디스크디스크
도커(Docker)도커(Docker)
파일 관리시스템
IO시스템
로드시스템
메모리시스템
네트워크네트워크
NTPNTP
업타임시스템

이벤트

도커(Docker) 에이전트는 에이전트가 시작되거나 재시작될 때 Datadog에 이벤트를 보냅니다.

서비스 검사

datadog.agent.up:
에이전트가 Datadog에 연결할 수 없는 경우 CRITICAL을 반환하고, 그렇지 않은 경우 OK를 반환합니다.

datadog.agent.check_status:
에이전트 검사가 Datadog에 메트릭을 보낼 수 없는 경우 CRITICAL을 반환하고, 그렇지 않은 경우에는 OK를 반환합니다.

참고 자료