Agente de Docker de Datadog para Docker, containerd y Podman
Resumen
El Agente de Docker de Datadog es una versión del Agente de Datadog que soporta Docker, containerd y entornos de Podman. Para las versiones de Docker soportadas, consulta Plataformas Soportadas.
Instala el Agente de Docker de Datadog
Sigue el flujo de instalación en la aplicación en Datadog. Este es el flujo recomendado, que te ayuda a crear tu docker run comando con tu clave de API, las configuraciones mínimas requeridas y opciones para varias características de Datadog.
Ejecutar manualmente el Agente de Docker de Datadog
El flujo de Fleet Automation ayuda a configurar tu contenedor del Agente de Datadog con las instrucciones recomendadas por Datadog. Para configurar esto manualmente, consulta los ejemplos a continuación.
Utiliza el siguiente comando para ejecutar el Agente como un contenedor de Docker una vez en cada servidor que deseas monitorear. Reemplaza <DATADOG_API_KEY> con tu clave de API de Datadog y <DATADOG_SITE> con tu .
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> \
registry.datadoghq.com/agent:7
El Agente de Datadog es compatible con Windows Server 2019 (LTSC) y Windows Server 2022 (LTSC). El siguiente comando de PowerShell ejecuta el contenedor del Agente de Datadog:
docker run -d --name dd-agent `
-v \\.\pipe\docker_engine:\\.\pipe\docker_engine `
-e DD_SITE=<DATADOG_SITE> `
-e DD_API_KEY=<DATADOG_API_KEY> `
registry.datadoghq.com/agent:7
Nota: Para Docker Compose, consulta Compose y el Agente de Datadog. Para desplegar el Agente en Podman, consulta las instrucciones en Usando la integración de Docker con el tiempo de ejecución de contenedores Podman.
Integrations
Después de que el Agente de Docker de Datadog esté en funcionamiento, puedes configurar integraciones de Datadog para recopilar métricas y registros automáticamente de tus contenedores de aplicación. La Autodiscovery de Contenedores de Datadog te permite definir la configuración de seguimiento para recursos dinámicos en sistemas con contenedores.
Opciones de configuración para el Agente de Docker de Datadog
Registros de contenedores
Las imágenes están disponibles para arquitecturas de 64 bits x86 y Arm v8. Datadog publica imágenes de contenedores en el Registro de Contenedores de Datadog, Google Artifact Registry (GAR), Amazon ECR, Azure ACR y Docker Hub:
| Registry | Path |
|---|
| Datadog Container Registry | registry.datadoghq.com |
| Google Artifact Registry | gcr.io/datadoghq |
| Google Artifact Registry (Europe) | eu.gcr.io/datadoghq |
| Google Artifact Registry (Asia) | asia.gcr.io/datadoghq |
| Amazon ECR | public.ecr.aws/datadog |
| Azure ACR | datadoghq.azurecr.io |
| Docker Hub | docker.io/datadog |
Por defecto, las instrucciones anteriores obtienen la imagen del Registro de Contenedores de Datadog (registry.datadoghq.com). Si usas este registro, asegúrate de que tu firewall permita el tráfico a us-docker.pkg.dev/datadog-prod/public-images, ya que el registro puede redirigir las solicitudes a esta URL.
Docker Hub está sujeto a límites de tasa de extracción de imágenes. Si no eres cliente de Docker Hub, Datadog recomienda que actualices tu configuración para extraer de otro registro. Para instrucciones, consulta
Cambiando tu registro de contenedores.
Variables de entorno
En un entorno no contenedorizado, las opciones de configuración para el Agente de Datadog se establecen en datadog.yaml. Para el Agente de Docker de Datadog, puedes establecer datadog.yaml opciones de configuración a través de variables de entorno.
Opciones globales
DD_API_KEY- Tu clave de API de Datadog (requerida).
DD_ENV- Establece la etiqueta global
env para todos los datos emitidos. DD_HOSTNAME- Nombre de servidor a utilizar para métricas (si la autodetección falla).
DD_HOSTNAME_FILE- En algunos entornos, la autodetección del nombre de servidor no es adecuada, y no puedes establecer el valor mediante variables de entorno. En estos casos, puedes usar un archivo en el servidor para proporcionar un valor apropiado. Si
DD_HOSTNAME se configura con un valor no vacío, esta opción se ignora. DD_TAGS- Etiquetas de servidor separadas por espacios. Por ejemplo:
key1:value1 key2:value2. DD_SITE- Sitio de destino para tus métricas, trazas y registros. Establece tu sitio de Datadog en:
. Defaults to datadoghq.com. DD_DD_URL- Configuración opcional para anular la URL para el envío de métricas.
DD_URL (6.36+/7.36+)- Alias para
DD_DD_URL. Ignorado si DD_DD_URL ya está configurado. DD_CHECK_RUNNERS- El Agente ejecuta todas las verificaciones de manera concurrente por defecto (valor predeterminado =
4 ejecutores). Para ejecutar las verificaciones secuencialmente, establece el valor en 1. Si necesitas ejecutar un alto número de verificaciones (o verificaciones lentas), el componente collector-queue puede retrasarse y fallar la verificación de salud. Puedes aumentar el número de ejecutores para realizar verificaciones en paralelo. DD_APM_ENABLED- Habilita la recolección de trazas. Por defecto es
true. Para más información sobre las variables de entorno adicionales para la recolección de trazas, consulta Trazado de aplicaciones Docker. DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION- En algunos entornos, los registros iniciales de los servidores pueden no incluir las etiquetas correctas. Si te faltan etiquetas en nuevos servidores en tus registros, incluye esta variable de entorno y configúrala en
"10m".
Configuraciones de proxy
A partir de la versión 6.4.0 del Agente (y la 6.5.0 para el Agente de Trazas), puedes anular las configuraciones de proxy del Agente con las siguientes variables de entorno:
DD_PROXY_HTTP- Una URL HTTP que se utilizará como proxy para las solicitudes de
http. DD_PROXY_HTTPS- Una URL HTTPS que se utilizará como proxy para las solicitudes de
https. DD_PROXY_NO_PROXY- Una lista de URLs separadas por espacios para las cuales no se debe utilizar proxy.
Para más información sobre las configuraciones de proxy, consulta la documentación del proxy del Agente v6.
Agentes de recolección opcionales
Los Agentes de recolección opcionales están deshabilitados por defecto por razones de seguridad o rendimiento. Utilice estas variables de entorno para habilitarlos:
DD_APM_NON_LOCAL_TRAFFIC- Permite tráfico no local al recoger trazas de otros contenedores.
DD_LOGS_ENABLED- Habilitar recolección de registros con el Agente de Registros.
DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED- Habilita la colección de procesos en vivo con el Agente de Procesos. La visualización de contenedores en vivo ya está habilitada por defecto si el socket de Docker está disponible.
DogStatsD (métricas personalizadas)
Enviar métricas personalizadas con el protocolo StatsD:
DD_DOGSTATSD_NON_LOCAL_TRAFFIC- Escuchar paquetes de DogStatsD de otros contenedores (requerido para enviar métricas personalizadas).
DD_HISTOGRAM_PERCENTILES- Los percentiles del histograma a calcular (separados por espacios). El valor predeterminado es
0.95. DD_HISTOGRAM_AGGREGATES- Los agregados del histograma a calcular (separados por espacios). El valor predeterminado es
"max median avg count". DD_DOGSTATSD_SOCKET- Ruta al socket unix para escuchar. Debe estar en un
rw volumen montado. DD_DOGSTATSD_ORIGIN_DETECTION- Habilita la detección y etiquetado de contenedores para métricas de socket UNIX.
DD_DOGSTATSD_TAGS- Etiquetas adicionales para agregar a todas las métricas, eventos y verificaciones de servicio recibidos por este servidor DogStatsD. Por ejemplo:
"env:golden group:retrievers".
DD_USE_DOGSTATSD
Habilita o deshabilita el envío de métricas personalizadas desde la biblioteca DogStatsD.
Aprende más sobre DogStatsD sobre sockets de dominio Unix.
Etiquetado
Como mejor práctica, Datadog recomienda usar unified service tagging al asignar etiquetas.
Datadog recopila automáticamente etiquetas comunes de Docker, Kubernetes, ECS, Swarm, Mesos, Nomad y Rancher. Para extraer aún más etiquetas, utiliza las siguientes opciones:
DD_CONTAINER_LABELS_AS_TAGS- Extraer etiquetas de contenedor. Este entorno es equivalente a
DD_DOCKER_LABELS_AS_TAGS. DD_CONTAINER_ENV_AS_TAGS- Extraer variables de entorno de contenedor. Este entorno es equivalente a
DD_DOCKER_ENV_AS_TAGS. DD_COLLECT_EC2_TAGS- Extraer etiquetas personalizadas de EC2 sin usar la integración de AWS.
Consulta la documentación de Extracción de Etiquetas de Docker para aprender más.
Usando archivos secretos
Las credenciales de integración pueden almacenarse en secretos de Docker o Kubernetes y usarse en plantillas de Autodiscovery. Para más información, consulta la documentación de Gestión de Secretos.
Ignorar contenedores
Excluye los contenedores de la colección de registros, la colección de métricas y la Autodiscovery. Datadog excluye por defecto los contenedores de Kubernetes y OpenShift pause. Estas listas de permitidos y bloqueados se aplican solo a Autodiscovery; las trazas y DogStatsD no se ven afectados. El valor de estas variables de entorno admite expresiones regulares.
DD_CONTAINER_INCLUDE- Lista de permitidos de contenedores a incluir (separados por espacios). Usa
.* para incluir todos. Por ejemplo: "image:image_name_1 image:image_name_2", image:.* Cuando uses ImageStreams dentro de entornos de OpenShift, usa el nombre del contenedor en lugar de la imagen. Por ejemplo: "name:container_name_1 name:container_name_2", name:.* DD_CONTAINER_EXCLUDE- Lista de bloqueados de contenedores a excluir (separados por espacios). Usa
.* para excluir todos. Por ejemplo: "image:image_name_3 image:image_name_4", image:.* (Nota: Esta variable solo se respeta para la Autodiscovery.) DD_CONTAINER_INCLUDE_METRICS- Lista de permitidos de contenedores cuyas métricas deseas incluir.
DD_CONTAINER_EXCLUDE_METRICS- Lista de bloqueados de contenedores cuyas métricas deseas excluir.
DD_CONTAINER_INCLUDE_LOGS- Lista de permitidos de contenedores cuyos registros deseas incluir.
DD_CONTAINER_EXCLUDE_LOGS- Lista de bloqueados de contenedores cuyos registros deseas excluir.
DD_AC_INCLUDE- Obsoleto. Lista de contenedores a incluir (separados por espacios). Usa
.* para incluir todos. Por ejemplo: "image:image_name_1 image:image_name_2", image:.* DD_AC_EXCLUDE- Obsoleto. Lista de contenedores a excluir (separados por espacios). Usa
.* para excluir todos. Por ejemplo: "image:image_name_3 image:image_name_4", image:.* (Nota: Esta variable solo se respeta para Autodiscovery.)
Ejemplos adicionales están disponibles en la página de Gestión de Descubrimiento de Contenedores.
Nota: Las métricas kubernetes.containers.running, kubernetes.pods.running, docker.containers.running, .stopped, .running.total y .stopped.total no se ven afectadas por estas configuraciones. Todos los contenedores se contabilizan. Esto no afecta su facturación por contenedor.
Nota: Al usar containerd, es posible ignorar contenedores por espacio de nombres usando DD_CONTAINERD_NAMESPACES y DD_CONTAINERD_EXCLUDE_NAMESPACES. Ambos son una lista de espacios de nombres separados por espacios. Cuando se establece DD_CONTAINERD_NAMESPACES, el agente informa datos para los contenedores que pertenecen a un espacio de nombres presente en la lista. Cuando se establece DD_CONTAINERD_EXCLUDE_NAMESPACES, el agente informa datos para todos los contenedores excepto los que pertenecen a un espacio de nombres de la lista.
Autodiscovery
DD_LISTENERS- Autodiscovery listeners para ejecutar.
DD_EXTRA_LISTENERS- Autodiscovery listeners 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_PROVIDERS- Los proveedores que el Agente debe llamar para recopilar configuraciones de verificación. El proveedor predeterminado es
docker. El proveedor de Docker maneja plantillas incrustadas en etiquetas de contenedor. DD_EXTRA_CONFIG_PROVIDERS- Proveedores 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
DD_PROCESS_AGENT_CONTAINER_SOURCE- Anula la autodetección de la fuente para forzar una única fuente. p. ej.
"docker", "ecs_fargate", "kubelet". Esto ya no es necesario desde la versión 7.35.0 del Agente. DD_HEALTH_PORT- Establece
5555 para exponer la verificación de salud del Agente en el puerto 5555.
Comandos
Consulta las guías de comandos del agente para descubrir todos los comandos del agente de Docker.
Datos recopilados
Métricas
Por defecto, el agente de Docker recopila métricas con las siguientes verificaciones básicas. Para recopilar métricas de otras tecnologías, consulta la sección Integraciones.
Eventos
El agente de Docker envía eventos a Datadog al iniciarse o reiniciarse.
Verificaciones de servicio
datadog.agent.up
Devuelve CRITICAL si el Agente no puede conectarse a Datadog, de lo contrario devuelve OK.
datadog.agent.check_status
Devuelve CRITICAL si una verificación del Agente no puede enviar métricas a Datadog, de lo contrario devuelve OK.
Desinstalar Instrumentación APM de Un Solo Paso
Si instalaste el Agente de Docker de Datadog con Instrumentación APM de Un Solo Paso, y deseas desinstalar el Agente, necesitas ejecutar comandos adicionales para desinstalar la Instrumentación APM.
Lectura Adicional
Más enlaces, artículos y documentación útiles: