amazon-cloudwatch-agent é encerrado a cada recarga do aplicativo

amazon-cloudwatch-agent é encerrado a cada recarga do aplicativo

Tenho um aplicativo Tomcat no Elastic Beanstalk e quero enviar logs para o Cloudwatch Logs. Para isso, configurei o log4j para gravar no arquivo e, em seguida .ebextension, amazon-cloudwatch-agenté instalado e executado.

commands:
#  00_download_and_install:
#    command: rpm --upgrade --force https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
  01_start:
    command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s
packages:
  yum:
    amazon-cloudwatch-agent: []
files:
  "/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json":
    content: |
       {...
       }

Infelizmente, sempre que implanto o aplicativo no Elastic Beanstalk, o agente é encerrado e preciso reiniciá-lo manualmente via ssh.

Responder1

Se você definir o streaming de log padrão como desabilitado na configuração do ambiente, o Beanstalk interromperá o agente cloudwatch durante a implantação. Infelizmente, isso acontece logo após a execução do comando ebextension para iniciar o agente.

Para resolver esse problema usei um gancho postdeploy da plataforma, que é executado após a implantação e, portanto, substitui o desligamento do agente do padrão do beanstalk.

Basta colocar um script de shell contendo o comando start em ./platform/hooks/postdeploy/ em seu pacote de aplicativos.

informação relacionada