). Wenn ein Aufgabensatz im Service vorhanden ist, sollte er als AWS markiert werden.
Mit FireLens für Amazon ECS können Sie Aufgabendefinitions-Parameter verwenden, um Protokolle zur Protokollspeicherung und -Analytik an AWS-Service oder ein AWS Partner Network (APN)-Ziel weiterzuleiten. 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
Standardmäßig konfiguriert Amazon ECS die Container-Abhängigkeit so, dass der Firelens-Container vor jedem Container gestartet wird, der ihn verwendet. Der Firelens-Container stoppt auch, nachdem alle Container, die ihn verwenden, angehalten sind.
Bei der Verwendung von FireLens für Amazon ECS sollten Sie Folgendes berücksichtigen:
-
Wir empfehlen, dass Sie dem Protokoll
my_service_den Namen des Protokoll-Containers hinzufügen, damit Sie die Container-Namen in der Konsole leicht unterscheiden können. -
Amazon ECS fügt standardmäßig eine Start-Abhängigkeit zwischen den Anwendungs-Containern 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.
-
FireLens für Amazon ECS wird für Aufgaben unterstützt, die sowohl auf AWS Fargate unter Linux als auch 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 CloudFormation-Vorlagen verwenden, um FireLens für Amazon ECS zu konfigurieren. Weitere Informationen finden Sie unter AWS::ECS::TaskDefinition FirelensConfiguration im AWS CloudFormation-Benutzerhandbuch
-
FireLens hört auf Port
24224. Um sicherzustellen, dass der FireLens-Protokollrouter außerhalb der Aufgabe nicht erreichbar ist, dürfen Sie keinen eingehenden Datenverkehr auf Port24224in der Sicherheitsgruppe zulassen, die Ihre Aufgabe verwendet. Für Aufgaben, die denawsvpc-Netzwerkmodus verwenden, ist dies die der Aufgabe zugeordnete Sicherheitsgruppe. Für Aufgaben, die denhost-Netzwerkmodus verwenden, ist dies die Sicherheitsgruppe, die der Amazon-EC2-Instance zugeordnet ist, die die Aufgabe hostet. Für Aufgaben, die denbridge-Netzwerkmodus verwenden, erstellen Sie keine Portzuordnungen, die Port24224verwenden. -
Bei Aufgaben, die den
bridge-Netzwerkmodus verwenden, muss der Container mit der FireLens-Konfiguration gestartet werden, bevor alle Anwendungscontainer gestartet werden, die darauf angewiesen sind. 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 Abhängigkeitsbedingungsparameter in Containerdefinitionen mit einer FireLens-Konfiguration verwenden, stellen Sie sicher, dass jeder Container eine
START- oderHEALTHY-Bedingungsanforderung hat. -
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-metadatazufalseimfirelensConfiguration-Abschnitt der Aufgabendefinition."firelensConfiguration":{ "type":"fluentbit", "options":{ "enable-ecs-log-metadata":"false", "config-file-type":"file", "config-file-value":"/extra.conf" }
Um dieses Feature verwenden zu können, müssen Sie eine IAM-Rolle für Ihre Aufgaben erstellen, die die erforderlichen Berechtigungen für die Verwendung von AWS-Services bereitstellt, die für die Aufgaben erforderlich sind. Wenn ein Container beispielsweise Protokolle an Firehose weiterleitet, erfordert die Aufgabe die Berechtigung zum Aufrufen der firehose:PutRecordBatch-API. Informationen finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im IAM-Benutzerhandbuch.
Unter den folgenden Bedingungen kann für Ihre Aufgabe auch die Amazon-ECS-Aufgabenausführungsrolle erforderlich sein. Weitere Informationen finden Sie unter IAM-Rolle für die Amazon-ECS-Aufgabenausführung.
-
Wenn Ihre Aufgabe den Fargate-Starttyp verwendet und Sie Container-Images aus Amazon ECR abrufen oder auf vertrauliche Daten aus AWS Secrets Manager in Ihrer Protokollkonfiguration verweisen, müssen Sie die IAM-Aufgabenausführungsrolle einschließen.
-
Wenn Sie eine benutzerdefinierte Konfigurationsdatei verwenden, die in Amazon S3 gehostet wird, muss Ihre IAM-Rolle für die Aufgabenausführung die
s3:GetObject-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 in ECS, Unterstützung für mehrfache Konfigurationen
Informationen zu Beispielskonfigurationen finden Sie unter Beispiel einer Amazon-ECS-Aufgabendefinition: Protokolle an FireLens weiterleiten.