View a markdown version of this page

Guía de configuración (AWS CLI) - Amazon CloudWatch

Guía de configuración (AWS CLI)

En esta guía se explica cómo instalar Información de contenedores mejorada (versión clásica) en un clúster de Amazon EKS existente mediante la AWS CLI. El complemento implementa un agente de CloudWatch como un DaemonSet que recopila métricas de infraestructura, registros de contenedores y datos de rendimiento.

Modo de mantenimiento

Información de contenedores mejorada (versión clásica) está en modo de mantenimiento. Para las nuevas implementaciones, recomendamos Información de contenedores de OTel (recomendado).

Requisitos previos

Antes de comenzar, compruebe que cumple con los siguientes requisitos.

  • Un clúster de Amazon EKS existente que ejecuta la versión 1.25 de Kubernetes o una posterior

  • Versión de la plataformas eks.1 o posteriores

  • AWS CLI versión 2.12.0 o posterior

  • kubectl configurado para comunicarse con el clúster de destino

  • Permisos de IAM: eks:CreateAddon, eks:DescribeAddon, iam:CreateServiceLinkedRole, iam:CreateRole y iam:AttachRolePolicy

  • El complemento del agente de Pod Identity de EKS está instalado en el clúster o se han configurado roles de IAM para las cuentas de servicio (IRSA)

  • Acceso de salida a Internet desde el clúster a los puntos de conexión de CloudWatch

Paso 1: Crear el rol de IAM

Cree un rol de IAM que permita que el agente de CloudWatch envíe datos a CloudWatch.

Creación del rol de IAM para el agente de CloudWatch
  1. Ejecute el siguiente comando para crear el rol con una política de confianza para Pod Identity de EKS.

    aws iam create-role \ --role-name EKS-CloudWatch-Agent-Role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:TagSession"] }] }'
  2. Asocie la política administrada por CloudWatchAgentServerPolicy al rol.

    aws iam attach-role-policy \ --role-name EKS-CloudWatch-Agent-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Paso 2: creación de la asociación de Pod Identity

Asocie el rol de IAM a la cuenta de servicio del agente de CloudWatch en el clúster.

Creación de la asociación de Pod Identity
  • Ejecute el siguiente comando. Sustituya cluster-name por el nombre del clúster de Amazon EKS y account-id por el ID de cuenta de AWS.

    aws eks create-pod-identity-association \ --cluster-name cluster-name \ --namespace amazon-cloudwatch \ --service-account cloudwatch-agent \ --role-arn arn:aws:iam::account-id:role/EKS-CloudWatch-Agent-Role

Paso 3: instalación del complemento de observabilidad de Amazon CloudWatch

Instale el complemento amazon-cloudwatch-observability en el clúster.

Instalación del complemento
  • Ejecute el siguiente comando. Reemplace cluster-name por el nombre del clúster de Amazon EKS.

    aws eks create-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --addon-version v5.x.x-eksbuild.x

    Sustituya v5.x.x-eksbuild.x por la última versión 5.x disponible. Si se instala sin --addon-version, se instala la última versión (v6.2.0+), que activa la canalización de OTel en lugar de la versión clásica.

Paso 4: verificación del estado del complemento

Confirme que el complemento se instaló correctamente.

Verificación del estado del complemento
  • Ejecute el siguiente comando. Reemplace cluster-name por el nombre del clúster de Amazon EKS.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text

    El resultado esperado es ACTIVE.

Paso 5: confirmación de que los pods de agente se estén ejecutando

Compruebe que los pods del agente de CloudWatch se estén ejecutando en el espacio de nombres amazon-cloudwatch.

Confirmación de que los pods de agente se estén ejecutando
  • Ejecute el siguiente comando.

    kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent

    Todos los pods de agentes deben mostrar el estado Running.

Verificación de datos en CloudWatch

Tras completar la configuración, los datos de Información de contenedores aparecen en CloudWatch en un plazo de 3 a 5 minutos.

Verificación de los datos de Información de contenedores
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Información de contenedores.

  3. Compruebe que métricas como node_cpu_utilization y pod_memory_utilization aparezcan en el clúster.

Solución de problemas

Utilice la siguiente guía para resolver problemas comunes al instalar Información de contenedores mejorada (versión clásica) en Amazon EKS.

El estado del complemento es CREATE_FAILED o DEGRADED

Síntoma: cuando ejecuta aws eks describe-addon, el estado es CREATE_FAILED o DEGRADED.

Causa: se produjo un error en la instalación del complemento porque los permisos de IAM no son suficientes o porque falta una asociación de Pod Identity.

Solución: siga estos pasos para resolver este problema.

  1. Ejecute el siguiente comando para comprobar la información de error detallada. Sustituya cluster-name por el nombre de su clúster.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.health"
  2. Verifique que el rol de IAM exista y tenga la política CloudWatchAgentServerPolicy adjunta.

  3. Compruebe que la asociación de Pod Identity se dirija al espacio de nombres (amazon-cloudwatch) y a la cuenta de servicio (cloudwatch-agent) correctos.

  4. Elimine el complemento con error y vuelva a instalarlo tras resolver el problema.

    aws eks delete-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability

Las métricas no aparecen en CloudWatch después de 5 minutos

Síntoma: los pods del agente tienen el estado Running, pero no aparece ninguna métrica en CloudWatch transcurridos 5 minutos.

Causa: el agente no puede enviar datos a CloudWatch debido a restricciones de red o permisos de IAM incorrectos.

Solución: siga estos pasos para resolver este problema.

  1. Verifique que los grupos de seguridad de VPC y las listas de control de acceso de la red permitan el tráfico HTTPS saliente (puerto 443) hacia los puntos de conexión de CloudWatch.

  2. Compruebe los registros del agente para ver si hay errores de permisos o tiempos de espera de conexión.

    kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied"
  3. Verifique que el rol de IAM tenga la política CloudWatchAgentServerPolicy adjunta y que la política de confianza permita pods.eks.amazonaws.com.

Los pods del agente están bloqueados en el estado Pending o CrashLoopBackOff

Síntoma: cuando ejecuta kubectl get pods -n amazon-cloudwatch, uno o más pods tienen el estado Pending o CrashLoopBackOff.

Causa: los pods del agente no se pueden iniciar debido a la falta de recursos de los nodos, a errores en la extracción de imágenes o la falta de permisos.

Solución: siga estos pasos para resolver este problema.

  1. Compruebe los mensajes de error detallados en los eventos del pod.

    kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent
  2. Compruebe que los nodos tengan suficiente CPU y memoria disponibles para los pods del agente.

  3. Compruebe que el complemento del agente de Pod Identity de EKS esté instalado y en ejecución.

    kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent

Siguientes pasos

¿Todo listo para actualizar? Para obtener instrucciones paso a paso para pasar de Información de contenedores mejorada (versión clásica) a Información de contenedores de OTel, consulte Migración de Información de contenedores mejorada (versión clásica) a Información de contenedores de OTel.