Elastic Beanstalk mit Amazon Logs verwenden CloudWatch - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Elastic Beanstalk mit Amazon Logs verwenden CloudWatch

In diesem Thema werden die Überwachungsfunktionen erklärt, die der Amazon CloudWatch Logs-Service Elastic Beanstalk zur Verfügung stellen kann. Es führt Sie auch durch die Konfiguration und listet die Speicherorte der Protokolle für jede Elastic Beanstalk-Plattform auf.

Durch die Implementierung von CloudWatch Logs können Sie die folgenden Monitoring-Aktivitäten durchführen:

  • Überwachen und archivieren Sie Ihre Elastic Beanstalk Beanstalk-Anwendungs-, System- und benutzerdefinierten Protokolldateien aus den EC2 Amazon-Instances Ihrer Umgebungen.

  • Konfigurieren Sie Alarme, die es Ihnen erleichtern, auf bestimmte Log-Stream-Ereignisse zu reagieren, die Ihre Metrikfilter extrahieren.

Der CloudWatch Logs-Agent, der auf jeder EC2 Amazon-Instance in Ihrer Umgebung installiert ist, veröffentlicht für jede von Ihnen konfigurierte Protokollgruppe metrische Datenpunkte an den CloudWatch Service. Jede Protokollgruppe wendet ihre eigenen Filtermuster an, um zu bestimmen, an welche Log-Stream-Ereignisse CloudWatch als Datenpunkte gesendet werden sollen. Protokollstreams, die zur selben Protokollgruppe gehören, besitzen dieselben Einstellungen für die Aufbewahrung, Überwachung und Zugriffskontrolle. Sie können Elastic Beanstalk so konfigurieren, dass Logs automatisch an den CloudWatch Service gestreamt werden, wie unter beschrieben. Die Streaming-Instanz protokolliert in CloudWatch Logs Weitere Informationen zu CloudWatch Logs, einschließlich Terminologie und Konzepten, finden Sie im Amazon CloudWatch Logs-Benutzerhandbuch.

Wenn Sie Enhanced Health für Ihre Umgebung aktivieren, können Sie zusätzlich zu Instance-Logs die Umgebung so konfigurieren, dass Integritätsinformationen in CloudWatch Logs gestreamt werden. Siehe Streaming von Integritätsinformationen der Elastic Beanstalk-Umgebung an Amazon CloudWatch Logs.

Voraussetzungen für das Streaming von CloudWatch Instanzprotokollen in Logs

Um das Streaming von Protokollen von den EC2 Amazon-Instances Ihrer Umgebung zu CloudWatch Logs zu aktivieren, müssen Sie die folgenden Bedingungen erfüllen.

  • Platform (Plattform) – Da diese Funktion nur in Plattformversionen zur Verfügung steht, die mit oder nach diesem Release veröffentlicht wurden, müssen Sie Ihre Umgebung aktualisieren, falls Sie eine frühere Plattformversion verwenden.

  • Wenn Sie die AWSElasticBeanstalkWebTieroder von AWSElasticBeanstalkWorkerTierElastic Beanstalk verwaltete Richtlinie nicht in Ihrem Elastic Beanstalk Beanstalk-Instance-Profil haben, müssen Sie Folgendes zu Ihrem Profil hinzufügen, um diese Funktion zu aktivieren.

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

So richtet Elastic Beanstalk Logs ein CloudWatch

Elastic Beanstalk installiert auf jeder erstellten Instance einen CloudWatch Log-Agent mit den Standardkonfigurationseinstellungen. Weitere Informationen finden Sie in der CloudWatch Logs Agent Reference.

Wenn Sie das Streaming von CloudWatch Instance-Logs zu Logs aktivieren, sendet Elastic Beanstalk Logdateien von den Instances Ihrer Umgebung an CloudWatch Logs. Unterschiedliche Plattformen streamen unterschiedliche Protokolle. In der folgenden Tabelle finden Sie die Protokolle nach Plattform sortiert.

