Direkt zum Inhalt

Wie verwende ich CloudWatch Logs, um einen Abonnementfilter für Kinesis Data Streams zu erstellen?

Lesedauer: 4 Minute
0

Ich möchte Amazon CloudWatch Logs verwenden, um einen Abonnementfilter zu erstellen, damit ich meine Protokolle an Amazon Kinesis Data Streams streamen kann.

Lösung

Einen Abonnementfilter für einen Kinesis-Datenstrom im selben Konto konfigurieren

Erstelle einen Kinesis-Datenstrom, wenn du noch keinen hast.

Hinweis: Die AWS-Region für die CloudWatch-Protokollgruppe und das Kinesis-Datenstrom-Ziel müssen identisch sein.

Erstellen einer IAM-Richtlinie und -Rolle mit einer benutzerdefinierten Vertrauensrichtlinie

Die AWS Identity and Access Management (IAM)-Rolle muss über Vertrauensberechtigungen für logs.yourregion.amazonaws.com verfügen und die Berechtigung kinesis:PutRecord zulassen.

Verwende eine benutzerdefinierte Vertrauensrichtlinie, um eine IAM-Rolle zu erstellen. Gib im Abschnitt Benutzerdefinierte Vertrauensrichtlinie die folgende Vertrauensrichtlinie ein:

{  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "Service": "logs.region.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringLike": {
        "aws:SourceArn": "arn:aws:logs:REGION:ACCOUNT_ID:*"
      }
    }
  }
}

Hinweis: Ersetze REGION durch deine Region und ACCOUNT_ID durch deine AWS-Konto-ID.

Wähle im Abschnitt Schritt 2: Berechtigungen hinzufügen Bearbeiten und füge dann der benutzerdefinierten Richtlinie die folgende Richtlinienanweisung hinzu:

{  "Statement": {    "Effect": "Allow",
    "Action": "kinesis:PutRecord",
    "Resource": "arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME"
  }
}

Hinweis: Ersetze REGION durch deine Region, ACCOUNT_ID durch deine AWS-Konto-ID und STREAM_NAME durch deinen Stream-Namen.

Die vorherige Richtlinie ist spezifisch für Kinesis-Datenströme. Weitere Informationen zu Berechtigungen für Amazon Data Firehose findest du unter Zugriff auf deine Firehose-Ressourcen gewähren.

Einen Abonnementfilter erstellen

Gehe wie folgt vor:

  1. Öffne die CloudWatch-Konsole.
  2. Wähle im Navigationsbereich Protokollverwaltung aus.
  3. Wähle deine Protokollgruppe aus.
  4. Wähle Aktionen und dann Abonnementfilter.
  5. Um das Ziel zu konfigurieren, wähle Kinesis-Abonnementfilter erstellen aus.
  6. Wähle Aktuelles Konto aus.
  7. Wähle den Kinesis-Datenstrom aus der Dropdown-Liste aus.
  8. Wähle die IAM-Rolle aus, die du erstellt hast.
  9. Wähle eine Verteilungsmethode. Weitere Informationen zu Verteilungen findest du unter Konzepte.
  10. Definiere im Abschnitt Abonnement-Filtermuster die Filtermuster.
  11. Gib einen Namen für den Abonnementfilter ein.
  12. Überprüfe das Muster mit den vorhandenen Protokollereignisdaten.
  13. Wähle Streaming starten.

Um zu überprüfen, ob der Datenstrom funktioniert, überprüfe die folgenden Abonnementfilter-Metriken:

  • ForwardedBytes: Die Menge der Protokollereignisse in komprimierten Bytes, die an das Abonnementziel weitergeleitet werden.
  • ForwardedLogEvents: Die Anzahl der Protokollereignisse, die an das Abonnementziel weitergeleitet werden.

Überprüfe die folgenden Metriken, um sicherzustellen, dass beim Streamen von Protokollereignissen an das Ziel keine Fehler auftreten:

  • DeliveryErrors: Die Anzahl der Protokollereignisse, die zeigen, dass CloudWatch Logs einen Fehler für Daten erhalten hat, die an das Abonnementziel weitergeleitet werden.
  • DeliveryThrottling: Die Anzahl der Protokollereignisse, die zeigen, dass CloudWatch Logs gedrosselt wurde, als Daten an das Abonnementziel weitergeleitet wurden.

Einen Abonnementfilter für einen Kinesis-Datenstrom in einem anderen Konto konfigurieren

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Ein Ziel erstellen 

Erstelle im Konto des Datenempfängers ein Ziel.

Einen Abonnementfilter erstellen

Führe im Quellkonto die folgenden Schritte aus:

  1. Wenn du eine Organisation in AWS Organizations verwendest, erstelle eine IAM-Rolle. Fahre andernfalls mit Schritt 2 fort.
  2. Füge die IAM-Berechtigungen für das kontoübergreifende Ziel hinzu oder überprüfe sie
  3. Erstelle eine Protokollgruppe, um Ereignisse an CloudWatch Logs zu senden.
  4. Erstelle den Abonnementfilter.

Um zu überprüfen, ob der Datenstrom funktioniert, überprüfe die folgenden Abonnementfilter-Metriken:

  • ForwardedBytes: Die Menge der Protokollereignisse in komprimierten Bytes, die an das Abonnementziel weitergeleitet werden.
  • ForwardedLogEvents: Die Anzahl der Protokollereignisse, die an das Abonnementziel weitergeleitet werden.

Überprüfe die folgenden Metriken, um sicherzustellen, dass beim Streamen von Protokollereignissen an das Ziel keine Fehler auftreten:

  • DeliveryErrors: Die Anzahl der Protokollereignisse, die zeigen, dass CloudWatch Logs einen Fehler für Daten erhalten hat, die an das Abonnementziel weitergeleitet werden.
  • DeliveryThrottling: Die Anzahl der Protokollereignisse, die zeigen, dass CloudWatch Logs gedrosselt wurde, als Daten an das Abonnementziel weitergeleitet wurden.

Wenn du einen dedizierten Kinesis-Datenstrom hast, überprüfe die Metriken des Datenstroms, um die Funktionalität zu überprüfen.

Informationen zu Problemen mit der kontoübergreifenden Protokollierung findest du unter Problembehandlung bei der kontoübergreifenden CloudWatch-Einrichtung.

Ähnliche Informationen

Eine IAM-Richtlinie und eine(n) IAM-Benutzer:in erstellen

Kontoübergreifende AWS-Regions-übergreifende gemeinsame Nutzung von Protokolldaten mithilfe von Amazon Kinesis Data Streams

AWS OFFICIALAktualisiert vor 9 Monaten