도커, 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-Public | GCR | Docker 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 런타임인 경우 docker
를 nerdctl
로 대체하며, 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_KEY | Datadog 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_HTTP | http 요청에 대해 프록시로 사용할 수 있는 HTTP URL |
DD_PROXY_HTTPS | https 요청에 대해 프록시로 사용할 수 있는 HTTPS URL |
DD_PROXY_NO_PROXY | 프록시를 사용하지 않아야 하며, 공백으로 구분된 URL 목록. |
프록시 설정에 대한 자세한 정보는, 에이전트 v6 프록시 설명서를 참조하세요.
부수적인 수집 에이전트
부수적인 수집 에이전트는 보안 또는 성능상의 이유로 기본적으로 비활성화되어 있습니다. 이러한 환경 변수를 사용해 활성화하세요.
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_DETECTION | Unix 소켓 메트릭을 위한 컨테이너 감지 및 태깅을 활성화합니다. |
DD_DOGSTATSD_TAGS | 이 DogStatsD 서버가 수신한 모든 메트릭, 이벤트 및 서비스 점검에 추가하기 위한 추가 태그입니다. 예: "env:golden group:retrievers" |
DD_USE_DOGSTATSD | DogStatsD 라이브러리에서 커스텀 메트릭 전송을 활성화하거나 비활성화합니다. |
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_TAGS | AWS 통합을 사용하지 않고 커스텀 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_NAMESPACES
및 DD_CONTAINERD_EXCLUDE_NAMESPACES
를 이용하여 네임스페이스에 따라 컨테이너를 무시할 수 있습니다. 둘 다 스페이스로 구분된 네임스페이스 목록입니다. DD_CONTAINERD_NAMESPACES
가 설정되면, 에이전트는 목록에 있는 네임스페이스에 속한 컨테이너에 대해 데이터를 보고합니다. DD_CONTAINERD_EXCLUDE_NAMESPACES
가 설정되면 에이전트는 목록에 있는 네임스페이스에 속한 컨테이너를 제외한 모든 컨테이너에 대해 데이터를 보고합니다.
기타
환경 변수 | 설명 |
---|
DD_PROCESS_AGENT_CONTAINER_SOURCE | 단일 소스 강제 적용을 위한 컨테이너 소스 자동탐지를 덮어씁니다. 예: "docker" , "ecs_fargate" , "kubelet" . 에이전트 v7.35.0 이후 더 이상 필요하지 않습니다. |
DD_HEALTH_PORT | 5555 (으)로 설정하여 포트 5555 에서 에이전트 상태 점검을 표시합니다. |
DD_EXTRA_LISTENERS
및 DD_EXTRA_CONFIG_PROVIDERS
환경 변수를 사용해 추가 수신기와 구성 공급자를 추가할 수 있습니다. datadog.yaml
구성 파일의 listeners
및 config_providers
섹션에서 정의된 변수와 함께 추가됩니다.
명령어
모든 도커(Docker) 에이전트 명령을 알아보려면 에이전트 명령 가이드를 참조하세요.
수집 데이터
메트릭
기본적으로, 도커(Docker) 에이전트는 다음 핵심 검사를 통해 메트릭을 수집합니다. 다른 기술을 이용해 메트릭을 수집하려면 통합 섹션을 참조하세요.
이벤트
도커(Docker) 에이전트는 에이전트가 시작되거나 재시작될 때 Datadog에 이벤트를 보냅니다.
서비스 검사
datadog.agent.up:
에이전트가 Datadog에 연결할 수 없는 경우 CRITICAL
을 반환하고, 그렇지 않은 경우 OK
를 반환합니다.
datadog.agent.check_status:
에이전트 검사가 Datadog에 메트릭을 보낼 수 없는 경우 CRITICAL
을 반환하고, 그렇지 않은 경우에는 OK
를 반환합니다.
참고 자료
Additional helpful documentation, links, and articles: