Docker Daemon

Supported OS Linux

Nota: El check de Docker Daemon todavía se mantiene, pero solo funciona con el Agent v5.

Para utilizar la integración de Docker con el Agent v6 consulta la sección Agent v6 a continuación.

Dashboard predeterminado de Docker

Información general

Configura este check del Agent para obtener métricas del servicio de Docker_daemon en tiempo real para lo siguiente:

  • Visualizar y monitoritorizar los estados de Docker_daemon.
  • Recibir notificaciones sobre las conmutaciones por error y eventos de Docker_daemon.

Configuración

Instalación

Para recopilar métricas de Docker sobre todos tus contenedores, ejecuta un Datadog Agent en cada host. Hay dos formas de ejecutar el Agent: directamente en cada host o en un contenedor de docker-dd-agent (recomendado).

Para cualquiera de las opciones, tus hosts necesitan una gestión de memoria de grupo activada para que el check de Docker tenga éxito. Consulta el repositorio de docker-dd-agent para saber cómo activarla.

Instalación del host

  1. Asegúrate de que Docker se esté ejecutando en el host.
  2. Instala el Agent tal y como se describe en las instrucciones de instalación del Agent para tu sistema operativo del host.
  3. Activa el ícono de integración de Docker en la aplicación.
  4. Añade el usuario del Agent al grupo de Docker: usermod -a -G docker dd-agent
  5. Crea un archivo docker_daemon.yaml copiando el archivo de ejemplo en el directorio de Agent conf.d. Si tienes una instalación estándar de Docker en tu host, no debería haber nada que necesites cambiar para que la integración funcione.
  6. Para activar otras integraciones, utiliza docker ps para identificar los puertos utilizados por las aplicaciones correspondientes. Comando ps de Docker

Instalación del contenedor

  1. Asegúrate de que Docker se esté ejecutando en el host.

  2. Según las instrucciones de instalación del contenedor de Docker, ejecuta lo siguiente:

     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 API_KEY={YOUR_DD_API_KEY} \
       datadog/docker-dd-agent:latest
    

En el comando anterior, puedes pasar tu clave de la API al Datadog Agent utilizando la marca de la variable de entorno -e de Docker. Otras variables son:

VariableDescripción
API_KEYConfigura tu clave de la API de Datadog.
DD_HOSTNAMEConfigura el nombre del host en el archivo datadog.confdel contenedor del Agent. Si no se configura esta variable, el contenedor del Agent utiliza valores predeterminados para el campo Name (tal y como se indica en el comando docker info) como el nombre del host del contenedor del Agent.
DD_URLConfigura la URL del servidor de entrada de Datadog al que el Agent envía los datos. Esto es útil cuando se utiliza el Agent como proxy.
LOG_LEVELConfigura el nivel de detalle del registro (CRÍTICO, ERROR, ADVERTENCIA, INFORMACIÓN, DEPURAR). Por ejemplo, -e LOG_LEVEL=DEBUG configura el registro en el modo de depuración.
ETIQUETASConfigura etiquetas (tags) del host como una cadena delimitada por comas. Están disponibles tanto etiquetas (tags) simples como etiquetas clave-valor, por ejemplo: -e etiquetas (tags)="simple-etiquetar, etiquetar-clave:etiquetar-valor".
EC2_TAGSActivar esta función permite al Agent consultar y capturar el conjunto de etiquetas personalizadas utilizando la API de EC2 durante el inicio. Para activarla, utiliza -e EC2_TAGS=yes. Nota: Esta función requiere un rol IAM asociado a la instancia.
NON_LOCAL_TRAFFICActivar esta función permite informar StatsD desde cualquier IP externa. Para activarla, utiliza -e NON_LOCAL_TRAFFIC=yes. Esto se usa para informar métricas desde otros contenedores o sistemas. Consulta la configuración de red para obtener más detalles.
PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASSWORDDefine detalles de la configuración de proxy. Nota: PROXY_PASSWORD es obligatorio para pasar una contraseña de autenticación y no puede renombrarse. Para más información, consulta la documentación de proxy del Agent.
SD_BACKEND, SD_CONFIG_BACKEND, SD_BACKEND_HOST, SD_BACKEND_PORT, SD_TEMPLATE_DIR, SD_CONSUL_TOKENActiva y configura Autodiscovery. Para más información, consulta la guía de Autodiscovery.

Nota: Añade --restart=unless-stopped si quieres que tu Agent sea resistente a los reinicios.

Ejecutar el contenedor del Agent en Amazon Linux

Para ejecutar el contenedor del Datadog Agent en Amazon Linux, haz este cambio en la localización de montaje de volumen cgroup:

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 API_KEY={YOUR API KEY} \
  datadog/docker-dd-agent:latest

Contenedor basado en Alpine Linux

La imagen estándar de Docker está basada en Debian Linux, pero a partir del Datadog Agent v5.7, existe una imagen basada en Alpine Linux. La imagen de Alpine Linux es considerablemente más pequeña que la imagen tradicional basada en Debian. También hereda el diseño orientado a la seguridad de Alpine.

Para utilizar la imagen de Alpine Linux, añade -alpine a la etiqueta de la versió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 API_KEY={YOUR API KEY} \
  datadog/docker-dd-agent:latest-alpine

Versión de imágenes

A partir de la versión 5.5.0 del Datadog Agent, la imagen de Docker sigue un nuevo patrón de versión. Esto permite a Datadog publicar cambios en la imagen de Docker del Datadog Agent, pero con la misma versión del Agent.

La versión de la imagen de Docker tiene el siguiente patrón: X.Y.Z donde X es la versión principal de la imagen de Docker, Y es la versión secundaria y Z representa la versión del Agent.

Por ejemplo, la primera versión de la imagen de Docker que incluye el Datadog Agent 5.5.0 es: 10.0.550

Contenedores personalizados e información adicional

Para obtener más información sobre la creación de contenedores personalizados de Docker con el Datadog Agent, la imagen basada en Alpine Linux, el control de versiones, etc., consulta el proyecto docker-dd-agent en Github.

Validación

Ejecuta el subcomando de estado del Agent y busca docker_daemon en la sección Checks.

Agent v6

El último check de Docker se denomina docker y está escrito en Go para aprovechar la nueva arquitectura interna. A partir de la versión 6.0, el Agent ya no carga el check docker_daemon, aunque siga disponible y se mantenga para el Agent v5. Todas las funciones se portan en la versión >6.0, excepto las obsoletas siguientes:

  • Las opciones url, api_version y tags* están obsoletas. Se fomenta el uso directo de las variables de entorno estándar de Docker.
  • Las opciones ecs_tags, performance_tags y container_tags están obsoletas. Cada etiqueta relevante se recopila de modo predeterminado.
  • La opción collect_container_count para activar la métricadocker.container.count no es compatible. Deben utilizarse docker.containers.running y .stopped.

Algunas opciones se han movido de docker_daemon.yaml al archivo datadog.yaml principal:

  • collect_labels_as_tags ha pasado a llamarse docker_labels_as_tags y admite etiquetas de cardinalidad alta. Consulta los detalles en datadog.yaml.example.
  • exclude y include han pasado a denominarse ac_include y ac_exclude. Para que el filtrado sea coherente en todos los componentes del Agent, se ha suprimido el filtrado en etiquetas arbitrario. Los únicos filtros admitidos en etiquetas son image (nombre de la imagen) y name (nombre del contenedor). El filtrado de expresiones regulares sigue estando disponible; consulta datadog.yaml.example para ver ejemplos.
  • La opción docker_root se ha dividido en dos opciones: container_cgroup_root y container_proc_root.
  • exclude_pause_container se ha añadido para excluir los contenedores en pausa en Kubernetes y Openshift (el valor predeterminado es true). Esto evita eliminarlos de la lista por error.

Cambios adicionales:

El comando import convierte el antiguo docker_daemon.yaml en el nuevo docker.yaml. El comando también traslada las configuraciones necesarias de docker_daemon.yaml a datadog.yaml.

Datos recopilados

Métricas

Eventos

La integración de Docker produce los siguientes eventos:

  • Eliminar imagen
  • Expirar
  • Error
  • Fallo
  • Terminar
  • Sin memoria (oom)
  • Pausa
  • Reiniciar el contenedor
  • Reiniciar el Daemon
  • Actualización

Checks de servicio

Nota: Para utilizar docker.exit, añade collect_exit_codes: true en tu archivo Docker YAML y reinicia el Agent.

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.

Referencias adicionales

PREVIEWING: may/embedded-workflows