

# Envio de logs do Amazon ECS para o CloudWatch
<a name="using_awslogs"></a>

É possível configurar os contêineres das tarefas para enviar informações de log ao CloudWatch Logs. Se estiver usando o Fargate para suas tarefas, você poderá visualizar os logs dos seus contêineres. Se você estiver usando o EC2, poderá visualizar diferentes logs de contêineres em um local conveniente e evitar que esses logs ocupem espaço em disco nas instâncias de contêiner. 

**nota**  
O tipo de informações registradas em log pelos contêineres em sua tarefa depende principalmente do comando `ENTRYPOINT`. Por padrão, os logs capturados mostram a saída do comando que você normalmente veria em um terminal interativo, se executasse o contêiner localmente, que são os fluxos de E/S `STDOUT` e `STDERR`. O driver de log `awslogs` simplesmente envia esses logs do Docker para o CloudWatch Logs. Para obter mais informações sobre como os logs do Docker são processados, incluindo maneiras alternativas de capturar fluxos ou dados de arquivos diferentes, consulte [Visualizar logs de um contêiner ou serviço](https://docs.docker.com/engine/logging/) na documentação do Docker.

Para enviar logs do sistema de instâncias de contêiner do Amazon ECS para o CloudWatch Logs, consulte [Monitoração de arquivos de log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html) e [Cotas de logs do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html) no *Guia do usuário do Amazon CloudWatch Logs*.

## Fargate
<a name="enable_awslogs"></a>

Se você estiver usando o Fargate para suas tarefas, precisará adicionar os parâmetros `logConfiguration` necessários à sua definição de tarefa para ativar o driver de log `awslogs`. Para obter mais informações, consulte [Exemplo de definição de tarefa do Amazon ECS: rotear logs para o CloudWatch](specify-log-config.md).

No contêiner do Windows no Fargate, execute uma das seguintes opções quando qualquer um dos parâmetros de definição de tarefa tiver caracteres especiais, como :, `& \ < > ^ |`:
+ Adicione um escape (`\`) com aspas duplas em torno de toda a string do parâmetro

  Exemplo

  ```
  "awslogs-multiline-pattern": "\"^[|DEBUG|INFO|WARNING|ERROR\"",
  ```
+ Adicione um caractere de escape (`^`) em torno de cada caractere especial

  Exemplo

  ```
  "awslogs-multiline-pattern": "^^[^|DEBUG^|INFO^|WARNING^|ERROR",
  ```

## EC2
<a name="ec2-considerations"></a>

Se você estiver usando o EC2 para suas tarefas e quer ativar o driver de log `awslogs`, suas instâncias de contêiner do Amazon ECS precisarão pelo menos da versão 1.9.0 do agente de contêiner. Para obter informações sobre como verificar a versão do agente e atualizar para a versão mais recente, consulte [Atualizar o agente de contêiner do Amazon ECS](ecs-agent-update.md).

**nota**  
Você deve usar uma AMI otimizada para o Amazon ECS ou uma AMI personalizada com pelo menos a versão `1.9.0-1` do pacote `ecs-init`. Ao usar uma AMI personalizada, você deve especificar que o driver de registro em log `awslogs` está disponível na instância do Amazon EC2 ao iniciar o agente, usando a variável de ambiente a seguir na instrução **docker run** ou arquivo de variável de ambiente.  

```
ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","{{awslogs}}"]
```

As instâncias de contêiner do Amazon ECS também exigem permissão de `logs:CreateLogStream` e `logs:PutLogEvents` na função do IAM com a qual você inicia as instâncias de contêiner. Caso você tenha criado a função de instância de contêiner do Amazon ECS antes que o suporte ao driver de log `awslogs` tenha sido habilitado no Amazon ECS, talvez seja necessário adicionar essa permissão. A `ecsTaskExecutionRole` é usada quando é atribuída à tarefa e provavelmente contém as permissões corretas. Para obter informações sobre o perfil de execução de tarefas, consulte [Função do IAM de execução de tarefas do Amazon ECS](task_execution_IAM_role.md). Se as instâncias de contêiner usarem a política do IAM gerenciada para instâncias de contêiner, as instâncias de contêiner terão provavelmente as permissões corretas. Para obter informações sobre a política do IAM gerenciada para instâncias de contêiner, consulte [Função do IAM de instância de contêiner do Amazon ECS](instance_IAM_role.md).