Ir para o conteúdo

Por que meus logs de contêiner do Amazon ECS não são entregues ao CloudWatch Logs?

3 minuto de leitura
0

Meus logs de contêiner do Amazon Elastic Container Service (Amazon ECS) não aparecem no Amazon CloudWatch Logs conforme o esperado.

Resolução

Modifique o driver de log awslogs

Adicione o parâmetro logConfiguration no driver de log awslogs na sua definição de tarefa. Para tarefas do Amazon ECS com vários contêineres, configure o parâmetro logConfiguration para cada contêiner.

Se você tiver um tipo de inicialização do Amazon Elastic Compute Cloud (Amazon EC2), atualize sua instância de contêiner do Amazon ECS para a versão 1.9.0 ou posterior.

Se sua instância de contêiner não usa a imagem de máquina da Amazon (AMI) otimizada para Amazon ECS, execute a seguinte variável de ambiente para iniciar o atendente de contêiner:

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

Observação: Especifique o driver de log awslogs na instância de contêiner.

Para obter mais informações, consulte Instalar o agente de contêiner do Amazon ECS.

Adicione as permissões de perfil do IAM necessárias

Tipos de inicialização do AWS Fargate

Anexe a política AmazonECSTaskExecutionRolePolicy ao seu perfil do AWS Identity and Access Management (AWS IAM) de execução de tarefas do Amazon ECS. A política inclui as permissões logs:CreateLogStream e logs:PutLogEvents necessárias. Ou crie uma política do IAM personalizada e inclua as permissões necessárias.

Tarefas do tipo de lançamento do Amazon EC2 sem perfil do IAM de execução de tarefas

Anexe a política AmazonEC2ContainerServiceForEC2Role ao perfil do IAM da instância de contêiner. A política contém as permissões logs:CreateLogStream e logs:PutLogEvents necessárias. Ou crie uma política do IAM personalizada e inclua as permissões necessárias.

Tarefas do tipo de lançamento do Amazon EC2 com perfil do IAM de execução de tarefas

Para a configuração do atendente de contêiner, atualize o parâmetro ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE para verdadeiro.

Observação: O valor padrão do parâmetro do atendente de contêiner é verdadeiro nas AMIs otimizadas para Amazon ECS com a versão 1.16.0-1 ou posterior e falso no Windows.

Verifique a configuração de rede

Se sua tarefa usa o driver de log awslogs em uma Amazon Virtual Private Cloud (Amazon VPC) sem um gateway da internet, crie um endpoint da VPC de interface para o CloudWatch Logs. Escolha com.amazonaws.Region.logs como o serviço.

Verifique a configuração em nível de log do contêiner

O driver de log awslogs passa os fluxos STDOUT e STDERR I/O do Docker para o CloudWatch Logs.

Para configurar seus logs, atualize sua aplicação para enviar os logs aos fluxos STDOUT e STDERR I/O. Em seguida, durante a criação do contêiner, configure o nível de log da aplicação por meio de uma variável de ambiente ou de um arquivo de configuração.

Informações relacionadas

Ferramentas de monitoramento do Amazon ECS

How do I troubleshoot missing container logs for Amazon ECS or Amazon EKS? [Como soluciono problemas de logs de contêiner ausentes no Amazon ECS ou no Amazon EKS?]

Envio de logs do Amazon ECS para o CloudWatch

AWS OFICIALAtualizada há 4 meses