Wie streame ich Daten aus CloudWatch Logs in einen VPC-basierten Amazon-OpenSearch-Service-Cluster in einem anderen Konto?

Letzte Aktualisierung: 23.07.2021

Ich versuche, Daten von Amazon CloudWatch Logs mithilfe einer Virtual Private Cloud (VPC) in einem anderen Konto an ein Amazon-OpenSearch-Service-Cluster zu streamen. Ich erhalte jedoch die Fehlermeldung „Geben Sie einen gültigen Endpunkt von Amazon OpenSearch Service ein“. Wie kann ich diesen Fehler beheben?

Kurzbeschreibung

Hinweis: Amazon OpenSearch Service ist der Nachfolger von Amazon Elasticsearch Service (Amazon ES).

Führen Sie die folgenden Schritte aus, um Daten von CloudWatch Logs zu einem OpenSearch-Service-Cluster in einem anderen Konto zu streamen:

1.    Richten Sie CloudWatch Logs in Konto A ein.

2.    Konfigurieren Sie AWS Lambda in Konto A.

3.    Konfigurieren Sie das Peering von Amazon Virtual Private Cloud (Amazon VPC) zwischen Konten.

Auflösung

CloudWatch Logs in Konto A einrichten

1.    Öffnen Sie die CloudWatch-Logs-Konsole in Konto A und wählen Sie Ihre Protokollgruppe aus.

2.    Wählen Sie Aktionen aus.

3.    Wählen Sie den Filter OpenSearch-Abonnement erstellen.

4.    Wählen Sie für die Option Konto auswählen Dieses Konto aus.

5.    Wählen Sie in der Dropdown-Liste für den OpenSearch-Service-Cluster einen vorhandenen Cluster für Konto A aus.

6.    Wählen Sie die Lambda IAM-Ausführungsrolle aus, die über die Berechtigung verfügt, Aufrufe an den ausgewählten OpenSearch-Service-Cluster zu tätigen.

7.    Fügen Sie die Richtlinie AWSLambdaVPCAccessExecutionRole an Ihre Rolle an.

8.    Wählen Sie unter Protokollformat und Filter konfigurieren Ihr Protokollformat und Ihr Abonnement-Filtermuster aus.

9.    Wählen Sie Weiter.

10.    Geben Sie den Namen des Abonnementfilters ein und wählen Sie Streaming starten. Weitere Informationen zum Streaming finden Sie unter Streamen von CloudWatch-Logs-Daten zu Amazon OpenSearch Service.

Lambda in Konto A konfigurieren

1.    Öffnen Sie in Konto A die Lambda-Konsole.

2.    Wählen Sie die Lambda-Funktion aus.

3.    Aktualisieren Sie im Funktionscode die Endpunktvariable des OpenSearch-Service-Clusters in Konto B. Diese Aktualisierung ermöglicht es der Lambda-Funktion, Daten an die OpenSearch-Service-Domäne in Konto B zu senden.

Hinweis: Sie können den öffentlichen DNS-Namen für Konto B einfügen. Stellen Sie sicher, dass Sie „https://“ vom URL-Endpunkt entfernen.

4.    Wählen Sie Konfiguration aus.

5.    Wählen Sie VPC aus.

6.    Wählen Sie unter VPC Bearbeiten aus.

7.    Wählen Sie die VPC, Subnetze und Sicherheitsgruppen aus.

Hinweis: Diese Auswahl stellt sicher, dass die Lambda-Funktion innerhalb einer VPC ausgeführt wird und VPC-Routing verwendet, um Daten zurück an die OpenSearch-Service-Domäne zu senden. Weitere Informationen zu Konfigurationen der Amazon Virtual Private Cloud (Amazon VPC) finden Sie unter Konfigurieren einer Lambda-Funktion für den Zugriff auf Ressourcen in einer VPC.

8.    Wählen Sie Speichern aus.

VPC-Peering zwischen Konten konfigurieren

1.    Öffnen Sie die Amazon-VPC-Konsole in Konto A und Konto B.

Hinweis: Stellen Sie sicher, dass die VPC keine überschneidenden CIDR-Blöcke hat.

2.    Erstellen Sie eine VPC-Peering-Session zwischen den beiden benutzerdefinierten VPCs (Lambda und OpenSearch Service). Diese VPC-Peering-Session ermöglicht es Lambda, Daten an die OpenSearch-Service-Domäne zu senden. Weitere Informationen zu VPC-Peering-Verbindungen finden Sie unter Erstellen und Akzeptieren einer VPC-Peering-Verbindung.

3.    Aktualisieren Sie die Routing-Tabelle für beide VPCs. Weitere Informationen zu Routing-Tabellen finden Sie unter Aktualisieren der Routing-Tabellen für eine VPC-Peering-Verbindung.

4.    Wechseln Sie in Konto A zu Sicherheitsgruppen.

5.    Wählen Sie die Sicherheitsgruppe aus, die dem Subnetz zugewiesen ist, in dem Lambda eingerichtet ist.

6.    Fügen Sie die eingehende Regel hinzu, um den Verkehr von den OpenSearch Service-Subnetzen zuzulassen.

7.    Wählen Sie unter Konto B die Sicherheitsgruppe aus, die dem Subnetz zugewiesen ist, in dem OpenSearch Service eingerichtet ist.

8.    Fügen Sie die eingehende Regel hinzu, um Datenverkehr aus den Lambda-Subnetzen zuzulassen.

9.    Öffnen Sie in Konto B die OpenSearch-Service-Konsole.

10.    Wählen Sie Aktionen aus.

11.    Wählen Sie Zugriffsrichtlinie ändern und fügen Sie dann die folgende Richtlinie an:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
       
    "AWS": "arn:aws:iam::<AWS Account A>:role/<Lambda Execution Role>"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1: ::<AWS
    Account B>:domain/<OpenSearch Domain Name>/*"
    }
  ]
}

Diese Richtlinie ermöglicht es OpenSearch Service, Anrufe von der Ausführungsrolle der Lambda-Funktion aus zu tätigen.

12.    Überprüfen Sie die Metrik für Fehleranzahl und Erfolgsrate in der Lambda-Konsole. Diese Metrik überprüft, ob Protokolle erfolgreich an OpenSearch Service übermittelt wurden.

13.    Überprüfen Sie die Indizierungsrate in OpenSearch Service, um festzustellen, ob die Daten gesendet wurden. CloudWatch Logs streamt jetzt über beide Konten in Ihrer Amazon VPC.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?