Información general

El Datadog Docker Agent es la versión en contenedores del Agent host. El Docker Agent admite los tiempos de ejecución de Docker, containerd y Podman. La imagen de Docker oficial está disponible en Docker Hub, Google Container Registry (GCR) y ECR-Public.

Docker Hub está sujeto a límites en la tasa de extracción de imágenes. Si no eres cliente de Docker Hub, Datadog recomienda que actualices tu configuración de Datadog Agent y Cluster Agent para extraer desde GCR o ECR. Para obtener instrucciones, consulta Cambiar tu registro de contenedor.

Las imágenes están disponibles para las arquitecturas de 64-bit x86 y Arm v8.

ECR-PublicGoogle Container RegistryDocker Hub
Agent v6+
docker pull public.ecr.aws/datadog/agent
Agent v6+
docker pull gcr.io/datadoghq/agent
Agent v6+
docker pull datadog/agent
Agent v5
docker pull public.ecr.aws/datadog/docker-dd-agent
Agent v5
docker pull gcr.io/datadoghq/docker-dd-agent
Agent v5
docker pull datadog/docker-dd-agent

Los comandos de CLI en esta página son para el tiempo de ejecución de Docker. Sustituye docker por nerdctl para el tiempo de ejecución del containerd, o podman para el tiempo de ejecución del Podman.

Ajustes

Si no has instalado Docker Agent, sigue las instrucciones de instalación dentro de la aplicación o consulta lo que se indica a continuación. Para versiones compatibles, consulta la documentación de Agent. Utiliza el comando de instalación de un solo paso. Sustituye <YOUR_DATADOG_API_KEY> por tu clave API de Datadog, y <DATADOG_SITE> por .

a

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_SITE=<DATADOG_SITE> -e DD_API_KEY=<DATADOG_API_KEY> gcr.io/datadoghq/agent:7

Para 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_SITE=<DATADOG_SITE> -e DD_API_KEY=<DATADOG_API_KEY> public.ecr.aws/datadog/agent:7

Nota: Si estás usando un registro que no sea ni GCR ni ECR-public, asegúrate de actualizar la imagen.

Nota: Para algunas de las funciones proporcionadas por system-probe, incluida la monitorización de redes, el agent de seguridad y el check de oom_kill, también necesitas montar el archivo /etc/os-release con -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.

Para Amazon Linux < 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_SITE=<DATADOG_SITE> -e DD_API_KEY=<DATADOG_API_KEY> gcr.io/datadoghq/agent:7

Para 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_SITE=<DATADOG_SITE> -e DD_API_KEY=<DATADOG_API_KEY> public.ecr.aws/datadog/agent:7

Para Amazon Linux 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_SITE=<DATADOG_SITE> -e DD_API_KEY=<DATADOG_API_KEY> gcr.io/datadoghq/agent:7

Para 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_SITE=<DATADOG_SITE> -e DD_API_KEY=<DATADOG_API_KEY> public.ecr.aws/datadog/agent:7

El Datadog Agent es compatible con Windows Server 2019 (LTSC) y Windows Server 2022 (LTSC).

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

Para ECR-Public:

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

(Opcional) Para ejecutar una instalación no privilegiada, añade --group-add=<DOCKER_GROUP_ID> al comando de instalación, por ejemplo:

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_SITE=<DATADOG_SITE> -e DD_API_KEY=<DATADOG_API_KEY> gcr.io/datadoghq/agent:7 --group-add=<DOCKER_GROUP_ID>

Para 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_SITE=<DATADOG_SITE> -e DD_API_KEY=<DATADOG_API_KEY> public.ecr.aws/datadog/agent:7 --group-add=<DOCKER_GROUP_ID>

Nota: Para Docker Compose, consulta Compose y el Datadog Agent.

Integraciones

Una vez que el Agent está funcionando, usa la Función Autodiscovery de Datadog para recopilar las métricas y los logs automáticamente de los contenedores de tu aplicación.

Variables de entorno

El archivo principal de configuración del Agent es datadog.yaml. Para el Docker Agent, las opciones de configuración datadog.yaml se habilitan con variables de entorno.

Opciones globales

Variable de EnvDescripción
DD_API_KEYTu clave de Datadog API key (obligatorio).
DD_ENVConfigura la etiqueta (tag) global env para todos los datos emitidos.
DD_HOSTNAMEEl nombre de host que hay que usar para las métricas (si falla la detección automática).
DD_HOSTNAME_FILEEn algunos entornos, la detección automática del nombre del host no es adecuada y no podrás configurar el valor con variables de entorno. En estos casos, se puede usar un archivo en el host para proporcionar un valor adecuado. Si DD_HOSTNAME está configurado como un valor no vacío, esta opción se ignora.
DD_TAGSEtiquetas (tags) de host separadas por espacios. Por ejemplo: key1:value1 key2:value2.
DD_SITELugar de destino para tus métricas, trazas y logs. Configura tu sitio Datadog como: . Esto cambia por defecto a datadoghq.com.
DD_DD_URLConfiguración opcional para sobreescribir la URL para enviar métricas.
DD_URL (6.36+/7.36+)Alias para DD_DD_URL. Se ignora si DD_DD_URL ya está configurada.
DD_CHECK_RUNNERSEl Agent ejecuta todos los checks simultáneamente por defecto (valor por defecto = 4 ejecutores). Para ejecutar los checks en secuencia, cambia el valor a 1. Si hace falta un alto número de checks (o checks lentos), se puede dejar atrás el componente collector-queue para que no pase el check de salud. Se puede incrementar el número de ejecutores para ejecutar checks en paralelo.
DD_APM_ENABLEDActiva la recogida de traza (trace). Por defecto es true. Para obtener más información sobre variables adicionales de entorno de la recogida de trazas, consulta Aplicaciones de traza de Docker.
DD_LOGS_CONFIG_EXPECTED_TAGS_DURATIONEn algunos entornos, los logs iniciales de los hosts quizás no incluyan las etiquetas (tags) correctas. Si te faltan etiquetas (tags) en los nuevos hosts de tus logs, incluye esta variable de entorno y configúralo como "10m".

Configuraciones de proxy

A partir del Agent v6.4.0 (y v6.5.0 para el Trace Agent), se pueden sobreescribir los valores de configuración de proxy del Agent con las siguientes variables de entorno:

Variable de EnvDescripción
DD_PROXY_HTTPUna URL de HTTP para usar como proxy para solicitudes de http.
DD_PROXY_HTTPSUna URL de HTTP para usar como proxy para solicitudes de https.
DD_PROXY_NO_PROXYUna lista separada por espacios de URLs para las que no se debe utilizar ningún proxy.

Para más información sobre la configuración de una proxy, consulta la Documentación del Agent v6 Proxy.

Agents de recopilación opcionales

Los Agents de recopilación opcionales se desactivan por defecto por razones de seguridad o rendimiento. Usa estas variables de entorno para activarlos:

Variable de EnvDescripción
DD_APM_NON_LOCAL_TRAFFICPermite tráfico no local cuando se está rastreando desde otros contendedores.
DD_LOGS_ENABLEDActiva recopilación de logs con el Logs Agent.
DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLEDHabilita la recopilación de procesos activos con el Process Agent. La vista activa del contenedor ya está habilitada por defecto si el socket de Docker está disponible.

DogStatsD (métricas personalizadas)

Envía las métricas con el protocolo de StatsD:

Variable de EnvDescripción
DD_DOGSTATSD_NON_LOCAL_TRAFFICEscucha los paquetes de DogStatsD de otros contenedores (obligatorio para enviar métricas personalizadas).
DD_HISTOGRAM_PERCENTILESLos percentiles de histogramas para calcular (separados por espacios). Por defecto es 0.95.
DD_HISTOGRAM_AGGREGATESLas agregaciones de histograma que hay que calcular (separadas por espacios). El valor por defecto es “max median avg count”.
DD_DOGSTATSD_SOCKETLa ruta al socket Unix que hay que escuchar. Debe estar en un volumen montado rw.
DD_DOGSTATSD_ORIGIN_DETECTIONActiva detección de contenedores y etiquetado para métricas de socket Unix.
DD_DOGSTATSD_TAGSEtiquetas adicionales para anexar a todas las métricas, los eventos y los checks de servicios recibidos por este servidor de DogStatsD, por ejemplo: "env:golden group:retrievers".
DD_USE_DOGSTATSDActivar o desactivar el envío de métricas personalizadas desde la biblioteca de DogStatsD.
Aprende más sobre DogStatsD en Sockets de Dominio de Unix.

Etiquetado

Como buena práctica, Datadog recomienda usar el etiquetado de servicios unificado cuando se asignan etiquetas (tags).

Datadog recopila etiquetas comunes automáticamente de Docker, Kubernetes, ECS, Swarm, Mesos, Nomad y Rancher. Usa las opciones a continuación para extraer más etiquetas (tags):

Variable de EnvDescripción
DD_CONTAINER_LABELS_AS_TAGSExtrae etiquetas (labels) del contenedor. Esta variable de entorno es equivalente a la antigua DD_DOCKER_LABELS_AS_TAGS.
DD_CONTAINER_ENV_AS_TAGSExtrae variables de entorno del contenedor. Esta variable de entorno es equivalente a la antigua DD_DOCKER_ENV_AS_TAGS.
DD_COLLECT_EC2_TAGSExtrae etiquetas (tags) EC2 sin usar la integración de AWS.

Consulta la documentación de Extracción de Docker Tag para aprender más.

Usar archivos secretos

Las credenciales se pueden almacenar en secretos de Docker o Kubernetes y usar en las plantillas de Autodiscovery. Para más información, consulta la Documentación de Gestión de Secretos.

Ignora los contenedores

Excluye los contenedores de la recopilación de logs, recopilación de métricas y Autodiscovery. Datadog excluye contenedores Kubernetes y OpenShift pause por defecto. Estas listas de autorización y bloqueo solo son aplicables a Autodiscovery; las trazas y DogStatsD no se ven afectados. El valor de estas variables de entorno es compatible con expresiones regulares.