Plattform/Plattformzweig

Logs (Protokolle)

Docker/

Plattformzweig: Docker auf Amazon Linux 2 mit 64 Bit

  • /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/

Platform Branch: ECS Läuft auf 64-Bit-Amazon Linux 2

  • /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 unter Linux

Java/Plattformzweig: Corretto auf Amazon Linux 2 mit 64 Bit

  • /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

. NETauf Windows Server

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

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

  • C:\Program Dateien\ 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

Anmerkung

Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranchen, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt. Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2.

In der folgenden Tabelle sind die Protokolldateien, die von Instances auf Plattformbranches gestreamt wurden, die auf Amazon Linux AMI (vor Amazon Linux 2) basieren, nach Plattform aufgelistet.

Plattform/Plattformzweig

Logs (Protokolle)

Docker/

Plattformzweig: Docker auf Amazon Linux mit 64 Bit

  • /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/

Plattformzweig: Multi-Container-Docker auf Amazon Linux mit 64 Bit

  • /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 vorkonfiguriert)

  • /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/

Plattformzweig: Java 8 auf Amazon Linux mit 64 Bit

Plattformzweig: Java 7 auf Amazon Linux mit 64 Bit

  • /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/

Plattformzweig: Puma mit Ruby auf Amazon Linux mit 64 Bit

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/puma/puma.log

  • /var/log/nginx/access.log

Ruby/

Plattformzweig: Passenger mit Ruby auf Amazon Linux mit 64 Bit

  • /var/log/eb-activity.log

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

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

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

Elastic Beanstalk konfiguriert Protokollgruppen in CloudWatch Logs für die verschiedenen Protokolldateien, die gestreamt werden. Um bestimmte Protokolldateien aus CloudWatch Logs abzurufen, müssen Sie den Namen der entsprechenden Protokollgruppe kennen. Das Namensschema der Protokollgruppe hängt vom Betriebssystem der Plattform ab.

Für Linux-Plattformen stellen Sie der Protokolldatei auf der Instance das Präfix /aws/elasticbeanstalk/environment_name voraus, um den Protokollgruppennamen zu erhalten. Um beispielsweise die Datei /var/log/nginx/error.log abzurufen, geben Sie die Protokollgruppe /aws/elasticbeanstalk/environment_name/var/log/nginx/error.log an.

Für Windows-Plattformen finden Sie in der folgenden Tabelle die Protokollgruppen für alle Protokolldateien.

Protokolldatei auf der Instance

Protokollgruppe

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 (das gesamte Verzeichnis)

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

Die Streaming-Instanz protokolliert in CloudWatch Logs

Sie können das Streaming von CloudWatch Instance-Logs in Logs über die Elastic Beanstalk Beanstalk-Konsole, den EB CLI oder die Konfigurationsoptionen aktivieren.

Bevor Sie es aktivieren, richten Sie die IAM Berechtigungen für die Verwendung mit dem CloudWatch Logs-Agenten ein. Sie können die folgende benutzerdefinierte Richtlinien an das Instance-Profil anhängen, das Sie Ihrer Umgebung zuweisen.

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

Streaming von Instance-Protokollen mit der Elastic Beanstalk-Konsole

