Wie erstelle und konfiguriere ich mithilfe der CloudWatch-Konsole einen Abonnementfilter für Kinesis und behebe Probleme mit diesem?

Lesedauer: 6 Minute
0

Ich möchte die Amazon CloudWatch-Konsole verwenden, um einen Abonnementfilter für das Streaming meiner Amazon CloudWatch-Protokolle an Amazon Kinesis zu erstellen.

Kurzbeschreibung

Verwenden Sie einen Abonnementfilter, um CloudWatch-Protokolle nahezu in Echtzeit an dasselbe Konto oder an kontoübergreifende Kinesis- oder Amazon Kinesis Data Firehose-Ziele zu senden. Die CloudWatch Logs-Konsole unterstützt die Ziel- und Setup-Konfiguration.

Informationen zur Verwendung der Filtermustersyntax zur Konfiguration eines Abonnementfilters finden Sie unter Filter und Mustersyntax.

Lösung

Abonnementkonfiguration für einen Kinesis-Datenstrom im selben oder aktuellen Konto

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

Bevor Sie Ihr Abonnement erstellen, gehen Sie wie folgt vor:

Gehen Sie wie folgt vor, um eine benutzerdefinierte IAM-Rolle und Rollenrichtlinie zu erstellen:

1.Öffnen Sie die IAM-Konsole mit Ihrem Benutzer, der über Administratorrechte verfügt.

2.Wählen Sie im Navigationsbereich die Option Richtlinien aus.

3.Wählen Sie im Inhaltsbereich die Option Richtlinie erstellen aus.

4.Geben Sie das folgende Richtliniendokument für Rollenberechtigungen in die Registerkarte JSON ein. Ersetzen Sie REGION, ACCOUNT_ID und STREAM_NAME durch Ihre eigenen Daten:

{
  "Statement": \[{
    "Effect": "Allow",
    "Action": "kinesis:PutRecord",
    "Resource": "arn:aws:kinesis:REGION:ACCOUNT\_ID:stream/STREAM\_NAME"
  }\]
}

5.Öffnen Sie die IAM-Konsole.

6.Wählen Sie im Navigationsbereich Rollen und dann Rolle erstellen aus.

7.Wählen Sie den Rollentyp Benutzerdefinierte Vertrauensrichtlinie aus.

8.Geben oder fügen Sie im Abschnitt Benutzerdefinierte Vertrauensrichtlinie die benutzerdefinierte Vertrauensrichtlinie für die Rolle ein. Sehen Sie sich das folgende Beispiel für eine Vertrauensrichtlinie an:

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

9.Wählen Sie Weiter aus.

10.Wählen Sie die benutzerdefinierte IAM-Richtlinie aus, die Sie in Schritt 4 erstellt haben.

11.Wählen Sie Weiter und dann Rolle erstellen aus.

Nachdem Sie den Kinesis-Stream und die IAM-Rolle erstellt haben, erstellen Sie den Abonnementfilter:

1.Öffnen Sie die CloudWatch-Konsole.

2.Wählen Sie Protokollgruppe aus.

3.Wählen Sie Aktion, Abonnementfilter aus.

4.Um das Ziel zu konfigurieren, wählen Sie Kinesis-Abonnementfilter erstellen aus.

5.Wählen Sie Aktuelles Konto aus.

6.Wählen Sie Ihren Kinesis-Datenstrom aus der Dropdown-Liste aus.

7.Wählen Sie die IAM-Rolle aus, die Sie erstellt haben.

8.Wählen Sie die Verteilungsmethode:
Über Protokollstream:
Hierdurch wird bestätigt, dass Downstream-Verbraucher Protokollereignisse über Protokollstreams zusammenfassen können, dies jedoch möglicherweise weniger effizient ist. Bei dieser Methode können auch höhere Streaming-Kosten anfallen, da mehr Shards benötigt werden.
Zufällig: Hierdurch wird die Last auf die Kinesis-Stream-Shards verteilt, Downstream-Verbraucher können Protokollereignisse jedoch nicht über Protokollstreams zusammenfassen.

9.Protokollformat und Filter konfigurieren:
Wählen Sie das Protokollformat aus. Das Format kann Amazon VPC Flow Logs, AWS CloudTrail oder AWS Lambda für Protokolle sein, die von Amazon VPC, CloudTrail oder Lambda veröffentlicht werden. Alternativ können Sie je nach Ihren eingehenden Protokollereignissen JSON, Space delimited oder Sonstiges wählen.
Definieren Sie das Filtermuster im Abschnitt Abonnement-Filtermuster.
Geben Sie einen Namen für Ihren Abonnementfilter ein.

10.Verifizieren Sie Ihr Muster mit den vorhandenen Protokollereignisdaten.

11.Wählen Sie nach der Überprüfung die Option Streaming starten aus.

12.(Optional) Überprüfen Sie den Ablauf der Protokollereignisse, um sicherzustellen, dass Ihr Datenstrom funktioniert.

Konfiguration für ein kontoübergreifendes Kinesis-Datenstromziel

Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS CLI-Version verwenden.

Sie können CloudWatch Logs-Ereignisse an Kinesis-Datenströme in verschiedenen AWS-Konten und Regionen übermitteln. Richten Sie dazu die kontoübergreifende gemeinsame Nutzung von Protokolldaten mit Abonnements ein und legen Sie die Region fest.

Im folgenden Beispiel werden CloudWatch-Protokolle in der Region us-east-1 an den Kinesis-Datenstrom eines anderen AWS-Benutzers in us-west-2 übermittelt. Die Konto-ID des Protokolldatenempfängers lautet 222222222222 und die Konto-ID des Protokolldatensenders 111111111111.

Einen Zieldatenstrom im Empfängerkonto 222222222222 erstellen

Erstellen Sie in Kinesis im Konto des Datenempfängers einen Zieldatenstrom mit einer IAM-Rolle und einer Vertrauensrichtlinie.

Erstellen Sie einen Abonnementfilter im Quellkonto 111111111111

Gehen Sie wie folgt vor, um den Abonnementfilter zu erstellen:

1.Wählen Sie die Protokollgruppe aus.

2.Wählen Sie Aktion, Abonnementfilter aus.

3.Um das Ziel auszuwählen, wählen Sie Erstellen und anschließend Kinesis-Abonnementfilter erstellen aus.

4.Wählen Sie Anderes Konto aus.

5.Geben Sie für ein kontoübergreifendes Kinesis- oder Kinesis-Daten-Firehose-Ziel den Ziel-ARN an.

6.Wählen Sie die Verteilungsmethode:
Per Protokollstream: Hierdurch wird bestätigt, dass Downstream-Verbraucher Protokollereignisse über Protokollstreams zusammenfassen können, dies jedoch möglicherweise weniger effizient ist. Bei dieser Methode können auch höhere Streaming-Kosten anfallen, da mehr Shards benötigt werden.
Zufällig: Hierdurch wird die Last auf die Kinesis-Stream-Shards verteilt, Downstream-Verbraucher können Protokollereignisse jedoch nicht über Protokollstreams zusammenfassen.

7.Protokollformat und Filter konfigurieren:
Wählen Sie das Protokollformat aus. Das Format kann Amazon VPC Flow Logs, CloudTrail oder AWS Lambda für Protokolle sein, die von Amazon VPC, CloudTrail oder Lambda veröffentlicht werden. Alternativ können Sie je nach Ihren eingehenden Protokollereignissen JSON, Space delimited oder Sonstiges wählen.
Definieren Sie das Filtermuster im Abschnitt Abonnement-Filtermuster.
Geben Sie einen Namen für Ihren Abonnementfilter ein.

8.Verifizieren Sie Ihr Muster mit den vorhandenen Protokollereignisdaten.

9.Wählen Sie nach der Überprüfung die Option Streaming starten aus.

10.(Optional) Überprüfen Sie den Ablauf der Protokollereignisse, um sicherzustellen, dass Ihr Datenstrom funktioniert.

Problembehebung

  • Vergewissern Sie sich, dass sich Ihr Kinesis-Stream im Status Aktiv befindet. Sie können den Stream auf der Kinesis-Konsole ansehen oder den DescribeStream-API-Aufruf verwenden.
  • Stellen Sie sicher, dass die CloudWatch-Protokollgruppe und die Kinesis-Datenstrom-Regionen identisch sind.
  • Stellen Sie sicher, dass es eine IAM-Rolle gibt, die über Vertrauensberechtigungen für logs.yourregion.amazonaws.com verfügt und die Berechtigung kinesis:putrecords gewährt.
  • Stellen Sie sicher, dass die Regionen und Ressourcen in der IAM-Richtlinie korrekt sind.
  • Stellen Sie sicher, dass Sie nicht Kinesis Firehose ausgewählt haben, als Sie einen Abonnementfilter für den Kinesis-Datenstrom konfiguriert haben.
  • Nachdem Sie mit dem Streaming begonnen haben, überprüfen Sie die Metriken des Abonnementfilters, um sicherzustellen, dass das Filtermuster gültig ist und mit den eingehenden Protokollereignissen übereinstimmt. Überprüfen Sie die folgenden Metriken: ForwardedBytes: Das Volumen von Protokollereignissen in komprimierten Bytes, die an das Abonnementziel weitergeleitet wurden. ForwardedLogEvents: Die Anzahl der Protokollereignisse, die an das Abonnementziel weitergeleitet wurden.
  • Stellen Sie sicher, dass beim Stammen von Protokollereignissen an Ihr Ziel keine Fehler auftreten. Überprüfen Sie die folgenden Metriken: DeliveryErrors: Die Anzahl der Protokollereignisse, für die CloudWatch Logs bei der Weiterleitung von Daten an das Abonnementziel einen Fehler erhalten hat. DeliveryThrottling: Die Anzahl der Protokollereignisse, die darauf hindeuten, dass CloudWatch Logs bei der Weiterleitung der Daten an das Abonnementziel gedrosselt wurde.
  • Wenn Sie über einen dedizierten Kinesis-Stream verfügen, überprüfen Sie die Metriken des Streams, um die Funktionalität zu überprüfen.
  • Informationen zu Problemen mit der kontoübergreifenden Protokollierung finden Sie unter Problembehandlung bei der kontoübergreifenden CloudWatch-Einrichtung.
AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr