amazon-cloudwatch-agent wird bei jedem Neuladen der Anwendung heruntergefahren

amazon-cloudwatch-agent wird bei jedem Neuladen der Anwendung heruntergefahren

Ich habe eine Tomcat-App auf Elastic Beanstalk und möchte Protokolle an Cloudwatch Logs senden. Zu diesem Zweck habe ich log4j so eingerichtet, dass es in eine Datei schreibt. In .ebextensionist amazon-cloudwatch-agentes installiert und wird ausgeführt.

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: |
       {...
       }

Leider wird der Agent jedes Mal heruntergefahren, wenn ich die App auf Elastic Beanstalk bereitstelle, und ich muss ihn manuell per SSH neu starten.

Antwort1

Wenn Sie in der Umgebungskonfiguration das Standardprotokoll-Streaming deaktivieren, stoppt Beanstalk den CloudWatch-Agenten während der Bereitstellung. Leider geschieht dies kurz nachdem der ebextension-Befehl zum Starten des Agenten ausgeführt wurde.

Um dieses Problem zu lösen, habe ich einen Plattform-Postdeploy-Hook verwendet, der nach der Bereitstellung ausgeführt wird und somit das Herunterfahren des Agenten vom Beanstalk-Standard überschreibt.

Fügen Sie einfach ein Shell-Skript mit dem Startbefehl in ./platform/hooks/postdeploy/ in Ihr Anwendungspaket ein.

verwandte Informationen