Um Instanzprotokolle in Logs zu CloudWatch streamen
  1. Öffnen Sie die Elastic Beanstalk Beanstalk-Konsole und wählen Sie in der Liste Regionen Ihre aus. AWS-Region

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging  (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.

  5. Gehen Sie unter Instance-Log-Streaming zu CloudWatch Logs wie folgt vor:

    • Aktivieren Sie Log streaming (Protokoll-Streaming).

    • Setzen Sie Retention (Aufbewahrungsdauer) auf die Anzahl an Tagen, wie lange die Protokolle aufbewahrt werden sollen.

    • Wählen Sie die Einstellung Lifecycle (Lebenszyklus), die bestimmt, ob die Protokolle gespeichert werden, nachdem die Umgebung beendet wurde.

  6. Wählen Sie unten auf der Seite die Option Apply (Anwenden) aus, um die Änderungen zu speichern.

Nachdem Sie das Protokoll-Streaming aktiviert haben, können Sie zur Konfigurationskategorie oder -seite Software zurückkehren und dort den Link Log Groups (Protokollgruppen) suchen. Klicken Sie auf diesen Link, um Ihre Logs in der CloudWatch Konsole zu sehen.

Instanz-Log-Streaming mit der EB CLI

Verwenden Sie den eb logs Befehl, um das Streaming von CloudWatch Instanzprotokollen in Logs mithilfe des EB CLI zu aktivieren.

$ eb logs --cloudwatch-logs enable

Sie können ihn auch verwendeneb logs, um Logs aus CloudWatch Logs abzurufen. Sie können alle Instance-Protokolle der Umgebung abrufen, oder die vielen Optionen des Befehls verwenden, um Untergruppen abzurufender Protokolle anzugeben. Der folgende Befehl beispielsweise ruft den vollständigen Satz an Instance-Protokollen für Ihre Umgebung auf und speichert diese in ein Verzeichnis unter .elasticbeanstalk/logs.

$ eb logs --all

Mit der Option --log-group können Sie Instance-Protokolle einer bestimmten Protokollgruppe abrufen, die einer bestimmten Protokolldatei einer Instance entspricht. Dazu müssen Sie den Namen der Protokollgruppe kennen, die der abzurufenden Protokolldatei entspricht. Sie finden diese Informationen in So richtet Elastic Beanstalk Logs ein CloudWatch .

Streaming von Instance-Protokollen mit Konfigurationsdateien

Wenn Sie eine Umgebung erstellen oder aktualisieren, können Sie eine Konfigurationsdatei verwenden, um das Streaming von CloudWatch Instanzprotokollen in Logs einzurichten und zu konfigurieren. Die folgende Beispiel-Konfigurationsdatei ermöglicht ein standardmäßiges Streaming der Instance-Protokolle. Elastic Beanstalk streamt den Standardsatz an Protokolldateien für die Plattform Ihrer Umgebung. Um das Beispiel zu verwenden, kopieren Sie den Text in eine Datei mit der Erweiterung .config im Verzeichnis .ebextensions auf der obersten Ebene Ihres Anwendungsquellpakets.

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

Benutzerdefiniertes Streaming von Protokolldateien

Die Elastic Beanstalk Beanstalk-Integration mit CloudWatch Logs unterstützt nicht direkt das Streaming von benutzerdefinierten Protokolldateien, die Ihre Anwendung generiert. Um benutzerdefinierte Logs zu streamen, verwenden Sie eine Konfigurationsdatei, um den CloudWatch Agenten direkt zu installieren und die Dateien für die Übertragung zu konfigurieren. Eine Beispielkonfigurationsdatei finden Sie unter logs-streamtocloudwatch-linux.config.

Anmerkung

Das Beispiel funktioniert nicht auf der Windows-Plattform.

Weitere Informationen zur Konfiguration von CloudWatch Logs finden Sie in der Referenz zur CloudWatch Agentenkonfigurationsdatei im CloudWatch Amazon-Benutzerhandbuch.

Fehlerbehebung bei der Integration CloudWatch von Logs

Wenn Sie einige der erwarteten Instanzprotokolle der Umgebung nicht unter Logs finden können, können Sie die folgenden häufigen Probleme untersuchen: CloudWatch

  • Ihrer IAM Rolle fehlen die erforderlichen IAM Berechtigungen.

  • Sie haben Ihre Umgebung in einer Umgebung gestartet AWS-Region , die CloudWatch Logs nicht unterstützt.

  • Eine Ihrer benutzerdefinierten Protokolldateien existiert nicht unter dem von Ihnen angegebenen Pfad.