Usando o Elastic CloudWatch Beanstalk com o Amazon Logs - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando o Elastic CloudWatch Beanstalk com o Amazon Logs

Este tópico explica os recursos de monitoramento que o serviço Amazon CloudWatch Logs pode fornecer ao Elastic Beanstalk. Ele também orienta você na configuração e lista os locais dos registros de cada plataforma do Elastic Beanstalk.

A implementação de CloudWatch registros pode permitir que você realize as seguintes atividades de monitoramento:

  • Monitore e arquive seu aplicativo, sistema e arquivos de log personalizados do Elastic Beanstalk a partir das instâncias da EC2 Amazon de seus ambientes.

  • Configure alarmes que facilitem a reação a eventos específicos do fluxo de registros que seus filtros de métricas extraem.

O agente CloudWatch Logs instalado em cada EC2 instância da Amazon em seu ambiente publica pontos de dados métricos no CloudWatch serviço para cada grupo de log que você configura. Cada grupo de registros aplica seus próprios padrões de filtro para determinar quais eventos de fluxo de log devem ser enviados CloudWatch como pontos de dados. Os streams de log que pertencem ao mesmo grupo de log compartilham as mesmas configurações de retenção, monitoramento e controle de acesso. Você pode configurar o Elastic Beanstalk para transmitir automaticamente os registros CloudWatch para o serviço, conforme descrito em. Transmitir registros de instâncias para CloudWatch Logs Para obter mais informações sobre CloudWatch registros, incluindo terminologia e conceitos, consulte o Guia do usuário do Amazon CloudWatch Logs.

Além dos registros de instância, se você ativar a integridade aprimorada do seu ambiente, poderá configurar o ambiente para transmitir informações de integridade para o CloudWatch Logs. Consulte Fazer streaming de informações de integridade do ambiente do Elastic Beanstalk para o Amazon CloudWatch Logs.

Pré-requisitos para instanciar o streaming de registros para o Logs CloudWatch

Para habilitar o streaming de registros das EC2 instâncias da Amazon do seu ambiente para o CloudWatch Logs, você deve atender às seguintes condições.

  • Plataforma: esse recurso só está disponível em versões de plataforma lançadas a partir desta versão, portanto, se você estiver usando uma versão de plataforma anterior, atualize o ambiente para um atual.

  • Se você não tem a política gerenciada AWSElasticBeanstalkWebTierou o AWSElasticBeanstalkWorkerTierElastic Beanstalk em seu perfil de instância do Elastic Beanstalk, você deve adicionar o seguinte ao seu perfil para ativar esse recurso.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": [ "*" ] } ] }

Como o Elastic Beanstalk configura os registros CloudWatch

O Elastic Beanstalk CloudWatch instala um agente de log com as configurações padrão em cada instância criada. Saiba mais na Referência do CloudWatch Logs Agent.

Quando você ativa o streaming de registros de instâncias para o CloudWatch Logs, o Elastic Beanstalk envia arquivos de log das instâncias do seu ambiente para o Logs. CloudWatch Plataformas diferentes transmitem logs diferentes. A tabela a seguir lista os logs por plataforma.

Plataforma/ramificação da plataforma

Logs

Docker/

ramificação da plataforma: Docker em execução no Amazon Linux 2 de 64 bits

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/docker

  • /var/log/docker-events.log

  • /var/log/eb-docker/containers/ /stdouterr.log eb-current-app

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Docker/

Ramificação da plataforma: em ECS execução no Amazon Linux 2 de 64 bits

  • /var/log/docker-events.log

  • /var/log/ .log eb-ecs-mgr

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/ecs/ecs-agent.log

  • /var/log/ecs/ecs-init.log

Go

. NETCore no Linux

Java/ramificação da plataforma: Corretto em execução no Amazon Linux 2 de 64 bits

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/web.stdout.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Node.js

Python

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/web.stdout.log

  • /var/log/httpd/access_log

  • /var/log/httpd/error_log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Tomcat

PHP

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/httpd/access_log

  • /var/log/httpd/error_log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

. NETno Windows Server

  • C:\inetpub\logs\\ W3 LogFilesSVC1\ u_ex*.log

  • C:\Program Files\ Amazon\ElasticBeanstalk\ logs\ AWSDeployment .log

  • C:\Program Files\ Amazon\ElasticBeanstalk\ logs\ Hooks.log

Ruby

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/puma/puma.log

  • /var/log/web.stdout.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

nota

Em 18 de julho de 2022, o Elastic Beanstalk definiu o status de todas as filiais da plataforma baseadas no Amazon Linux () como descontinuadas. AMI AL1 Para obter mais informações sobre como migrar para uma ramificação da plataforma Amazon Linux 2023 atual e totalmente compatível, consulte Migrar a aplicação Linux do Elastic Beanstalk para o Amazon Linux 2023 ou Amazon Linux 2.

A tabela a seguir lista os arquivos de log transmitidos de instâncias em ramificações de plataforma baseadas no Amazon Linux AMI (antes do Amazon Linux 2), por plataforma.

Plataforma/ramificação da plataforma

Logs

Docker/

ramificação da plataforma: Docker em execução no Amazon Linux de 64 bits

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/docker-events.log

  • /var/log/docker

  • /var/log/nginx/access.log

  • /var/log/eb-docker/containers/ /stdouterr.log eb-current-app

Docker/

ramificação da plataforma: Docker de vários contêineres em execução no Amazon Linux de 64 bits

  • /var/log/eb-activity.log

  • /var/log/ecs/ecs-init.log

  • /var/log/ .log eb-ecs-mgr

  • /var/log/ecs/ecs-agent.log

  • /var/log/docker-events.log

Glassfish (Docker pré-configurado)

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/docker-events.log

  • /var/log/docker

  • /var/log/nginx/access.log

Go

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

Java/

ramificação da plataforma: Java 8 em execução no Amazon Linux de 64 bits

Ramificação da plataforma: Java 7 em execução no Amazon Linux de 64 bits

  • /var/log/eb-activity.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

  • /var/log/web-1.error.log

  • /var/log/web-1.log

Tomcat

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

  • /var/log/nginx/error_log

  • /var/log/nginx/access_log

Node.js

  • /var/log/eb-activity.log

  • /var/log/nodejs/nodejs.log

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

  • /var/log/httpd/error.log

  • /var/log/httpd/access.log

PHP

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

Python

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

  • /opt/python/log/supervisord.log

Ruby/

ramificação da plataforma: Puma com Ruby em execução no Amazon Linux de 64 bits

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/puma/puma.log

  • /var/log/nginx/access.log

Ruby/

ramificação da plataforma: Passenger com Ruby em execução no Amazon Linux de 64 bits

  • /var/log/eb-activity.log

  • /var/app/support/logs/passenger.log

  • /var/app/support/logs/access.log

  • /var/app/support/logs/error.log

O Elastic Beanstalk configura CloudWatch grupos de log em Logs para os vários arquivos de log que ele transmite. Para recuperar arquivos de log específicos do CloudWatch Logs, você precisa saber o nome do grupo de log correspondente. O esquema de nomenclatura do grupo de logs depende do sistema operacional da plataforma.

Para plataformas Linux, prefixe o local do arquivo de log na instância com /aws/elasticbeanstalk/environment_name para obter o nome do grupo de logs. Por exemplo, para recuperar o arquivo /var/log/nginx/error.log, especifique o grupo de logs /aws/elasticbeanstalk/environment_name/var/log/nginx/error.log.

Para plataformas Windows, consulte a tabela a seguir referente ao grupo de logs correspondente a cada arquivo de log.

Arquivo de log na instância

Grupo de logs

C:\Program Files\Amazon\ElasticBeanstalk\logs\AWSDeployment.log

/aws/elasticbeanstalk/<environment-name>/EBDeploy-Log

C:\Program Files\Amazon\ElasticBeanstalk\logs\Hooks.log

/aws/elasticbeanstalk/<environment-name>/EBHooks-Log

C:\inetpub\logs\LogFiles (todo o diretório)

