Installez l' CloudWatch agent avec la collecte de métriques Prometheus sur les clusters Amazon ECS - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Installez l' CloudWatch agent avec la collecte de métriques Prometheus sur les clusters Amazon ECS

Cette section explique comment configurer l' CloudWatch agent avec la surveillance Prometheus dans un cluster exécutant Amazon. ECS Après cela, l'agent récupère et importe automatiquement les métriques pour les applications suivantes exécutées dans ce cluster.

  • AWS App Mesh

  • Java/ JMX

Vous pouvez également configurer l'agent pour récupérer et importer les métriques à partir d'applications et sources Prometheus supplémentaires.

Configuration des IAM rôles

Vous avez besoin de deux IAM rôles pour la définition des tâches de l' CloudWatch agent. Si vous spécifiez CreateIAMRoles=True dans le AWS CloudFormation Pour que Container Insights crée ces rôles pour vous, les rôles seront créés avec les autorisations appropriées. Si vous souhaitez les créer vous-même ou utiliser des rôles existants, les autorisations et rôles suivants sont requis.

  • CloudWatch rôle de ECS tâche de l' CloudWatch agent : le conteneur de l'agent utilise ce rôle. Elle doit inclure la CloudWatchAgentServerPolicypolitique et une politique gérée par le client qui contient les autorisations en lecture seule suivantes :

    • ec2:DescribeInstances

    • ecs:ListTasks

    • ecs:ListServices

    • ecs:DescribeContainerInstances

    • ecs:DescribeServices

    • ecs:DescribeTasks

    • ecs:DescribeTaskDefinition

  • CloudWatch rôle d'exécution des ECS tâches de l'agent : il s'agit du rôle dont Amazon a ECS besoin pour lancer et exécuter vos conteneurs. Assurez-vous que le A mazonSSMReadOnlyAccess, le A et les CloudWatchAgentServerPolicypolitiques sont attachés à votre rôle d'mazonECSTaskExecutionRolePolicyexécution des tâches. Si vous souhaitez stocker des données plus sensibles pour qu'Amazon puisse les ECS utiliser, consultez la section Spécification des données sensibles.

Installez l' CloudWatch agent avec le système de surveillance Prometheus en utilisant AWS CloudFormation

Vous utilisez AWS CloudFormation pour installer l' CloudWatch agent avec Prometheus monitoring pour les clusters Amazon. ECS La liste suivante indique les paramètres que vous utiliserez dans AWS CloudFormation modèle.

  • ECSClusterName— Spécifie le ECS cluster Amazon cible.

  • C reateIAMRoles — Spécifiez True la création de nouveaux rôles pour le rôle de ECS tâche Amazon et le rôle d'exécution de ECS tâche Amazon. Spécifiez False pour réutiliser les rôles existants.

  • TaskRoleName— Si vous l'avez spécifié True pour C reateIAMRoles, cela indique le nom à utiliser pour le nouveau rôle de ECS tâche Amazon. Si vous l'avez spécifié False pour C reateIAMRoles, cela indique le rôle existant à utiliser comme rôle de ECS tâche Amazon.

  • ExecutionRoleName— Si vous l'avez spécifié True pour C reateIAMRoles, cela indique le nom à utiliser pour le nouveau rôle d'exécution des ECS tâches Amazon. Si vous l'avez spécifié False pour C reateIAMRoles, cela indique le rôle existant à utiliser comme rôle d'exécution des ECS tâches Amazon.

  • ECSNetworkMode— Si vous utilisez EC2 le type de lancement, spécifiez le mode réseau ici. Il doit être bridge ou host.

  • ECSLaunchType— Spécifiez fargate soitEC2.

  • SecurityGroupID — Si tel ECSNetworkModeest le casawsvpc, spécifiez l'ID du groupe de sécurité ici.

  • SubnetId — Si tel ECSNetworkModeest le casawsvpc, spécifiez l'ID du sous-réseau ici.

Exemples de commande

Cette section inclut un échantillon AWS CloudFormation commandes pour installer Container Insights avec surveillance Prometheus dans différents scénarios.

Créez AWS CloudFormation pile pour un ECS cluster Amazon en mode réseau en mode pont

export AWS_PROFILE=your_aws_config_profile_eg_default export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1 export ECS_CLUSTER_NAME=your_ec2_ecs_cluster_name export ECS_NETWORK_MODE=bridge export CREATE_IAM_ROLES=True export ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name export ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \ --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \ --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \ ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \ ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \ ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \ ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}

Créez AWS CloudFormation pile pour un ECS cluster Amazon en mode réseau hôte

export AWS_PROFILE=your_aws_config_profile_eg_default export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1 export ECS_CLUSTER_NAME=your_ec2_ecs_cluster_name export ECS_NETWORK_MODE=host export CREATE_IAM_ROLES=True export ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name export ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \ --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \ --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \ ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \ ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \ ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \ ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}

