

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à.

# Installa l' CloudWatch agente con la raccolta di metriche Prometheus sui cluster Amazon ECS
<a name="ContainerInsights-Prometheus-install-ECS"></a>

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
<a name="ContainerInsights-Prometheus-Setup-ECS-IAM"></a>

Sono necessari due ruoli IAM per la definizione delle attività dell'agente. CloudWatch Se specifichi **CreateIAMRoles=True** nello 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' CloudWatchagente utilizza questo ruolo. Deve includere la **CloudWatchAgentServerPolicy**policy 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 **CloudWatchAgentServerPolicy**le policy. Se si desidera archiviare dati più riservati utilizzabili da Amazon ECS, consulta [Specifica dei dati sensibili](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) per ulteriori informazioni.

## Installa l' CloudWatch agente con il monitoraggio Prometheus utilizzando CloudFormation
<a name="ContainerInsights-Prometheus-Setup-ECS-CFN"></a>

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 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. Specifica **False** 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 specificato **False** **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 specificato **False** **Create IAMRoles**, questo specifica il ruolo esistente da utilizzare come ruolo di esecuzione delle attività di Amazon ECS. 
+ **ECSNetworkModalità**: se utilizzi il tipo di avvio EC2, specifica qui la modalità di rete. Deve essere **bridge** o **host**.
+ **ECSLaunchTipo**: specifica **fargate** o**EC2**.
+ **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
<a name="ContainerInsights-Prometheus-Setup-ECS-CFNcommands"></a>

Questa sezione include CloudFormation comandi di esempio per installare Container Insights con il monitoraggio Prometheus in vari scenari.

**Crea uno 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 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 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 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 CloudFormation
<a name="ContainerInsights-Prometheus-Setup-ECS-resources"></a>

La tabella seguente elenca le AWS risorse che vengono create quando si utilizza 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-$ -$ -$ {{ECS\_CLUSTER\_NAME}} {{ECS\_LAUNCH\_TYPE}} {{ECS\_NETWORK\_MODE}} | Questo è l' CloudWatch agente con l'App Mesh predefinita e la definizione del formato metrico Java/JMX incorporato. | 
| AWS::SSM::Parameter | AmazonCloudWatch-PrometheusConfigName-${{ECS\_CLUSTER\_NAME}}-${{ECS\_LAUNCH\_TYPE}}-${{ECS\_NETWORK\_MODE}} | 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 **True** per `CREATE_IAM_ROLES`. | 
| AWS::IAM::Role | **${ECS\_EXECUTION\_ROLE\_NAME}**  | Ruolo per l'esecuzione dell'attività Amazon ECS. Questo viene creato solo se è stato specificato **True** per `CREATE_IAM_ROLES`. | 
| AWS::ECS::TaskDefinition | cwagent-prometheus-$ -$ {{ECS\_CLUSTER\_NAME}} -$ {{ECS\_LAUNCH\_TYPE}} {{ECS\_NETWORK\_MODE}}  |   | 
| AWS::ECS::Service | cwagent-prometheus-replica-service-${{ECS\_LAUNCH\_TYPE}}-${{ECS\_NETWORK\_MODE}} |   | 

### Eliminazione dello CloudFormation stack per l' CloudWatch agente con il monitoraggio di Prometheus
<a name="ContainerInsights-Prometheus-ECS-delete"></a>

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}
```