Direkt zum Inhalt

Warum werden meine Amazon-ECS-Container-Protokolle nicht an CloudWatch Logs übermittelt?

Lesedauer: 2 Minute
0

Meine Amazon Elastic Container Service (Amazon ECS)-Container-Protokolle werden nicht wie erwartet in Amazon CloudWatch Logs angezeigt.

Lösung

Den awslogs-Protokolltreiber ändern

Füge den logConfiguration-Parameter zum awslogs-Protokolltreiber in der Aufgabendefinition ein. Für Amazon ECS-Aufgaben mit mehreren Containern konfiguriere den logConfiguration-Parameter für jeden Container.

Wenn du einen Starttyp für Amazon Elastic Compute Cloud (Amazon EC2) hast, aktualisiere die Amazon ECS-Container-Instance auf Version 1.9.0 oder höher.

Wenn die Container-Instance das Amazon ECS-optimierte Amazon Machine Image (AMI) nicht verwendet, führe die folgende Umgebungsvariable aus, um den Container-Agent zu starten:

ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'

Hinweis: Gib den awslogs-Protokolltreiber auf der Container-Instance an.

Weitere Informationen findest du unter Den Amazon-ECS-Container-Agent installieren.

Die erforderlichen IAM-Rollenberechtigungen hinzufügen

AWS Fargate-Starttyp

Hänge die AmazonECSTaskExecutionRolePolicy-Richtlinie an die Amazon ECS-Rolle zur Ausführung von AWS Identity and Access Management (IAM)-Aufgaben an. Die Richtlinie umfasst die erforderlichen Berechtigungen logs:CreateLogStream und logs:PutLogEvents. Oder erstelle eine benutzerdefinierte IAM-Richtlinie und füge die erforderlichen Berechtigungen hinzu.

Amazon EC2-Startaufgaben ohne Aufgabenausführung (IAM-Rolle)

Hänge die Richtlinie AmazonEC2ContainerServiceForec2Role an die IAM-Rolle der Container-Instance an. Die Richtlinie enthält die erforderlichen Berechtigungen logs:CreateLogStream und logs:PutLogEvents. Oder erstelle eine benutzerdefinierte IAM-Richtlinie und füge die erforderlichen Berechtigungen hinzu.

Amazon EC2-Startaufgaben mit IAM-Rolle zur Aufgabenausführung

Aktualisiere für die Container-Agent-Konfiguration den Parameter ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE auf richtig.

Hinweis: Der Standardwert für den Container-Agent-Parameter ist auf Amazon ECS-optimierten AMIs mit Version 1.16.0-1 oder höher wahr und unter Windows falsch.

Die Netzwerkkonfiguration überprüfen

Wenn die Aufgabe den awslogs-Protokolltreiber in einer Amazon Virtual Private Cloud (Amazon VPC) ohne Internet-Gateway verwendet, erstelle einen Schnittstellen-VPC-Endpunkt für CloudWatch Logs. Wähle com.amazonaws.Region.logs als Service.

Die Konfiguration auf Protokollebene des Containers überprüfen

Der awslogs-Protokolltreiber übergibt die STDOUT- und STDERR I/O-Streams, von Docker an CloudWatch-Protokolle.

Um die Protokolle zu konfigurieren, aktualisiere die Anwendung, um die Protokolle an STDOUT- und STDERR I/O-Streams zu senden. Konfiguriere dann während des Container-Builds die Protokollebene der Anwendung über eine Umgebungsvariable oder eine Konfigurationsdatei.

Ähnliche Informationen

Überwachungstools für Amazon ECS

Wie behebe ich fehlende Container-Protokolle für Amazon ECS oder Amazon EKS?

Amazon ECS-Protokolle an CloudWatch senden

AWS OFFICIALAktualisiert vor einem Jahr