Créez AWS CloudFormation pile pour un ECS cluster Amazon en mode réseau awsvpc

export AWS_PROFILE=your_aws_config_profile_eg_default export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1 export ECS_CLUSTER_NAME=your_ec2_ecs_cluster_name export ECS_LAUNCH_TYPE=EC2 export CREATE_IAM_ROLES=True export ECS_CLUSTER_SECURITY_GROUP=your_security_group_eg_sg-xxxxxxxxxx export ECS_CLUSTER_SUBNET=your_subnet_eg_subnet-xxxxxxxxxx export ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name export ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-awsvpc.yaml aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-${ECS_LAUNCH_TYPE}-awsvpc \ --template-body file://cwagent-ecs-prometheus-metric-for-awsvpc.yaml \ --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \ ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \ ParameterKey=ECSLaunchType,ParameterValue=${ECS_LAUNCH_TYPE} \ ParameterKey=SecurityGroupID,ParameterValue=${ECS_CLUSTER_SECURITY_GROUP} \ ParameterKey=SubnetID,ParameterValue=${ECS_CLUSTER_SUBNET} \ ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \ ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}

Créez AWS CloudFormation pile pour un cluster Fargate en mode réseau awsvpc

export AWS_PROFILE=your_aws_config_profile_eg_default export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1 export ECS_CLUSTER_NAME=your_ec2_ecs_cluster_name export ECS_LAUNCH_TYPE=FARGATE export CREATE_IAM_ROLES=True export ECS_CLUSTER_SECURITY_GROUP=your_security_group_eg_sg-xxxxxxxxxx export ECS_CLUSTER_SUBNET=your_subnet_eg_subnet-xxxxxxxxxx export ECS_TASK_ROLE_NAME=your_selected_ecs_task_role_name export ECS_EXECUTION_ROLE_NAME=your_selected_ecs_execution_role_name curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-awsvpc.yaml aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-${ECS_LAUNCH_TYPE}-awsvpc \ --template-body file://cwagent-ecs-prometheus-metric-for-awsvpc.yaml \ --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \ ParameterKey=CreateIAMRoles,ParameterValue=${CREATE_IAM_ROLES} \ ParameterKey=ECSLaunchType,ParameterValue=${ECS_LAUNCH_TYPE} \ ParameterKey=SecurityGroupID,ParameterValue=${ECS_CLUSTER_SECURITY_GROUP} \ ParameterKey=SubnetID,ParameterValue=${ECS_CLUSTER_SUBNET} \ ParameterKey=TaskRoleName,ParameterValue=${ECS_TASK_ROLE_NAME} \ ParameterKey=ExecutionRoleName,ParameterValue=${ECS_EXECUTION_ROLE_NAME} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}

AWS ressources créées par AWS CloudFormation pile

Le tableau suivant répertorie les AWS ressources créées lorsque vous utilisez AWS CloudFormation pour configurer la surveillance de Container Insights avec Prometheus sur un cluster Amazon. ECS

Type de ressource Nom de la ressource Commentaires

AWS: : SSM : :Paramètre

AmazonCloudWatch-CWAgentConfig-$ECS_CLUSTER_NAME-$ECS_LAUNCH_TYPE-$ECS_NETWORK_MODE

Il s'agit de l' CloudWatch agent avec la définition par défaut du format App Mesh et Java/Metric JMX intégré.

AWS: : SSM : :Paramètre

AmazonCloudWatch-PrometheusConfigName-$ECS_CLUSTER_NAME-$ECS_LAUNCH_TYPE-$ECS_NETWORK_MODE

Il s'agit de la configuration de récupération Prometheus.

AWS: : IAM : :Rôle

$ECS_TASK_ROLE_NAME.

Le rôle de ECS tâche Amazon. Ceci est créé uniquement si vous avez spécifié True pour CREATE_IAM_ROLES.

AWS: : IAM : :Rôle

${ECS_EXECUTION_ROLE_NAME}

Le rôle d'exécution des ECS tâches Amazon. Ceci est créé uniquement si vous avez spécifié True pour CREATE_IAM_ROLES.

AWS::ECS::TaskDefinition

cwagent-prométheus-$ECS_CLUSTER_NAME-$ECS_LAUNCH_TYPE-$ECS_NETWORK_MODE

AWS: : ECS : :Service

cwagent-prometheus-replica-service-$ECS_LAUNCH_TYPE-$ECS_NETWORK_MODE

Suppression du AWS CloudFormation pile pour l' CloudWatch agent avec surveillance Prometheus

Pour supprimer l' CloudWatch agent d'un ECS cluster Amazon, entrez ces commandes.

export AWS_PROFILE=your_aws_config_profile_eg_default export AWS_DEFAULT_REGION=your_aws_region_eg_ap-southeast-1 export CLOUDFORMATION_STACK_NAME=your_cloudformation_stack_name aws cloudformation delete-stack \ --stack-name ${CLOUDFORMATION_STACK_NAME} \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}