Envio de logs do Amazon ECS para um serviço da AWS ou para uma AWS Partner - Amazon Elastic Container Service

Envio de logs do Amazon ECS para um serviço da AWS ou para uma AWS Partner

É possível usar o FireLens para Amazon ECS para usar parâmetros de definição de tarefa para encaminhar logs para um serviço da AWS ou um destino da AWS Partner Network (APN) para o armazenamento e a análise de log. O AWS Partner Network é uma comunidade global de parceiros que utiliza programas, experiência e recursos para criar, comercializar e vender ofertas aos clientes. Para obter mais informações, consulte AWS Partner. O FireLens funciona com o Fluentd e o Fluent Bit. Fornecemos a imagem da AWS for Fluent Bit, ou é possível usar sua própria imagem do Fluentd ou Fluent Bit.

Considere o seguinte ao usar o FireLens para Amazon ECS:

  • Recomendamos adicionar my_service_ ao nome do contêiner de log para distinguir facilmente os nomes dos contêineres no console.

  • Por padrão, o Amazon ECS adiciona uma dependência de ordem inicial de contêiner entre os contêineres da aplicação e o contêiner do FireLens. Quando você especifica uma ordem de contêiner entre os contêineres da aplicação e o contêiner do FireLens, a ordem inicial padrão do contêiner é substituída.

  • O FireLens para Amazon ECS é compatível com tarefas hospedadas no AWS Fargate no Linux e no Amazon EC2 no Linux. Os contêineres do Windows não são compatíveis com o FireLens.

    Para obter informações sobre como configurar o log centralizado para contêineres do Windows, consulte Centralized logging for Windows containers on Amazon ECS using Fluent Bit (Logs centralizados para contêineres do Windows no Amazon ECS usando o FluentBit).

  • É possível usar modelos do AWS CloudFormation para configurar o FireLens para o Amazon ECS. Para obter mais informações, consulte AWS::ECS::TaskDefinition FirelensConfiguration no Guia do usuário do AWS CloudFormation

  • O FireLens escuta na porta 24224. Portanto, para garantir que o roteador de log do FireLens não seja acessível fora da tarefa, você não deve permitir o tráfego de entrada na porta 24224 no grupo de segurança que a tarefa usa. Para as tarefas que usam o modo de rede awsvpc esse é o grupo de segurança associado à tarefa. Para as tarefas que usam o modo de rede host esse é o grupo de segurança associado à instância do Amazon EC2 que hospeda a tarefa. Para as tarefas que usam o modo de rede bridge, não crie qualquer mapeamento de porta que use porta 24224.

  • Para tarefas que usam o modo de rede bridge, o contêiner com a configuração do FireLens deve ser iniciado antes que um contêiner de aplicativo que dependa dele seja iniciado. Para controlar a ordem inicial dos contêineres, use as condições de dependência na definição de tarefa. Para ter mais informações, consulte Dependência de contêiner.

    nota

    Se você usar parâmetros de condição de dependência em definições de contêiner com uma configuração do FireLens, verifique se cada contêiner tem um requisito de condição START ou HEALTHY.

  • Por padrão, o FireLens adiciona o nome de definição de cluster e o nome do recurso da Amazon (ARN) do cluster como chaves de metadados aos seus logs de contêiner stdout/stderr. O exemplo a seguir é do formato de metadados.

    "ecs_cluster": "cluster-name", "ecs_task_arn": "arn:aws:ecs:region:111122223333:task/cluster-name/f2ad7dba413f45ddb4EXAMPLE", "ecs_task_definition": "task-def-name:revision",

    Se não quiser os metadados nos seus logs, defina enable-ecs-log-metadata como falsena seção firelensConfiguration da definição de tarefa.

    "firelensConfiguration":{ "type":"fluentbit", "options":{ "enable-ecs-log-metadata":"false", "config-file-type":"file", "config-file-value":"/extra.conf" }

Para usar esse recurso, é necessário criar uma função do IAM para suas tarefas que forneça as permissões necessárias para usar todos os serviços da AWS necessários para as tarefas. Por exemplo, se um contêiner estiver encaminhando logs para o Firehose, a tarefa exigirá permissão para chamar a API firehose:PutRecordBatch. Para obter mais informações, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

Além disso, a tarefa pode requerer o perfil de execução de tarefas do Amazon ECS nas condições apresentadas a seguir. Para ter mais informações, consulte Função do IAM de execução de tarefas do Amazon ECS.

  • Se a tarefa for hospedada no Fargate e você estiver extraindo imagens de contêiner do Amazon ECR ou fazendo referência a dados sigilosos do AWS Secrets Manager na sua configuração de log, deverá incluir a função do IAM de execução de tarefas.

  • Ao usar um arquivo de configuração personalizado hospedado no Amazon S3, o perfil do IAM de execução de tarefas deve incluir a permissão s3:GetObject.

Para obter informações sobre como usar vários arquivos de configuração com o Amazon ECS, incluindo arquivos hospedados por você ou arquivos no Amazon S3, consulte Init process for Fluent Bit on ECS, multi-config support.