

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

# Registrazione e monitoraggio su Amazon ECS
<a name="amazon-ecs-logging-monitoring"></a>

Amazon Elastic Container Service (Amazon ECS) [offre due tipi di avvio](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/launch_types.html) per l'esecuzione di container e che determinano il tipo di infrastruttura che ospita attività e servizi; questi tipi di avvio sono AWS Fargate Amazon EC2. Entrambi i tipi di avvio si integrano CloudWatch , ma le configurazioni e il supporto variano. 

Le seguenti sezioni ti aiutano a capire come utilizzare CloudWatch per la registrazione e il monitoraggio su Amazon ECS.

**Topics**
+ [Configurazione CloudWatch con un tipo di avvio EC2](configure-cloudwatch-ec2-launch-type.md)
+ [Registri dei container Amazon ECS per i tipi di lancio EC2 e Fargate](ec2-fargate-logs.md)
+ [Utilizzo del routing di log personalizzato con FireLens per Amazon ECS](firelens-custom-log-routing.md)
+ [Metriche per Amazon ECS](ecs-metrics.md)

# Configurazione CloudWatch con un tipo di avvio EC2
<a name="configure-cloudwatch-ec2-launch-type"></a>

Con un tipo di lancio EC2, esegui il provisioning di un cluster Amazon ECS di istanze EC2 che utilizzano l' CloudWatchagente per la registrazione e il monitoraggio. Un'AMI ottimizzata per Amazon ECS viene preinstallata con l'[agente container Amazon ECS](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/ECS_agent.html) e fornisce CloudWatch parametri per il cluster Amazon ECS. 

Questi parametri predefiniti sono inclusi nel costo di Amazon ECS, ma la configurazione predefinita per Amazon ECS non monitora i file di log o parametri aggiuntivi (ad esempio, spazio libero su disco). Puoi utilizzare il Console di gestione AWS per effettuare il provisioning di un cluster Amazon ECS con il tipo di avvio EC2, in modo da creare uno CloudFormation stack che distribuisce un Amazon EC2 Auto Scaling gruppo con una configurazione di avvio. Tuttavia, questo approccio significa che non è possibile scegliere un'AMI personalizzata o personalizzare la configurazione di avvio con impostazioni diverse o script di avvio aggiuntivi.

