CloudWatch Logs - Amazon Data Firehose

Die Bereitstellung von Amazon Data Firehose-Streams an Apache Iceberg Tables in Amazon S3 befindet sich in der Vorschauversion und kann sich ändern.

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.

CloudWatch Logs

CloudWatch Protokollereignisse können mithilfe von CloudWatch Abonnementfiltern an Firehose gesendet werden. Weitere Informationen finden Sie unter Abonnementfilter mit Amazon Data Firehose.

CloudWatch Protokollereignisse werden im komprimierten GZIP-Format an Firehose gesendet. Wenn Sie dekomprimierte Protokollereignisse an Firehose-Ziele senden möchten, können Sie die Dekomprimierungsfunktion in Firehose verwenden, um Logs automatisch zu dekomprimieren. CloudWatch

Wichtig

Derzeit unterstützt Firehose die Übermittlung von CloudWatch Protokollen an das Amazon OpenSearch Service-Ziel nicht, da Amazon mehrere Protokollereignisse zu einem Firehose-Datensatz CloudWatch zusammenfasst und Amazon OpenSearch Service nicht mehrere Protokollereignisse in einem Datensatz akzeptieren kann. Als Alternative können Sie erwägen, den Abonnementfilter für Amazon OpenSearch Service in CloudWatch Logs zu verwenden.

Dekomprimierung von Protokollen CloudWatch

Wenn Sie Firehose zur Übertragung von CloudWatch Logs verwenden und dekomprimierte Daten an Ihr Firehose-Stream-Ziel liefern möchten, verwenden Sie Firehose Data Format Conversion (Parquet,ORC) oder Dynamic Partitioning. Sie müssen die Dekomprimierung für Ihren Firehose-Stream aktivieren.

Sie können die Dekomprimierung mit dem AWS Management Console, oder aktivieren. AWS Command Line Interface AWS SDKs

Anmerkung

Wenn Sie die Dekomprimierungsfunktion für einen Stream aktivieren, verwenden Sie diesen Stream ausschließlich für CloudWatch Logs-Abonnementfilter und nicht für Vending Logs. Wenn Sie die Dekomprimierungsfunktion für einen Stream aktivieren, der sowohl zum Ingestieren von Logs als auch von Vended CloudWatch Logs verwendet wird, schlägt das Ingestieren von Vended-Logs in Firehose fehl. Diese Dekomprimierungsfunktion ist nur für Logs verfügbar. CloudWatch

Extraktion von Nachrichten nach der Dekomprimierung von Protokollen CloudWatch

Wenn Sie die Dekomprimierung aktivieren, haben Sie die Möglichkeit, auch die Nachrichtenextraktion zu aktivieren. Bei der Verwendung der Nachrichtenextraktion filtert Firehose alle Metadaten wie Besitzer, Loggroup, Logstream und andere aus den dekomprimierten CloudWatch Logs-Datensätzen heraus und liefert nur den Inhalt in den Nachrichtenfeldern. Wenn Sie Daten an ein Splunk-Ziel senden, müssen Sie die Nachrichtenextraktion aktivieren, damit Splunk die Daten analysieren kann. Im Folgenden finden Sie Beispielausgaben nach der Dekomprimierung mit und ohne Nachrichtenextraktion.

Abb. 1: Beispielausgabe nach der Dekomprimierung ohne Nachrichtenextraktion:

{ "owner": "111111111111", "logGroup": "CloudTrail/logs", "logStream": "111111111111_CloudTrail/logs_us-east-1", "subscriptionFilters": [ "Destination" ], "messageType": "DATA_MESSAGE", "logEvents": [ { "id": "31953106606966983378809025079804211143289615424298221568", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root1\"}" }, { "id": "31953106606966983378809025079804211143289615424298221569", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root2\"}" }, { "id": "31953106606966983378809025079804211143289615424298221570", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root3\"}" } ] }

Abb. 2: Beispielausgabe nach der Dekomprimierung mit Nachrichtenextraktion:

{"eventVersion":"1.03","userIdentity":{"type":"Root1"} {"eventVersion":"1.03","userIdentity":{"type":"Root2"} {"eventVersion":"1.03","userIdentity":{"type":"Root3"}

Dekomprimierung aktivieren und deaktivieren

Sie können die Dekomprimierung mit dem AWS Management Console oder aktivieren und deaktivieren. AWS Command Line Interface AWS SDKs

Dekomprimierung für einen neuen Firehose-Stream von der Konsole aus aktivieren

Um die Dekomprimierung eines neuen Firehose-Streams mit dem zu aktivieren AWS Management Console
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Kinesis-Konsole unter https://console.aws.amazon.com/kinesis.

  2. Wählen Sie im Navigationsbereich Amazon Data Firehose aus.

  3. Wählen Sie Create Firehose stream.

  4. Unter Quelle und Ziel auswählen

    Quelle

    Die Quelle deines Firehose-Streams. Wählen Sie eine der folgenden Quellen:

    • Direkt PUT — Wählen Sie diese Option, um einen Firehose-Stream zu erstellen, in den Producer-Anwendungen direkt schreiben. Eine Liste der AWS Dienste und Agenten sowie Open-Source-Dienste, die PUT in Direct in Firehose integriert sind, finden Sie in diesem Abschnitt.

    • Kinesis-Stream: Wählen Sie diese Option, um einen Firehose-Stream zu konfigurieren, der einen Kinesis-Datenstream als Datenquelle verwendet. Anschließend können Sie Firehose verwenden, um Daten einfach aus einem vorhandenen Kinesis-Datenstrom zu lesen und in Ziele zu laden. Weitere Informationen finden Sie unter Mit Kinesis Data Streams in Firehose schreiben

    Zieladresse

    Das Ziel Ihres Firehose-Streams. Wählen Sie eine der folgenden Optionen aus:

    • Amazon S3

    • Splunk

  5. Geben Sie Firehose Firehose-Streamname einen Namen für Ihren Stream ein.

  6. (Optional) Unter Datensätze transformieren:

    • Wählen Sie im Abschnitt Quelldatensätze aus Amazon CloudWatch Logs dekomprimieren die Option Dekomprimierung aktivieren aus.

    • Wenn Sie die Nachrichtenextraktion nach der Dekomprimierung verwenden möchten, wählen Sie Nachrichtenextraktion einschalten.

Dekomprimierung für einen vorhandenen Firehose-Stream von der Konsole aus aktivieren

Wenn Sie einen Firehose-Stream mit einer Lambda-Funktion zur Durchführung der Dekomprimierung haben, können Sie ihn durch die Firehose-Dekomprimierungsfunktion ersetzen. Bevor Sie fortfahren, überprüfen Sie Ihren Lambda-Funktionscode, um sicherzustellen, dass er nur Dekomprimierung oder Nachrichtenextraktion durchführt. Die Ausgabe Ihrer Lambda-Funktion sollte den Beispielen in Abb. 1 oder Abb. 2 im vorherigen Abschnitt ähneln. Wenn die Ausgabe ähnlich aussieht, können Sie die Lambda-Funktion mithilfe der folgenden Schritte ersetzen.

  1. Ersetzen Sie Ihre aktuelle Lambda-Funktion durch diesen Blueprint. Die neue Blueprint-Lambda-Funktion erkennt automatisch, ob die eingehenden Daten komprimiert oder dekomprimiert sind. Sie führt nur dann eine Dekomprimierung durch, wenn ihre Eingabedaten komprimiert sind.

  2. Schalten Sie die Dekomprimierung mit der integrierten Firehose für die Dekomprimierung ein.

  3. Aktivieren Sie CloudWatch Metriken für Ihren Firehose-Stream, falls er noch nicht aktiviert ist. Überwachen Sie die Metrik CloudWatchProcessorLambda _ IncomingCompressedData und warten Sie, bis sich diese Metrik auf Null ändert. Dadurch wird bestätigt, dass alle an Ihre Lambda-Funktion gesendeten Eingabedaten dekomprimiert sind und die Lambda-Funktion nicht mehr benötigt wird.

  4. Entfernen Sie die Lambda-Datentransformation, da Sie sie nicht mehr benötigen, um Ihren Stream zu dekomprimieren.

Dekomprimierung von der Konsole aus deaktivieren

Um die Dekomprimierung eines Datenstroms zu deaktivieren, verwenden Sie AWS Management Console

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Kinesis-Konsole unter https://console.aws.amazon.com/kinesis.

  2. Wählen Sie im Navigationsbereich Amazon Data Firehose aus.

  3. Wählen Sie den Firehose-Stream aus, den Sie bearbeiten möchten.

  4. Wählen Sie auf der Seite mit den Firehose-Stream-Details die Registerkarte Konfiguration aus.

  5. Wählen Sie im Abschnitt Datensätze transformieren und konvertieren die Option Bearbeiten.

  6. Deaktivieren Sie unter Quelldatensätze aus Amazon CloudWatch Logs dekomprimieren die Option Dekomprimierung aktivieren und wählen Sie dann Änderungen speichern.

FAQ

Was passiert mit den Quelldaten, falls bei der Dekomprimierung ein Fehler auftritt?

Wenn Amazon Data Firehose den Datensatz nicht dekomprimieren kann, wird der Datensatz unverändert (im komprimierten Format) an den Fehler S3-Bucket geliefert, den Sie bei der Erstellung des Firehose-Streams angegeben haben. Zusammen mit dem Datensatz enthält das gelieferte Objekt auch den Fehlercode und die Fehlermeldung. Diese Objekte werden an ein S3-Bucket-Präfix namens gesendet. decompression-failed Firehose verarbeitet nach einer fehlgeschlagenen Dekomprimierung eines Datensatzes weiterhin andere Datensätze.

Was passiert mit den Quelldaten im Falle eines Fehlers in der Verarbeitungspipeline nach erfolgreicher Dekomprimierung?

Wenn Amazon Data Firehose bei den Verarbeitungsschritten nach der Dekomprimierung Fehler macht, z. B. dynamische Partitionierung und Datenformatkonvertierung, wird der Datensatz in komprimiertem Format an den Fehler-S3-Bucket übermittelt, den Sie bei der Erstellung des Firehose-Streams angegeben haben. Zusammen mit dem Datensatz enthält das gelieferte Objekt auch einen Fehlercode und eine Fehlermeldung.

Wie werden Sie im Falle eines Fehlers oder einer Ausnahme informiert?

Falls bei der Dekomprimierung ein Fehler oder eine Ausnahme auftritt und Sie CloudWatch Logs konfigurieren, protokolliert Firehose Fehlermeldungen in CloudWatch Logs. Darüber hinaus sendet Firehose Metriken an CloudWatch Metriken, die Sie überwachen können. Sie können optional auch Alarme erstellen, die auf von Firehose ausgegebenen Metriken basieren.

Was passiert, wenn put Operationen nicht aus CloudWatch Logs stammen?

Wenn der Kunde puts nicht aus den CloudWatch Logs kommt, wird die folgende Fehlermeldung zurückgegeben:

Put to Firehose failed for AccountId: <accountID>, FirehoseName: <firehosename> because the request is not originating from allowed source types.

Welche Metriken gibt Firehose für die Dekomprimierungsfunktion aus?

Firehose gibt Metriken für die Dekomprimierung jedes Datensatzes aus. Sie sollten den Zeitraum (1 Minute), die Statistik (Summe) und den Datumsbereich auswählen, um die Anzahl der fehlgeschlagenen oder erfolgreichen oder DecompressedRecords fehlgeschlagenen oder erfolgreichen Daten zu ermitteln. DecompressedBytes Weitere Informationen finden Sie unter CloudWatch Protokolliert Dekomprimierungsmetriken.