Knowledge Center Monthly Newsletter - June 2025
Stay up to date with the latest from the Knowledge Center. See all new Knowledge Center articles published in the last month, and re:Post's top contributors.
Warum werden meine Amazon-ECS-Container-Protokolle nicht an CloudWatch Logs übermittelt?
Ich kann die Container-Protokolle meiner Amazon Elastic Container Service (Amazon ECS)-Aufgabe in Amazon CloudWatch Logs nicht finden.
Kurzbeschreibung
Die Amazon-ECS-Container-Protokolle werden möglicherweise aus einem der folgenden Gründe nicht an CloudWatch-Protokolle übermittelt:
- Der awslogs-Protokolltreiber ist in den Amazon ECS-Aufgabendefinitionen nicht richtig konfiguriert.
- Die Rolle AWS Identity and Access Management (IAM) verfügt nicht über die erforderlichen Berechtigungen für den Zugriff auf den Bucket.
- Das Netzwerk ist nicht richtig konfiguriert.
- Die Protokollebene für den Container ist nicht richtig konfiguriert.
Lösung
Der awslogs-Protokolltreiber ist nicht richtig konfiguriert
Um die Container-Protokollinformationen an CloudWatch-Protokolle zu senden, müssen Sie die Container in Ihren Aufgaben richtig konfigurieren. Wenn Sie die Parameter für Ihren Container definieren, stellen Sie sicher, dass Sie den logConfiguration-Parameter richtig konfigurieren. Wenn Ihre Amazon-ECS-Aufgabendefinition mehrere Container umfasst, müssen Sie diesen Parameter für jeden Container konfigurieren. Außerdem müssen Sie den awslogs-Protokolltreiber zum logConfiguration-Parameter in der Aufgabendefinition hinzufügen.
Führen Sie für die Starttypen von Amazon Elastic Compute Cloud (Amazon EC2) die folgenden zusätzlichen Aufgaben aus:
- Aktualisieren Sie die Amazon ECS Container Instance auf Version 1.9.0 oder höher des Container-Agenten. Weitere Informationen finden Sie unter Den Amazon-ECS-Container-Agenten aktualisieren.
- Für Container-Instances, die das Amazon-ECS-optimierte AMI nicht verwenden, geben Sie den awslogs-Protokolltreiber auf der Container-Instance an. Wenn Sie die folgende Umgebungsvariable verwenden, um den Agenten zu starten, geben Sie den awslogs-Protokolltreiber an:
ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'
Weitere Informationen finden Sie unter Den Amazon-ECS-Container-Agenten installieren.
Die IAM-Rolle hat nicht die erforderlichen Berechtigungen
Führen Sie die folgenden Schritte aus:
- Fügen Sie für Ihre IAM-Rolle für Ihre Amazon ECS Container Instance die Berechtigungen logs:CreateLogStream und logs:PutLogEvents hinzu.
- Verwenden Sie für den Starttyp AWS Fargate die IAM-Rolle für die Amazon-ECS-Aufgabenausführung mit den Berechtigungen logs:CreateLogStream und logs:PutLogEvents. Weitere Informationen finden Sie unter IAM-Rolle zur Ausführung von Amazon-ECS-Aufgaben.
- Überprüfen Sie für den Starttyp von Amazon EC2 Folgendes:
Für Aufgaben, die nicht die IAM-Rolle zur Amazon-ECS-Aufgabenausführung verwenden, gewähren Sie der Container-Instance-IAM-Rolle die Berechtigungen logs:CreateLogStream und logs:PutLogEvents.
Aktualisieren Sie für Aufgaben, die die IAM-Rolle zur Amazon-ECS-Aufgabenausführung verwenden, den Wert des Container-Agent-Parameters ECS_ENABLE_AWSLOGS\ _EXECUTIONROLE_OVERRIDE auf wahr.
**Hinweis:**Wenn Sie das Amazon-ECS-optimierte AMI mit Version 1.16.0 -1 oder höher des ecs-init-Pakets verwenden, ist der Standardwert dieses Parameters wahr. Unter Windows ist der Standardwert dieses Parameters falsch. Weitere Informationen finden Sie unter Konfiguration des Amazon-ECS-Container-Agenten.
Das Netzwerk ist nicht richtig konfiguriert
Aufgaben, die den awslogs-Protokolltreiber mit einer Amazon Virtual Private Cloud (Amazon VPC) ohne Internet-Gateway verwenden, müssen einen CloudWatch-Protokolle-Endpunkt erstellen. Weitere Informationen finden Sie unter Verwenden von CloudWatch-Protokollen mit Schnittstellen-VPC-Endpunkten.
Die Protokollebene für den Container ist nicht richtig konfiguriert
Der awslogs-Protokolltreiber übergibt die Container-Protokolle, bei denen es sich um die STDOUT- und STDERR-I/O-Streams handelt, von Docker an CloudWatch-Protokolle. Aktualisieren Sie Ihre Anwendung, um die Protokolle an STDOUT- und STDERR-I/O-Streams zu senden. Konfigurieren Sie während des Container-Builds die richtige Protokollebene für Ihre Anwendung. Abhängig von Ihrer Anwendung können Sie die Protokollebene über eine Umgebungsvariable oder eine Konfigurationsdatei festlegen.
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Monaten