Erstellen Sie einen benutzerdefinierten Protokollparser für Amazon ECS mithilfe eines Firelens-Protokollrouters - AWS Prescriptive Guidance

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.

Erstellen Sie einen benutzerdefinierten Protokollparser für Amazon ECS mithilfe eines Firelens-Protokollrouters

Erstellt von Varun Sharma (AWS)

Umgebung: Produktion

Technologien: DevOps Container und Mikroservices

Arbeitslast: Alle anderen Workloads

AWS-Dienste: Amazon ECS

Übersicht

Firelens ist ein Protokollrouter für Amazon Elastic Container Service (Amazon ECS) und AWS Fargate. Sie können Firelens verwenden, um Container-Logs von Amazon ECS an Amazon CloudWatch und andere Ziele (z. B. Splunk oder Sumo Logic) weiterzuleiten. Firelens arbeitet mit Fluentd oder Fluent Bit als Protokollierungsagent, was bedeutet, dass Sie Amazon ECS-Aufgabendefinitionsparameter verwenden können, um Protokolle weiterzuleiten.

Wenn Sie sich dafür entscheiden, Protokolle auf Quellenebene zu analysieren, können Sie Ihre Protokolldaten analysieren und Abfragen durchführen, um effizienter und effektiver auf betriebliche Probleme zu reagieren. Da verschiedene Anwendungen unterschiedliche Protokollierungsmuster haben, müssen Sie einen benutzerdefinierten Parser verwenden, der die Protokolle strukturiert und die Suche am Zielort erleichtert.

Dieses Muster verwendet einen Firelens-Protokollrouter mit einem benutzerdefinierten Parser, um Protokolle CloudWatch von einer Spring Boot-Beispielanwendung, die auf Amazon ECS ausgeführt wird, zu übertragen. Anschließend können Sie Amazon CloudWatch Logs Insights verwenden, um die Protokolle auf der Grundlage benutzerdefinierter Felder zu filtern, die vom benutzerdefinierten Parser generiert werden.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives Amazon Web Services (AWS) -Konto.

  • AWS-Befehlszeilenschnittstelle (AWS CLI), auf Ihrem lokalen Computer installiert und konfiguriert.

  • Docker, auf Ihrem lokalen Computer installiert und konfiguriert.

  • Eine bestehende Spring Boot-basierte containerisierte Anwendung in Amazon Elastic Container Registry (Amazon ECR). 

Architektur

Verwendung eines Firelens-Protokollrouters zum Übertragen von Protokollen CloudWatch von einer Anwendung, die auf Amazon ECS ausgeführt wird.

Technologie-Stack

  • CloudWatch

  • Amazon ECR

  • Amazon ECS

  • Fargate

  • Docker

  • Fluent Bit

Tools

  • Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) ist ein von AWS verwalteter Container-Image-Registry-Service, der sicher, skalierbar und zuverlässig ist.

  • Amazon ECS — Amazon Elastic Container Service (Amazon ECS) ist ein hoch skalierbarer, schneller Container-Management-Service, der das Ausführen, Stoppen und Verwalten von Containern in einem Cluster vereinfacht.

  • AWS Identity and Access Management (IAM) — IAM ist ein Webservice zur sicheren Steuerung des Zugriffs auf AWS-Services.

  • AWS CLI — AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.

  • Docker — Docker ist eine offene Plattform für die Entwicklung, den Versand und den Betrieb von Anwendungen.

Code

Die folgenden Dateien sind an dieses Muster angehängt:

  • customFluentBit.zip— Enthält die Dateien zum Hinzufügen der benutzerdefinierten Analyse und Konfigurationen.

  • firelens_policy.json— Enthält das Richtliniendokument zur Erstellung einer IAM-Richtlinie.

  • Task.json— Enthält eine Beispielaufgabendefinition für Amazon ECS.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein Amazon-ECR-Repository.

Melden Sie sich bei der AWS-Managementkonsole an, öffnen Sie die Amazon ECR-Konsole und erstellen Sie ein Repository namensfluentbit_custom.

Weitere Informationen dazu finden Sie unter Erstellen eines Repositorys in der Amazon ECR-Dokumentation.

Systemadministrator, Entwickler

Entpacken Sie das customFluentBit ZIP-Paket.

 

  1. Laden Sie das customFluentBit.zip Paket (angehängt) auf Ihren lokalen Computer herunter. 

  2. Entpacken Sie das Paket in das customFluentBit Verzeichnis, indem Sie den folgenden Befehl ausführen: unzip -d customFluentBit.zip

  3. Das Verzeichnis enthält die folgenden Dateien, die für das Hinzufügen der benutzerdefinierten Analyse und Konfigurationen erforderlich sind:

    • parsers/springboot_parser.conf— Enthält die Parser-Direktive und definiert das reguläre Ausdrucksmuster (Regex) für den benutzerdefinierten Parser. Sie können das Regex-Muster für Ihren spezifischen Parser hinzufügen.

    •  conf/parse_springboot.conf— Enthält den Filter und die Service-Direktive.

    • Das Dockerfile

Erstellen Sie das benutzerdefinierte Docker-Image.

  1. Ändern Sie das Verzeichnis in customFluentBit.

  2. Öffnen Sie die Amazon ECR-Konsole, wählen Sie das fluentbit_custom Repository aus und wählen Sie dann Push-Befehle anzeigen

  3. Laden Sie Ihr Projekt hoch. 

  4. Kopieren Sie nach Abschluss des Uploads die URL des Builds. Diese URL ist erforderlich, wenn Sie einen Container in Amazon ECS erstellen.

Weitere Informationen dazu finden Sie unter Pushing a Docker-Image in der Amazon ECR-Dokumentation. 

Systemadministrator, Entwickler
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie einen Amazon-ECS-Cluster.

Erstellen Sie einen Amazon ECS-Cluster, indem Sie den Anweisungen im Abschnitt Nur Netzwerkvorlage unter Cluster erstellen in der Amazon ECS-Dokumentation folgen.

Hinweis: Stellen Sie sicher, dass Sie Create VPC wählen, um eine neue Virtual Private Cloud (VPC) für Ihren Amazon ECS-Cluster zu erstellen.

Systemadministrator, Entwickler
AufgabeBeschreibungErforderliche Fähigkeiten

Richten Sie die IAM-Rolle für die Amazon ECS-Aufgabenausführung ein.

Erstellen Sie mithilfe der AmazonECSTaskExecutionRolePolicy verwalteten Richtlinie eine Amazon ECS-IAM-Rolle für die Ausführung von Aufgaben. Weitere Informationen dazu finden Sie in der Amazon ECS-Dokumentation unter IAM-Rolle für die Ausführung von Aufgaben in Amazon ECS.

Hinweis: Stellen Sie sicher, dass Sie den Amazon-Ressourcennamen (ARN) der IAM-Rolle aufzeichnen.

Systemadministrator, Entwickler

Fügen Sie die IAM-Richtlinie der IAM-Rolle für die Amazon ECS-Aufgabenausführung hinzu.

  1. Erstellen Sie mithilfe des firelens_policy.json (angehängten) Richtliniendokuments eine IAM-Richtlinie. Weitere Informationen dazu finden Sie in der IAM-Dokumentation unter Richtlinien auf der Registerkarte JSON erstellen.

  2. Fügen Sie diese Richtlinie der IAM-Rolle für die Amazon ECS-Aufgabenausführung hinzu, die Sie zuvor erstellt haben. Weitere Informationen dazu finden Sie unter Hinzufügen von IAM-Richtlinien (AWS CLI) in der IAM-Dokumentation. 

Systemadministrator, Entwickler

Richten Sie die Amazon ECS-Aufgabendefinition ein.

  1. Aktualisieren Sie die folgenden Abschnitte in der Task.json Beispielaufgabendefinition (im Anhang):

    • Aktualisieren Sie das executionRoleArn und taskRoleArn mit dem ARN der IAM-Rolle zur Aufgabenausführung

    • Aktualisieren Sie das Image containerDefinitions mit dem benutzerdefinierten Fluent Bit Docker-Image, das Sie zuvor erstellt haben

    • Aktualisieren Sie das Image containerDefinitions mit dem Namen Ihres Anwendungs-Images

  2. Öffnen Sie die Amazon ECS-Konsole, wählen Sie Aufgabendefinitionen, wählen Sie Neue Aufgabendefinition erstellen und wählen Sie dann Fargate auf der Seite Kompatibilitäten auswählen aus.    

  3. Wählen Sie Configure via Json, fügen Sie die aktualisierte Task.json Datei in den Textbereich ein und wählen Sie dann Speichern.

  4. Erstellen Sie die Aufgabendefinition.

Weitere Informationen dazu finden Sie unter Erstellen einer Aufgabendefinition in der Amazon ECS-Dokumentation.

Systemadministrator, Entwickler
AufgabeBeschreibungErforderliche Fähigkeiten

Führen Sie die Amazon ECS-Aufgabe aus.

Wählen Sie in der Amazon ECS-Konsole Clusters, wählen Sie den Cluster aus, den Sie zuvor erstellt haben, und führen Sie dann die eigenständige Aufgabe aus.

Weitere Informationen dazu finden Sie unter Ausführen einer eigenständigen Aufgabe in der Amazon ECS-Dokumentation.

Systemadministrator, Entwickler
AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen Sie die Protokolle.

  1. Öffnen Sie die CloudWatch Konsole, wählen Sie Protokollgruppen und dann/aws/ecs/containerinsights/{{cluster_ARN}}/firelens/application.

  2. Überprüfen Sie die Protokolle, insbesondere die benutzerdefinierten Felder, die vom benutzerdefinierten Parser hinzugefügt wurden.

  3. Wird verwendet CloudWatch , um Protokolle auf der Grundlage der benutzerdefinierten Felder zu filtern.

Systemadministrator, Entwickler

Zugehörige Ressourcen

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip