Amazon ECS-Protokolle an einen AWS Service senden oder AWS Partner - Amazon Elastic Container Service

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.

Amazon ECS-Protokolle an einen AWS Service senden oder AWS Partner

Sie können Amazon ECS verwenden FireLens , um Aufgabendefinitionsparameter zu verwenden, um Protokolle zur Protokollspeicherung und Analyse an ein AWS Service- oder AWS Partner Network (APN-) Ziel weiterzuleiten. The AWS Partner Network ist eine globale Partnergemeinschaft, die Programme, Fachwissen und Ressourcen nutzt, um Kundenangebote aufzubauen, zu vermarkten und zu verkaufen. Weitere Informationen finden Sie unter AWS Partner. FireLens arbeitet mit Fluentd und Fluent Bit. Wir stellen AWS für das Fluent Bit-Image bereit oder Sie können Ihr eigenes Fluentd- oder Fluent Bit-Image verwenden.

Beachten Sie bei der Verwendung FireLens für Amazon ECS Folgendes:

  • Wir empfehlen, dass Sie my_service_ dem Protokoll einen Container-Namen hinzufügen, damit Sie die Container-Namen in der Konsole leicht unterscheiden können.

  • Amazon ECS fügt standardmäßig eine Abhängigkeit von der Reihenfolge der Startcontainer zwischen den Anwendungscontainern und dem FireLens Container hinzu. Wenn Sie eine Container-Reihenfolge zwischen den Anwendungscontainern und dem FireLens Container angeben, wird die standardmäßige Reihenfolge der Startcontainer außer Kraft gesetzt.

  • FireLensfür Amazon ECS wird für Aufgaben unterstützt, die sowohl auf Linux als auch AWS Fargate auf Amazon EC2 unter Linux gehostet werden. Windows-Container unterstützen FireLens nicht.

    Informationen zur Konfiguration der zentralen Protokollierung für Windows-Container finden Sie unter Zentralisierte Protokollierung für Windows-Container auf Amazon ECS mit Fluent Bit.

  • Sie können AWS CloudFormation Vorlagen verwenden, um FireLens für Amazon ECS zu konfigurieren. Weitere Informationen finden Sie AWS::ECS::TaskDefinition FirelensConfigurationim Benutzerhandbuch AWS CloudFormation

  • FireLensüberwacht den Port. Um also sicherzustellen24224, dass der FireLens Log Router außerhalb der Aufgabe nicht erreichbar ist, dürfen Sie keinen eingehenden Verkehr über den Port 24224 in der Sicherheitsgruppe zulassen, die Ihre Aufgabe verwendet. Für Aufgaben, die den awsvpc-Netzwerkmodus verwenden, ist dies die der Aufgabe zugeordnete Sicherheitsgruppe. Für Aufgaben, die den host-Netzwerkmodus verwenden, ist dies die Sicherheitsgruppe, die der Amazon-EC2-Instance zugeordnet ist, die die Aufgabe hostet. Für Aufgaben, die den bridge-Netzwerkmodus verwenden, erstellen Sie keine Portzuordnungen, die Port 24224 verwenden.

  • Bei Aufgaben, die den bridge Netzwerkmodus verwenden, muss der Container mit der FireLens Konfiguration vor allen Anwendungscontainern, die darauf angewiesen sind, gestartet werden. Um die Startreihenfolge Ihrer Container zu steuern, verwenden Sie Abhängigkeitsbedingungen in der Aufgabendefinition. Weitere Informationen finden Sie unter Container-Abhängigkeit.

    Anmerkung

    Wenn Sie Parameter für Abhängigkeitsbedingungen in Containerdefinitionen mit einer FireLens Konfiguration verwenden, stellen Sie sicher, dass für jeden Container eine START HEALTHY Oder-Bedingung erforderlich ist.

  • Standardmäßig fügt FireLens den Cluster- und Aufgabendefinitionsnamen und den Amazon-Ressourcennamen (ARN) des Clusters als Metadatenschlüssel zu Ihren stdout/stderr-Containerprotokollen hinzu. Nachfolgend ist ein Beispiel für das Metadatenformat.

    "ecs_cluster": "cluster-name", "ecs_task_arn": "arn:aws:ecs:region:111122223333:task/cluster-name/f2ad7dba413f45ddb4EXAMPLE", "ecs_task_definition": "task-def-name:revision",

    Wenn Sie die Metadaten nicht in Ihren Protokollen haben möchten, setzen Sie enable-ecs-log-metadata zu false im firelensConfiguration-Abschnitt der Aufgabendefinition.

    "firelensConfiguration":{ "type":"fluentbit", "options":{ "enable-ecs-log-metadata":"false", "config-file-type":"file", "config-file-value":"/extra.conf" }

Um diese Funktion verwenden zu können, müssen Sie eine IAM-Rolle für Ihre Aufgaben erstellen, die für die Nutzung aller AWS Dienste erforderlich sind, die für die Aufgaben erforderlich sind. Wenn ein Container beispielsweise Logs an Firehose weiterleitet, benötigt die Aufgabe die Erlaubnis, die firehose:PutRecordBatch API aufzurufen. Informationen finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im IAM-Benutzerhandbuch.

Unter den folgenden Bedingungen ist für Ihre Aufgabe möglicherweise auch die Amazon ECS-Aufgabenausführungsrolle erforderlich. Weitere Informationen finden Sie unter IAM-Rolle für die Amazon-ECS-Aufgabenausführung.

  • Wenn Ihre Aufgabe auf Fargate gehostet wird und Sie Container-Images aus Amazon ECR abrufen oder sensible Daten aus AWS Secrets Manager Ihrer Protokollkonfiguration referenzieren, müssen Sie die IAM-Rolle für die Aufgabenausführung angeben.

  • Wenn Sie eine benutzerdefinierte Konfigurationsdatei verwenden, die in Amazon S3 gehostet wird, muss Ihre IAM-Rolle für die Aufgabenausführung die s3:GetObject entsprechende Berechtigung enthalten.

Informationen zur Verwendung mehrerer Konfigurationsdateien mit Amazon ECS, einschließlich Dateien, die Sie hosten, oder Dateien in Amazon S3, finden Sie unter Init-Prozess für Fluent Bit auf ECS, Multi-Config-Unterstützung.