Per monitorare log e parametri aggiuntivi, devi installare l' CloudWatch agente sulle tue istanze di container Amazon ECS. Puoi utilizzare l'approccio di installazione per le istanze EC2 descritto nella sezione di questa guida. [Installazione dell' CloudWatch agente utilizzando Systems Manager Distributor e State Manager](install-cloudwatch-systems-manager.md) Tuttavia, l'AMI Amazon ECS non include l'agente Systems Manager richiesto. È necessario utilizzare una configurazione di avvio personalizzata con uno script di dati utente che installi l'agente Systems Manager quando si crea il cluster Amazon ECS. Ciò consente alle istanze del contenitore di registrarsi con Systems Manager e applicare le associazioni di State Manager per installare, configurare e aggiornare l' CloudWatch agente. Quando State Manager esegue e aggiorna la configurazione CloudWatch dell'agente, applica anche la configurazione standardizzata a livello di sistema per Amazon CloudWatch EC2. Puoi anche archiviare CloudWatch configurazioni standardizzate per Amazon ECS nel bucket S3 per la tua CloudWatch configurazione e applicarle automaticamente con State Manager. 

È necessario assicurarsi che il ruolo o il profilo dell'istanza IAM applicato alle istanze di container Amazon ECS includa i requisiti `CloudWatchAgentServerPolicy` e `AmazonSSMManagedInstanceCore` le policy. Puoi utilizzare il modello [ecs\$1cluster\$1with\$1cloudwatch\$1linux.yaml per effettuare il provisioning di cluster Amazon](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/examples/ecs/ecs_cluster_with_cloudwatch_linux.yaml) CloudFormation ECS basati su Linux. Questo modello crea un cluster Amazon ECS con una configurazione di avvio personalizzata che installa Systems Manager e distribuisce una CloudWatch configurazione personalizzata per monitorare i file di registro specifici di Amazon ECS.

È necessario acquisire i seguenti log per le istanze di container Amazon ECS, oltre ai log delle istanze EC2 standard:
+ **Output di avvio dell'agente Amazon ECS** — `/var/log/ecs/ecs-init.log`
+ **Output dell'agente Amazon ECS**: `/var/log/ecs/ecs-agent.log`
+ Registro delle **richieste del provider di credenziali IAM**: `/var/log/ecs/audit.log`

Per ulteriori informazioni sul livello di output, sulla formattazione e sulle opzioni di configurazione aggiuntive, consulta le [posizioni dei file di log di Amazon ECS nella documentazione](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/logs.html) di Amazon ECS.

**Importante**  
 L'installazione o la configurazione dell'agente non è richiesta per il tipo di avvio Fargate perché non si eseguono o gestiscono istanze di container EC2.

Le istanze di container Amazon ECS devono utilizzare l'agente contenitore AMIs e ottimizzato per Amazon ECS più recente. AWS archivia i parametri pubblici di Systems Manager Parameter Store con informazioni AMI ottimizzate per Amazon ECS, incluso l'ID AMI. Puoi recuperare l'AMI ottimizzata più recente da Parameter Store utilizzando il [formato dei parametri Parameter Store](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/retrieve-ecs-optimized_AMI.html) per Amazon ECS ottimizzato. AMIs Puoi fare riferimento al parametro pubblico Parameter Store che fa riferimento all'AMI più recente o a una versione AMI specifica nei tuoi CloudFormation modelli.

AWS fornisce gli stessi parametri Parameter Store in ogni regione supportata. Ciò significa che i CloudFormation modelli che fanno riferimento a questi parametri possono essere riutilizzati tra regioni e account senza che l'AMI venga aggiornato. Puoi controllare la distribuzione di una nuova AMI Amazon ECS nella tua organizzazione facendo riferimento AMIs a una versione specifica, che ti aiuta a prevenire l'uso di una nuova AMI ottimizzata per Amazon ECS fino a quando non la testerai. 

# Registri dei container Amazon ECS per i tipi di lancio EC2 e Fargate
<a name="ec2-fargate-logs"></a>

Amazon ECS utilizza una definizione di attività per distribuire e gestire contenitori come attività e servizi. Configura i contenitori che desideri avviare nel tuo cluster Amazon ECS all'interno di una definizione di attività. La registrazione è configurata con un driver di registro a livello di contenitore. Diverse opzioni di driver di registro forniscono ai contenitori diversi sistemi di registrazione (ad esempio,`awslogs`,`fluentd`,,`gelf`,`json-file`, `journald` `logentries` `splunk``syslog`, o`awsfirelens`) a seconda che si utilizzi il tipo di avvio EC2 o Fargate. Il tipo di avvio Fargate fornisce un sottoinsieme delle seguenti opzioni del driver di registro:`awslogs`,, `splunk` e. `awsfirelens` AWS fornisce il driver di `awslogs` registro per acquisire e trasmettere l'output del contenitore a CloudWatch Logs. Le impostazioni del driver di registro consentono di personalizzare il gruppo di log, la regione e il prefisso del flusso di log insieme a molte altre opzioni.

La denominazione predefinita per i gruppi di log e l'opzione utilizzata dall'opzione **Configurazione automatica dei CloudWatch registri su è.** Console di gestione AWS `/ecs/<task_name>` Il nome del flusso di log utilizzato da Amazon ECS ha il `<awslogs-stream-prefix>/<container_name>/<task_id>` formato. Ti consigliamo di utilizzare un nome di gruppo che raggruppi i log in base ai requisiti dell'organizzazione. Nella tabella seguente, gli `image_name` e `image_tag` sono inclusi nel nome del flusso di log.


|  |  | 
| --- |--- |
| Nome del gruppo di log | /<Business unit>/<Project or application name>/<Environment>/<Cluster name>/<Task name> | 
| Prefisso del nome del flusso di registro |  `/<image_name>/<image_tag>`  | 

Queste informazioni sono disponibili anche nella definizione dell'attività. Tuttavia, le attività vengono aggiornate regolarmente con nuove revisioni, il che significa che la definizione dell'attività potrebbe aver utilizzato un `image_name` e `image_tag` diverso da quelli attualmente utilizzati dalla definizione dell'attività. Per ulteriori informazioni e suggerimenti di denominazione, consulta la [Pianificazione dell' CloudWatch implementazione](planning-cloudwatch-deployment.md) sezione di questa guida.

