Solucionar problemas de contenedor
Esta página proporciona información para solucionar problemas con la monitorización de contenedores.
Existen tres métodos para desplegar el Agent:
Como un contenedor en un tiempo de ejecución
En un entorno de nube, como Amazon ECS, Fargate en un entorno de Amazon ECS o Amazon EKS.
En un entorno de Kubernetes
Estos diferentes métodos presentan retos de despliegue únicos. Utiliza esta página como punto de partida para resolver los problemas. Si sigues teniendo complicaciones, ponte en contacto con el soporte de Datadog para obtener más ayuda.
Para obtener más información sobre las actualizaciones o cambios de la versión del Agent, consulta las notas de la versión de Datadog.
Cuestiones generales
Una forma útil de inyectar variables de entorno o de configurar una biblioteca de DogStatsD es implementar la función Controlador de admisión (Admission Controller) en el Cluster Agent. Nota: El Cluster Agent debe ser desplegado y ejecutado antes de que la aplicación sea desplegada.
Comprueba que lo siguiente es cierto:
El endpoint de métricas está expuesto y abierto para que el Agent lo alcance.
No hay proxies ni cortafuegos que puedan impedir que el Agent acceda al endpoint.
El Agent tiene Autodiscovery activado.
No se recopilan logs
Hay dos variables de entorno que pueden afectar a la recopilación de logs y de qué contenedores:
- Establece
DD_logs_ENABLED
en true
para recopilar logs. - Además, establece
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL
en true
para recopilar todos los logs de todos los contenedores.
Para excluir logs (y otras funciones) de la recopilación, consulta la Guía de Gestión de detección de contenedores.
No se puede conectar al Kubelet
El error más común que impide la conexión a la API de Kubelet es la verificación del certificado TLS de Kubelet.
La verificación TLS está activada por defecto y puede impedir que el Agent se conecte a la API de Kubelet a través de HTTPS. Puedes desactivar la verificación TLS utilizando parámetros dedicados o configurando la variable DD_KUBELET_TLS_VERIFY
para todos los contenedores en el manifiesto del Agent:
- Configura
TLS_VERIFY
en false
.
Las métricas HPA no aparecen o no coinciden con el valor esperado
En primer lugar, asegúrate de que el Cluster Agent está desplegado y es capaz de enviar datos al Agent de nodo.
A continuación, revisa la consulta utilizada para escalar las métricas externas en el resumen de métricas. Solo las consultas válidas se autoescalan. Si hay varias consultas, todas las consultas se ignoran si alguna de las consultas no es válida.
Cuando necesites más ayuda con las métricas HPA, facilita lo siguiente al soporte de Datadog:
- Una salida
describe
del manifiesto HPA:$ kubectl describe hpa > hpa.log
- Una salida
describe
de la definición de recursos personalizados de DatadogMetric:$ kubectl describe DatadogMetric > DatadogMetric.log
Tiempo de ejecución
Para logs, asegúrate de que el comando de despliegue del Agent tiene habilitados DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL
y DD_LOGS_ENABLED
.
Nube
Asegúrate de que tu política de IAM está actualizada.
Los logs no se recopilan en Fargate
ECS: asegúrate de que el enrutador de log está conectado al contenedor del que deseas recopilar logs.
EKS: existen dos formas comunes para que el Agent recopile logs en un entorno de EKS Fargate: reenvío de log con logs de CloudWatch logs, y reenvío de log a través de Amazon Data Firehose. El uso de Amazon Data Firehose para recopilar logs requiere el despliegue correcto del flujo de entrega de Amazon Data Firehose, así como algunas herramientas de línea de comandos.
Kubernetes
No se despliega el contenedor ni se recopilan métricas
En primer lugar, asegúrate de que tu clave de API es válida.
A continuación, en tu pod de nodo del Agent, ejecuta el comando agent status
y revisa los resultados.
No recibes métricas kubeapi_server
, kube_controller_manager
o etcd
En los servicios gestionados como Azure Kubernetes Service (AKS) y Google Kubernetes Engine (GKE), el usuario no puede acceder a los componentes del plano de control. Como resultado, no es posible ejecutar los checks de kube_apiserver
, kube_controller_manager
, kube_scheduler
o etcd
en estos entornos.
Solucionar problemas de los datos solicitados por el soporte de Datadog
Después de abrir un tique de soporte, es posible que se te solicite el siguiente tipo de información:
Flare del Agent
Puedes utilizar el comando flare
para enviar información para solucionar problemas al soporte de Datadog.
Flare de nodo del Agent
$ kubectl exec <AGENT_POD_NAME> -it agent flare <CASE_ID>
Flare del Cluster Agent
$ kubectl exec <CLUSTER_AGENT_POD_NAME> -it agent flare <CASE_ID>
Describir la salida del Pod
Esto proporciona al equipo información sobre cómo se desplegó el nodo o el Cluster Agent, cuáles fueron los eventos más recientes en el pod y si se inyectaron y aplicaron algunas cualidades (como etiquetas personalizadas) en métricas de host. La sección > <FILENAME>.yaml
del comando crea un archivo de salida que puede enviarse al soporte de Datadog como archivo adjunto:
$ kubectl describe pod <POD_NAME> > <FILENAME>.yaml
Manifiesto/despliegue
Este es el archivo utilizado para desplegar el Agent en tu entorno. Informa a Datadog de las etiquetas configuradas, si los logs fueron habilitados, y si ciertos contenedores están definidos para ser ignorados.
En el caso de desplegar el Agent en un entorno de tiempo de ejecución, envía al Soporte la línea de comandos utilizada para desplegar el Agent.
Los tres métodos de despliegue más comunes son: tabla de Helm, DaemonSet y Operator.
Salida cURL
Si notas que hay métricas ausentes o imprecisas, el soporte de Datadog puede solicitar el resultado de una salida cURL del nodo del Agent que intenta alcanzar el endpoint de métrica. Esto se hace ejecutando el comando desde dentro del contenedor del Agent, y puede informar al soporte si el Agent tiene acceso a las métricas. Nota: Esto no es posible en un servicio de Fargate o en servicios gestionados:
$ kubectl exec -it <AGENT_POD_NAME> curl -k -v ""<METRIC_ENDPOINT>""
$ docker exec -it <AGENT_CONTAINER_ID> curl -k -v "<METRIC_ENDPOINT>"
Leer más
Additional helpful documentation, links, and articles: