Implementación de AWS Distro para OpenTelemetry a fin de recopilar métricas de nivel de instancia EC2 en clústeres de Amazon ECS - Amazon CloudWatch

Implementación de AWS Distro para OpenTelemetry a fin de recopilar métricas de nivel de instancia EC2 en clústeres de Amazon ECS

Siga los pasos de esta sección para usar AWS Distro para OpenTelemetry a fin de recopilar métricas de nivel de instancia EC2 en un clúster de Amazon ECS. Para obtener más información acerca de AWS Distro para OpenTelemetry, consulte AWS Distro para OpenTelemetry.

En estos pasos se presupone que ya tiene un clúster que ejecuta Amazon ECS. Este clúster debe implementarse con el tipo de lanzamiento EC2. Para obtener más información acerca del uso de AWS Distro para OpenTelemetry con Amazon ECS y acerca de la configuración de un clúster de Amazon ECS para este fin, consulte Configuración del recopilador de AWS Distro para OpenTelemetry en las métricas de nivel de instancia EC2 de Amazon Elastic Container Service para ECS EC2.

Configuración rápida mediante AWS CloudFormation

Descargue el archivo de plantilla de AWS CloudFormation para instalar el recopilador AWS Distro para OpenTelemetry para Amazon ECS en EC2. Ejecute el siguiente comando curl.

curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/ecs/aws-otel-ec2-instance-metrics-daemon-deployment-cfn.yaml

Después de descargar el archivo de plantilla, ábralo y reemplace PATH_TO_CloudFormation_TEMPLATE con la ruta donde guardó el archivo de plantilla. A continuación, exporte los siguientes parámetros y ejecute el comando AWS CloudFormation, tal y como se muestra en el siguiente comando.

  • Cluster_Name: el nombre del clúster de Amazon ECS

  • AWS_Region: la Región a la que se enviarán los datos

  • PATH_TO_CloudFormation_TEMPLATE: la ruta en la que guardó el archivo de plantilla de AWS CloudFormation.

  • comando: para habilitar el recopilador de AWS Distro para OpenTelemetry para que recopile las métricas de nivel de instancia para Amazon ECS en Amazon EC2, debe especificar --config=/etc/ecs/otel-instance-metrics-config.yaml para este parámetro.

ClusterName=Cluster_Name Region=AWS_Region command=--config=/etc/ecs/otel-instance-metrics-config.yaml aws cloudformation create-stack --stack-name AOCECS-${ClusterName}-${Region} \ --template-body file://PATH_TO_CloudFormation_TEMPLATE \ --parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \ ParameterKey=CreateIAMRoles,ParameterValue=True \ ParameterKey=command,ParameterValue=${command} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${Region}

Después de ejecutar este comando, utilice la consola de Amazon ECS para ver si la tarea se está ejecutando.

Solución de problemas de la configuración rápida

Para comprobar el estado de la pila de AWS CloudFormation, escriba el siguiente comando.

ClusterName=cluster-name Region=cluster-region aws cloudformation describe-stack --stack-name AOCECS-$ClusterName-$Region --region $Region

Si ve que el valor de StackStatus es distinto de CREATE_COMPLETE o CREATE_IN_PROGRESS, verifique los eventos de pila para encontrar el error. Escriba el siguiente comando.

ClusterName=cluster-name Region=cluster-region aws cloudformation describe-stack-events --stack-name AOCECS-$ClusterName-$Region --region $Region

Para verificar el estado del servicio del daemon AOCECS, ingrese el siguiente comando. En la salida, debería ver que el runningCount es igual al desiredCount en la sección de implementación. Si no es igual, verifique la sección de errores en la salida.

ClusterName=cluster-name Region=cluster-region aws ecs describe-services --services AOCECS-daemon-service --cluster $ClusterName --region $Region

También puede utilizar la consola de CloudWatch Logs para verificar el registro del agente. Busque el grupo de registro /aws/ecs/containerinsights/{ClusterName}/performance.

Configuración manual y personalizada

Siga los pasos de esta sección para implementar manualmente AWS Distro para OpenTelemetry a fin de recopilar métricas de nivel de instancia de los clústeres de Amazon ECS alojados en instancias de Amazon EC2.

Paso 1: Políticas y roles necesarios

Se requieren dos roles de IAM. Debe crearlos si aún no existen. Para obtener más información sobre los roles, consulte Create IAM policy (Crear una política de IAM) y Create IAM role (Crear un rol de IAM).

Paso 2: Cree una definición de tarea

Cree una definición de tarea y úsela para lanzar AWS Distro para OpenTelemetry como servicio del daemon.

Si desea utilizar la plantilla de definición de tareas para la creación de uno de esos recursos, siga las instrucciones que aparecen en Crear una definición de tarea de EC2 de ECS para una instancia de EC2 con el recopilador de AWS OTel.

Si desea utilizar la consola de Amazon ECS para crear la definición de tarea, siga las instrucciones que aparecen en Instalar el recopilador de AWS OTel mediante la creación de una definición de tarea a través de la consola de AWS para métricas de instancias de EC2 de Amazon ECS.

Paso 3: Lance el servicio del daemon

Para lanzar AWS Distro para OpenTelemetry como un servicio daemon, siga las instrucciones que se indican en Ejecutar la tarea en Amazon Elastic Container Service (Amazon ECS) con el servicio del daemon.

(Opcional) Configuración avanzada

Opcionalmente, puede utilizar SSM para especificar otras opciones de configuración para AWS Distro para OpenTelemetry en los clústeres de Amazon ECS alojados en instancias de Amazon EC2. Para obtener más información sobre la creación de un archivo de configuración, consulte Custom OpenTelemetry Configuration (Configuración personalizada de OpenTelemetry). Para obtener más información acerca de las opciones que pueden usarse en el archivo de configuración, consulte Receptor de Información de contenedores de AWS.