Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Questa sezione spiega come configurare l' CloudWatch agente con il monitoraggio Prometheus in un cluster che esegue Amazon ECS. Dopo aver eseguito questa operazione, l'agente esegue automaticamente lo scraping e l'importazione dei parametri per i seguenti carichi di lavoro in esecuzione in quel cluster.
-
AWS App Mesh
-
Java/JMX
È inoltre possibile configurare l'agente per recuperare e importare parametri da altri carichi di lavoro e origini Prometheus.
Configurazione di ruoli IAM
Sono necessari due ruoli IAM per la definizione delle attività dell'agente. CloudWatch Se specifichi CreateIAMRoles=True
nello AWS CloudFormation stack che Container Insights crei questi ruoli per te, i ruoli verranno creati con le autorizzazioni corrette. Se si desidera crearli personalmente o utilizzare ruoli esistenti, sono necessari i seguenti ruoli e autorizzazioni.
-
CloudWatch ruolo dell'agente ECS: il contenitore dell' CloudWatch agente utilizza questo ruolo. Deve includere la CloudWatchAgentServerPolicypolicy e una policy gestita dal cliente che contenga le seguenti autorizzazioni di sola lettura:
-
ec2:DescribeInstances
-
ecs:ListTasks
-
ecs:ListServices
-
ecs:DescribeContainerInstances
-
ecs:DescribeServices
-
ecs:DescribeTasks
-
ecs:DescribeTaskDefinition
-
-
CloudWatch ruolo di esecuzione delle attività ECS dell'agente: questo è il ruolo richiesto da Amazon ECS per avviare ed eseguire i container. Assicurati che al tuo ruolo di esecuzione delle attività siano associati Amazon SSMRead OnlyAccess ECSTask ExecutionRolePolicy, Amazon e CloudWatchAgentServerPolicyle policy. Se si desidera archiviare dati più riservati utilizzabili da Amazon ECS, consulta Specifica dei dati sensibili per ulteriori informazioni.
Installa l' CloudWatch agente con il monitoraggio Prometheus utilizzando AWS CloudFormation
Lo usi AWS CloudFormation per installare l' CloudWatch agente con il monitoraggio Prometheus per i cluster Amazon ECS. L'elenco seguente mostra i parametri che verranno utilizzati nel modello AWS CloudFormation .
-
ECSClusterNome: specifica il cluster Amazon ECS di destinazione.
-
Crea IAMRoles: specifica
True
di creare nuovi ruoli per il ruolo di attività di Amazon ECS e il ruolo di esecuzione del compito di Amazon ECS. SpecificaFalse
per riutilizzare i ruoli esistenti. -
TaskRoleName— Se hai specificato
True
Create IAMRoles, questo specifica il nome da utilizzare per il nuovo task role di Amazon ECS. Se hai specificatoFalse
Create IAMRoles, questo specifica il ruolo esistente da utilizzare come task role di Amazon ECS. -
ExecutionRoleName— Se hai specificato
True
Create IAMRoles, questo specifica il nome da utilizzare per il nuovo ruolo di esecuzione delle attività di Amazon ECS. Se hai specificatoFalse
Create IAMRoles, questo specifica il ruolo esistente da utilizzare come ruolo di esecuzione delle attività di Amazon ECS. -
ECSNetworkModalità: se utilizzi il tipo di EC2 avvio, specifica qui la modalità di rete. Deve essere
bridge
ohost
. -
ECSLaunchTipo: specificare
fargate
oEC2
. -
SecurityGroupID: se la ECSNetworkmodalità è
awsvpc
, specifica qui l'ID del gruppo di sicurezza. -
SubnetID: se la ECSNetworkmodalità è
awsvpc
, specifica qui l'ID della sottorete.
Comandi di esempio
Questa sezione include AWS CloudFormation comandi di esempio per installare Container Insights con il monitoraggio Prometheus in vari scenari.
Crea uno AWS CloudFormation stack per un cluster Amazon ECS in modalità di rete bridge
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}
Crea uno AWS CloudFormation stack per un cluster Amazon ECS in modalità rete host
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}
Crea uno AWS CloudFormation stack per un cluster Amazon ECS in modalità di rete 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}
Crea uno AWS CloudFormation stack per un cluster Fargate in modalità di rete 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 risorse create dallo stack AWS CloudFormation
La tabella seguente elenca le AWS risorse che vengono create quando si utilizza AWS CloudFormation per configurare il monitoraggio di Container Insights con Prometheus su un cluster Amazon ECS.
Tipo di risorsa | Nome risorsa | Commenti |
---|---|---|
AWS::SSM::Parameter |
AmazonCloudWatch- CWAgent Config-$ -$ -$ |
Questo è l' CloudWatch agente con la definizione predefinita del formato metrico incorporato App Mesh e Java/JMX. |
AWS::SSM::Parameter |
AmazonCloudWatch-PrometheusConfigName-$ |
Questa è la configurazione di scraping di Prometheus. |
AWS::IAM::Role |
$ECS_TASK_ROLE_NAME. |
Il ruolo dell'attività di Amazon ECS. Questo viene creato solo se è stato specificato |
AWS::IAM::Role |
${ECS_EXECUTION_ROLE_NAME} |
Ruolo per l'esecuzione dell'attività Amazon ECS. Questo viene creato solo se è stato specificato |
AWS::ECS::TaskDefinition |
|
|
AWS::ECS::Service |
cwagent-prometheus-replica-service-$ |
Eliminazione dello AWS CloudFormation stack per l' CloudWatch agente con il monitoraggio di Prometheus
Per eliminare l' CloudWatch agente da un cluster Amazon ECS, inserisci questi comandi.
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}