Se si utilizza un CI/CD) pipeline or automated process, you can create a new task definition revision for your application with each new Docker image build. For example, you can include the Docker image name, image tag, GitHub revision, or other important information in your task definition revision and logging configuration as a part of your CI/CD processo di integrazione e distribuzione continua ().

# Utilizzo del routing di log personalizzato con FireLens per Amazon ECS
<a name="firelens-custom-log-routing"></a>

FireLens per Amazon ECS ti aiuta a indirizzare i log verso [Fluentd](https://www.fluentd.org/) o [Fluent Bit](https://docs.fluentbit.io/manual) in modo da poter inviare direttamente i log dei container ai AWS servizi e alle destinazioni AWS Partner Network (APN), oltre a supportare la spedizione dei log a Logs. CloudWatch 

AWS fornisce un'[immagine Docker per Fluent Bit](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/firelens-using-fluentbit.html) con plugin preinstallati per Amazon Kinesis Data Streams, Amazon Data Firehose e Logs. CloudWatch Puoi utilizzare il driver di registro anziché il driver di FireLens registro per una maggiore personalizzazione e `awslogs` controllo dei log inviati a Logs. CloudWatch 

Ad esempio, è possibile utilizzare il driver di FireLens registro per controllare l'output in formato di registro. Ciò significa che i CloudWatch log di un contenitore Amazon ECS vengono formattati automaticamente come oggetti JSON e includono proprietà in formato JSON per,,, e. `ecs_cluster` `ecs_task_arn` `ecs_task_definition` `container_id` `container_name` `ec2_instance_id` L'host fluente viene esposto al contenitore tramite le variabili di ambiente e quando si specifica il `FLUENT_HOST` driver. `FLUENT_PORT` `awsfirelens` Ciò significa che puoi accedere direttamente al log router dal tuo codice utilizzando le librerie Fluent Logger. Ad esempio, l'applicazione potrebbe includere la `fluent-logger-python` libreria per accedere a Fluent Bit utilizzando i valori disponibili nelle variabili di ambiente.

Se scegli di utilizzarlo FireLens per Amazon ECS, puoi configurare le stesse impostazioni del driver di `awslogs` registro [e utilizzare anche altre impostazioni](https://github.com/aws/amazon-cloudwatch-logs-for-fluent-bit). Ad esempio, puoi utilizzare la definizione di task [ecs-task-nginx-firelenseAmazon ECS .json](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/examples/ecs/ecs-task-nginx-firelense.json) che avvia un server NGINX configurato per l'uso per la registrazione. FireLens CloudWatch Lancia anche un contenitore FireLens Fluent Bit come sidecar per la registrazione. 

# Metriche per Amazon ECS
<a name="ecs-metrics"></a>

[Amazon ECS fornisce CloudWatch metriche standard](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/cloudwatch-metrics.html) (ad esempio, utilizzo della CPU e della memoria) per i tipi di lancio di EC2 e Fargate a livello di cluster e di servizio con l'agente container Amazon ECS. Puoi anche acquisire metriche per i tuoi servizi, attività e contenitori utilizzando CloudWatch Container Insights o acquisire parametri personalizzati dei contenitori utilizzando il formato metrico incorporato.

Container Insights è una CloudWatch funzionalità che fornisce metriche come l'utilizzo della CPU, l'utilizzo della memoria, il traffico di rete e lo storage a livello di cluster, istanza di contenitore, servizio e attività. Container Insights crea anche dashboard automatici che consentono di analizzare servizi e attività e visualizzare l'utilizzo medio della memoria o della CPU a livello di contenitore. Container Insights pubblica metriche personalizzate nello spazio dei [nomi `ECS/ContainerInsights` personalizzato](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/cloudwatch-metrics.html) che puoi utilizzare per la creazione di grafici, allarmi e dashboard.

Puoi attivare i parametri di Container Insight abilitando Container Insights per ogni singolo cluster Amazon ECS. Se desideri visualizzare anche i parametri a livello di istanza del contenitore, puoi [avviare l' CloudWatch agente come contenitore daemon sul tuo cluster Amazon ECS](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-instancelevel.html). Puoi utilizzare il CloudFormation modello [cwagent-ecs-instance-metric-cfn.yaml](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/examples/ecs/cwagent-ecs-instance-metric-cfn.yaml) per distribuire l'agente CloudWatch come servizio Amazon ECS. È importante sottolineare che questo esempio presuppone che tu abbia creato una configurazione dell' CloudWatchagente personalizzata appropriata e l'abbia archiviata in Parameter Store con la chiave. `ecs-cwagent-daemon-service` 

L'[CloudWatchagente](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html) distribuito come contenitore daemon per CloudWatch Container Insights include parametri aggiuntivi su disco, memoria e CPU come `instance_cpu_reserved_capacity` e `instance_memory_reserved_capacity` con le dimensioni,. `ClusterName` `ContainerInstanceId` `InstanceId` Le metriche a livello di istanza del contenitore vengono implementate da Container Insights utilizzando il formato metrico incorporato. CloudWatch Puoi configurare parametri aggiuntivi a livello di sistema per le tue istanze di container Amazon ECS utilizzando l'approccio descritto nella sezione di questa guida. [Configura State Manager and Distributor per CloudWatch la distribuzione e la configurazione degli agenti](install-cloudwatch-systems-manager.md#set-up-systems-manager-distributor) 

## Creazione di parametri applicativi personalizzati in Amazon ECS
<a name="ecs-metrics-applications"></a>

Puoi creare parametri personalizzati per le tue applicazioni utilizzando il formato metrico [CloudWatchincorporato](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html). Il driver di `awslogs` registro può interpretare le istruzioni in formato metrico CloudWatch incorporato.

La variabile di `CW_CONFIG_CONTENT` ambiente nell'esempio seguente è impostata sul contenuto del parametro `cwagentconfig` Systems Manager Parameter Store. È possibile eseguire l'agente con questa configurazione di base per configurarlo come endpoint in formato metrico incorporato. Tuttavia, non è più necessario.

```
  {
  "logs": {
    "metrics_collected": {
      "emf": { }
    }
  }
}
```

Se disponi di distribuzioni Amazon ECS su più account e regioni, puoi utilizzare un Gestione dei segreti AWS segreto per archiviare la CloudWatch configurazione e configurare la policy segreta per condividerla con la tua organizzazione. Puoi utilizzare l'opzione secrets nella definizione dell'attività per impostare la variabile. `CW_CONFIG_CONTENT` 

Puoi utilizzare le [librerie di formati metrici incorporati open source AWS](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Libraries.html) fornite nell'applicazione e specificare la variabile di `AWS_EMF_AGENT_ENDPOINT` ambiente da connettere al contenitore laterale dell' CloudWatch agente che funge da endpoint in formato metrico incorporato. Ad esempio, puoi utilizzare l'applicazione Python di esempio [ecs\$1cw\$1emf\$1example](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/tree/main/examples/ecs/ecs_cw_emf_example) per inviare metriche in formato metrico incorporato a un contenitore sidecar dell'agente configurato come endpoint in formato metrico incorporato. CloudWatch 

[Il plug-in Fluent Bit per può essere utilizzato anche per inviare messaggi in formato metrico incorporato.](https://github.com/aws/amazon-cloudwatch-logs-for-fluent-bit) CloudWatch Puoi anche utilizzare l'applicazione Python di esempio [ecs\$1firelense\$1emf\$1example](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/tree/main/examples/ecs/ecs_firelense_emf_example) per inviare metriche in formato metrico incorporato a un contenitore sidecar Firelens for Amazon ECS.

[https://docs.aws.amazon.com//AmazonCloudWatch/latest/APIReference/Welcome.html](https://docs.aws.amazon.com//AmazonCloudWatch/latest/APIReference/Welcome.html) Non consigliamo questo approccio a meno che tu non abbia un caso d'uso specifico, perché aggiunge un sovraccarico di manutenzione e gestione al codice.