Variable de EnvDescripción
DD_CONTAINER_INCLUDELista de autorización de contenedores para ser incluidos (separados por espacios). Usa .* para incluir todos. Por ejemplo: "image:image_name_1 image:image_name_2", image:.* Cuando se usa ImageStreams dentro de entornos OpenShift, usa el nombre del contenedor en lugar de la imagen. Por ejemplo: “name:container_name_1 name:container_name_2”, name:.*
DD_CONTAINER_EXCLUDELista de bloqueos de contenedores para excluir (separados por espacios). Usa .* para excluir todos. Por ejemplo: "image:image_name_3 image:image_name_4" (Nota: Esta variable solo se respeta para Autodiscovery.), image:.*
DD_CONTAINER_INCLUDE_METRICSLista de autorizaciones cuyas métricas quieres incluir.
DD_CONTAINER_EXCLUDE_METRICSLista de bloqueos de contenedores cuyas métricas quieres excluir.
DD_CONTAINER_INCLUDE_LOGSLista de autorizaciones de contenedores cuyos logs quieres incluir.
DD_CONTAINER_EXCLUDE_LOGSLista de bloqueos de contenedores cuyos logs quieres excluir.
DD_AC_INCLUDEObsoleto. Lista de autorizaciones de contenedores a incluir (separados por espacios). Usa .* para incluir todos. Por ejemplo: "image:image_name_1 image:image_name_2", image:.*
DD_AC_EXCLUDEObsoleto. Lista de bloqueos de contenedores a excluir (separados por espacios). Usa .* para excluir todos. Por ejemplo: "image:image_name_3 image:image_name_4" (Nota: Esta variable solo se respeta para Autodiscovery), image:.*

Hay ejemplos adicionales disponibles en la página de Gestión de Container Discover.

Nota: Las métricas kubernetes.containers.running, kubernetes.pods.running, docker.containers.running, .stopped, .running.total y .stopped.total no se ven afectadas por estos valores de configuración. Todos los contenedores se cuentan. Esto no afecta tu facturación por contenedor.

Nota: Cuando se está usando containerd, se pueden ignorar contenedores según el espacio de nombre mediante el uso de DD_CONTAINERD_NAMESPACES y DD_CONTAINERD_EXCLUDE_NAMESPACES. Ambos son una lista de espacios de nombres separados por espacios. Cuando la configuración es DD_CONTAINERD_NAMESPACES, el agent presenta datos de los contenedores que pertenecen a un espacio de nombre dentro de la lista. Cuando la configuración es DD_CONTAINERD_EXCLUDE_NAMESPACES, el agent presenta datos de todos los contenedores menos aquellos que pertenecen a un espacio de nombre de la lista.

Autodiscovery

Variable de EnvDescripción
DD_LISTENERSOyentes de Autodiscovery para ejecutar.
DD_EXTRA_LISTENERSOyentes de Autodiscovery adicionales para ejecutar. Se añaden además de las variables definidas en la sección listeners del archivo de configuración datadog.yaml.
DD_CONFIG_PROVIDERSLos proveedores a los que Agent debe llamar para recopilar configuraciones de checks. El proveedor por defecto es docker. El proveedor de Docker gestiona las plantillas incrustadas en las etiquetas de contenedor.
DD_EXTRA_CONFIG_PROVIDERSProveedores de configuración de Autodiscovery adicionales a utilizar. Se añaden además de las variables definidas en la sección config_providers del archivo de configuración datadog.yaml.

Varios

Variable de EnvDescripción
DD_PROCESS_AGENT_CONTAINER_SOURCESobreescribe la detección automática del origen del contenedor para forzar un único origen. Por ejemplo: "docker", "ecs_fargate", "kubelet". Esto ya no es necesario a partir de Agent v7.35.0.
DD_HEALTH_PORTConfigura esto como 5555 para exponer el check de estado del Agent en el puerto 5555.

Comandos

Consulta las Guías de comandos del Agent para descubrir todos los comandos del Docker Agent.

Datos recopilados

Métricas

Por defecto, el Docker Agent recopila las métricas con los siguientes checks básicos. Para recopilar métricas de otras tecnologías, consulta la sección Integraciones.

CheckMétricas
ContenedorMétricas
CPUSistema
DiscoDisco
DockerDocker
Identificador de archivosSistema
E/SSistema
CargaSistema
MemoriaSistema
RedRed
NTPNTP
Tiempo de actividadSistema

Eventos

El Docker Agent envía eventos a Datadog cuando se inicia o reinicia un Agent.

Checks de servicio

datadog.agent.up:
devuelve CRITICAL si el Agent no se puede conectar a Datadog; de lo contrario, devuelve OK.

datadog.agent.check_status:
devuelve CRITICAL si un check de Agent no puede enviar las métricas a Datadog; de lo contrario, devuelve OK.

Desinstalar la Instrumentación de un paso de APM

Si has instalado Datadog Docker Agent con la Instrumentación de un paso de APM y deseas desinstalar el Agent, deberás ejecutar comandos adicionales para desinstalar la Instrumentación de APM.

Para leer más