/aws/elasticbeanstalk/<environment-name>/IIS-Log

Transmitir registros de instâncias para CloudWatch Logs

Você pode habilitar o streaming de CloudWatch logs da instância para o Logs usando o console do Elastic Beanstalk, CLI o EB ou as opções de configuração.

Antes de ativá-lo, configure IAM as permissões para uso com o agente do CloudWatch Logs. Você pode anexar a seguinte política personalizada ao perfil da instância atribuído a seu ambiente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ] }

Streaming de logs de instâncias usando o console do Elastic Beanstalk

Para transmitir os registros da instância para o CloudWatch Logs
  1. Abra o console do Elastic Beanstalk e, na lista Regiões, selecione sua. Região da AWS

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Updates, monitoring, and logging (Atualizações, monitoramento e logs), escolha Edit (Editar).

  5. Em Transmissão de log de instância para CloudWatch Logs:

    • Ative Log streaming (Streaming de logs).

    • Defina Retention (Retenção) com o número de dias para salvar os logs.

    • Selecione a configuração Lifecycle (Ciclo de vida) que determina se os logs devem ser salvos depois que o ambiente é encerrado.

  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Depois de ativar o streaming de logs, você poderá voltar para a categoria ou a página de configuração Software para encontrar o link Log Groups (Grupos de logs). Clique neste link para ver seus registros no CloudWatch console.

Streaming de registros de instâncias usando o EB CLI

Para habilitar o streaming de CloudWatch registros de instâncias para Logs usando o EBCLI, use o eb logs comando.

$ eb logs --cloudwatch-logs enable

Você também pode usar eb logs para recuperar registros do CloudWatch Logs. Você pode recuperar todos os logs de instância do ambiente ou usar as várias opções do comando para especificar subconjuntos de logs que devem ser recuperados. Por exemplo, o comando a seguir recupera o conjunto completo de logs de instância para seu ambiente e salva todos eles em um diretório em .elasticbeanstalk/logs.

$ eb logs --all

Especificamente, a opção --log-group permite que você recupere logs da instância de um grupo de logs específico, correspondente a um arquivo de log específico na instância. Para fazer isso, você precisa saber o nome do grupo de logs que corresponde ao arquivo de log que você deseja recuperar. Você pode encontrar essas informações em Como o Elastic Beanstalk configura os registros CloudWatch .

Streaming de logs de instância usando arquivos de configuração

Ao criar ou atualizar um ambiente, você pode usar um arquivo de configuração para instalar e configurar o streaming de registros da instância para o CloudWatch Logs. O exemplo de arquivo de configuração a seguir ativa o streaming de logs de instância padrão. O Elastic Beanstalk faz streaming do conjunto padrão de arquivos de log para a plataforma do ambiente. Para usar o exemplo, copie o texto em um arquivo com a extensão .config no diretório .ebextensions, no nível superior do pacote de origem do aplicativo.

option_settings: - namespace: aws:elasticbeanstalk:cloudwatch:logs option_name: StreamLogs value: true

Streaming do arquivo de log personalizado

A CloudWatch integração do Elastic Beanstalk com o Logs não oferece suporte direto ao streaming de arquivos de log personalizados que seu aplicativo gera. Para transmitir registros personalizados, use um arquivo de configuração para instalar diretamente o CloudWatch agente e configurar os arquivos a serem enviados. Para obter um arquivo de configuração demonstrativo, consulte logs-streamtocloudwatch-linux.config.

nota

O exemplo não funciona na plataforma Windows.

Para obter mais informações sobre a configuração de CloudWatch registros, consulte a referência do arquivo de configuração do CloudWatch agente no Guia do CloudWatch usuário da Amazon.

Solução de problemas da integração de CloudWatch registros

Se você não conseguir encontrar alguns dos registros de instância do ambiente que você espera no CloudWatch Logs, investigue os seguintes problemas comuns:

  • Sua IAM função não tem as IAM permissões necessárias.

  • Você lançou seu ambiente em um ambiente Região da AWS que não é compatível com CloudWatch Logs.

  • Um de seus arquivos de log personalizados não existe no caminho especificado.