Salta al contenuto

Perché i log di un container Amazon ECS non vengono consegnati a CloudWatch Logs?

4 minuti di lettura
0

I log del mio container Amazon Elastic Container Service (Amazon ECS) non vengono visualizzati in Amazon CloudWatch Logs come previsto.

Risoluzione

Modifica il driver di log awslogs

Aggiungi il parametro logConfiguration al driver di log awslogs nella definizione dell'attività. Per le attività Amazon ECS con più container, configura il parametro logConfiguration per ogni container.

Se hai un tipo di avvio Amazon Elastic Compute Cloud (Amazon EC2), aggiorna l'istanza di container Amazon ECS alla versione 1.9.0 o successiva.

Se l'istanza di container non utilizza un'Amazon Machine Image (AMI) ottimizzata per Amazon ECS, esegui questa variabile di ambiente per avviare l'agente di container:

ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'

Nota: specifica il driver di log awslogs nell'istanza di container.

Per ulteriori informazioni, consulta Installazione dell'agente di container Amazon ECS.

Aggiungi le autorizzazioni necessarie per i ruoli IAM

Tipo di avvio AWS Fargate

Collega la policy AmazonECSTaskExecutionRolePolicy al ruolo AWS Identity and Access Management (AWS IAM) di esecuzione dell'attività Amazon ECS. La policy include le autorizzazioni logs:CreateLogStream e logs:PutLogEvents necessarie. Oppure crea una policy IAM personalizzata e includi le autorizzazioni necessarie.

Attività con tipo avvio Amazon EC2 senza ruolo IAM di esecuzione dell'attività

Collega la policy AmazonEC2ContainerServiceforEC2Role al ruolo IAM dell'istanza di container. La policy contiene le autorizzazioni logs:CreateLogStream e logs:PutLogEvents necessarie. Oppure crea una policy IAM personalizzata e includi le autorizzazioni necessarie.

Attività con tipo avvio Amazon EC2 con ruolo IAM di esecuzione dell'attività

Per la configurazione dell'agente di container, aggiorna il parametro ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE impostandolo su true.

Nota: il valore predefinito del parametro dell'agente di container è true nelle AMI ottimizzate per Amazon ECS versione 1.16.0-1 o successive e false in Windows.

Controlla la definizione della configurazione dell'attività

Se il gruppo di log specificato nella definizione dell'attività non esiste in CloudWatch Logs, i log non possono essere consegnati. Il driver di log awslogs non crea automaticamente il gruppo di log a meno che non imposti awslogs-create-group su true.

Per verificare l'esistenza del gruppo di log, completa i passaggi seguenti:

  1. Apri la console CloudWatch.
  2. Nel pannello di navigazione, seleziona Log, quindi scegli Gruppi di log.
  3. Cerca il nome del gruppo di log specificato nella definizione dell'attività.
  4. Se il gruppo di log non esiste, scegli Crea gruppo di log.
  5. Inserisci il nome del gruppo di log che corrisponde alla definizione dell'attività.

In alternativa, aggiungi "awslogs-create-group": "true" al blocco options in logConfiguration per la definizione dell'attività in modo da consentire al driver di log di creare automaticamente il gruppo di log.

Nota: la policy IAM deve includere l'autorizzazione logs:CreateLogGroup prima di utilizzare awslogs-create-group. Per ulteriori informazioni, consulta Ruolo IAM di esecuzione di attività Amazon ECS.

Controlla la configurazione di rete

Se l'attività utilizza il driver di log awslogs in un Amazon Virtual Private Cloud (Amazon VPC) senza gateway Internet, crea un endpoint VPC di interfaccia per CloudWatch Logs. Scegli com.amazonaws.Region.logs come servizio.

Verifica la configurazione a livello di log del container

Il driver di log awslogs passa i flussi STDOUT e STDERR I/O da Docker a CloudWatch Logs.

Per configurare i log, aggiorna l'applicazione in modo che invii i log ai flussi STDOUT e STDERR I/O. Quindi, durante la creazione del container, configura il livello di log dell'applicazione tramite una variabile di ambiente o un file di configurazione.

Informazioni correlate

Strumenti di monitoraggio per Amazon ECS

Come posso risolvere i problemi relativi ai log del container mancanti per Amazon ECS o Amazon EKS?

Preventing log loss with non-blocking mode in the AWSLogs container log driver (Come prevenire la perdita di log con la modalità non bloccante nel driver di log del container AWSlogs)

PutAccountSetting

AWS UFFICIALEAggiornata 7 mesi fa