Amazon OpenSearch Ingestion-Pipelines erstellen - OpenSearch Amazon-Dienst

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.

Amazon OpenSearch Ingestion-Pipelines erstellen

Eine Pipeline ist der Mechanismus, den Amazon OpenSearch Ingestion verwendet, um Daten von ihrer Quelle (wo die Daten herkommen) zu ihrer Senke (wo die Daten hingehen) zu verschieben. Bei OpenSearch Ingestion wird die Senke immer eine einzelne Amazon OpenSearch Service-Domain sein, während die Quelle Ihrer Daten Clients wie Amazon S3, Fluent Bit oder Collector sein kann. OpenTelemetry

Weitere Informationen finden Sie in der Dokumentation unter Pipelines. OpenSearch

Voraussetzungen und erforderliche Rollen

Um eine OpenSearch Ingestion-Pipeline zu erstellen, benötigen Sie die folgenden Ressourcen:

  • Eine IAM-Rolle, die OpenSearch Ingestion übernimmt, um in die Senke zu schreiben. Sie werden diesen Rollen-ARN in Ihre Pipeline-Konfiguration aufnehmen.

  • Eine OpenSearch Service-Domain oder eine OpenSearch Serverless-Sammlung, die als Senke fungiert. Wenn Sie in eine Domain schreiben, muss sie OpenSearch 1.0 oder höher oder Elasticsearch 7.4 oder höher ausführen. Die Senke muss über eine Zugriffsrichtlinie verfügen, die Ihrer IAM-Pipeline-Rolle die entsprechenden Berechtigungen gewährt.

Anweisungen zum Erstellen dieser Ressourcen finden Sie in den folgenden Themen:

Anmerkung

Wenn Sie in eine Domäne schreiben, die eine differenzierte Zugriffskontrolle verwendet, müssen Sie zusätzliche Schritte ausführen. Siehe Schritt 3: Ordnen Sie die Pipeline-Rolle zu (nur für Domänen, die eine differenzierte Zugriffskontrolle verwenden).

Erforderliche Berechtigungen

OpenSearch Ingestion verwendet die folgenden IAM-Berechtigungen für die Erstellung von Pipelines:

  • osis:CreatePipeline— Erstellen Sie eine Pipeline.

  • osis:ValidatePipeline— Prüft, ob eine Pipeline-Konfiguration gültig ist.

  • iam:PassRole— Übergeben Sie die Pipeline-Rolle an OpenSearch Ingestion, damit diese Daten in die Domain schreiben kann. Diese Berechtigung muss für die Pipeline-Rollenressource (den ARN, den Sie für die sts_role_arn Option in der Pipeline-Konfiguration angeben) gelten, oder einfach, * wenn Sie in jeder Pipeline unterschiedliche Rollen verwenden möchten.

Die folgende Richtlinie gewährt beispielsweise die Berechtigung zum Erstellen einer Pipeline:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:ListPipelineBlueprints", "osis:ValidatePipeline" ] }, { "Resource":[ "arn:aws:iam::{your-account-id}:role/{pipeline-role}" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }

OpenSearch Die Erfassung umfasst auch eine sogenannte Berechtigung, die erforderlich istosis:Ingest, um signierte Anfragen mithilfe von Signature Version 4 an die Pipeline zu senden. Weitere Informationen finden Sie unter Eine Aufnahmerolle erstellen.

Anmerkung

Darüber hinaus muss der erste Benutzer, der eine Pipeline in einem Konto erstellt, über Berechtigungen für die iam:CreateServiceLinkedRole Aktion verfügen. Weitere Informationen finden Sie unter Pipeline-Rollenressource.

Weitere Informationen zu den einzelnen Berechtigungen finden Sie in der Serviceautorisierungsreferenz unter Aktionen, Ressourcen und OpenSearch Bedingungsschlüssel für die Datenerfassung.

Angabe der Pipeline-Version

Wenn Sie eine Pipeline konfigurieren, müssen Sie die Hauptversion von Data Prepper angeben, die die Pipeline ausführen soll. Um die Version anzugeben, nehmen Sie die version Option in Ihre Pipeline-Konfiguration auf:

version: "2" log-pipeline: source: ...

Wenn Sie Create wählen, ermittelt OpenSearch Ingestion die neueste verfügbare Nebenversion der von Ihnen angegebenen Hauptversion und stellt die Pipeline mit dieser Version bereit. Wenn Sie beispielsweise angeben version: "2" und die neueste unterstützte Version von Data Prepper 2.1.1 ist, stellt OpenSearch Ingestion Ihrer Pipeline Version 2.1.1 zur Verfügung. Wir zeigen die Nebenversion, die in Ihrer Pipeline läuft, nicht öffentlich an.

Um Ihre Pipeline zu aktualisieren, wenn eine neue Hauptversion von Data Prepper verfügbar ist, bearbeiten Sie die Pipeline-Konfiguration und geben Sie die neue Version an. Sie können eine Pipeline nicht auf eine frühere Version herunterstufen.

Anmerkung

OpenSearch Ingestion unterstützt neue Versionen von Data Prepper nicht sofort, sobald sie veröffentlicht werden. Es wird eine gewisse Verzögerung zwischen der Veröffentlichung einer neuen Version und der Unterstützung in Ingestion geben. OpenSearch Darüber hinaus unterstützt OpenSearch Ingestion möglicherweise bestimmte Haupt- oder Nebenversionen ausdrücklich nicht. Eine umfangreiche Liste finden Sie unter Unterstützte Data Prepper-Versionen.

Jedes Mal, wenn Sie eine Änderung an Ihrer Pipeline vornehmen, die eine blaue/grüne Bereitstellung initiiert, kann OpenSearch Ingestion sie auf die neueste Nebenversion der Hauptversion aktualisieren, die derzeit in der Pipeline-YAML-Datei konfiguriert ist. Weitere Informationen finden Sie unter. Blaue/grüne Bereitstellungen für Pipeline-Updates OpenSearch Durch die Aufnahme kann die Hauptversion Ihrer Pipeline nur geändert werden, wenn Sie die version Option in der Pipeline-Konfiguration explizit aktualisieren.

Angeben des Aufnahmepfads

Für pullbasierte Quellen wie OTel Trace und oTEL metrics erfordert OpenSearch Ingestion die zusätzliche path Option in Ihrer Quellkonfiguration. Der Pfad ist eine Zeichenfolge wie/log/ingest, die den URI-Pfad für die Aufnahme darstellt. Dieser Pfad definiert den URI, den Sie verwenden, um Daten an die Pipeline zu senden.

Nehmen wir beispielsweise an, Sie geben die folgende Subpipeline für einen Eintrag für eine Eingabe-Pipeline mit dem Namen an: logs

entry-pipeline: source: http: path: "/my/test_path"

Wenn Sie Daten in die Pipeline aufnehmen, müssen Sie den folgenden Endpunkt in Ihrer Client-Konfiguration angeben:. https://logs-abcdefgh.us-west-2.osis.amazonaws.com/my/test_path

Der Pfad muss mit einem Schrägstrich (/) beginnen und kann die Sonderzeichen '-', '_', 'enthalten . 'und'/'sowie der ${pipelineName} Platzhalter. Wenn Sie ${pipelineName} (z. B.path: "/${pipelineName}/test_path") verwenden, wird die Variable durch den Namen der zugehörigen Subpipeline ersetzt. In diesem Beispiel wäre https://logs.us-west-2.osis.amazonaws.com/entry-pipeline/test_path es.

Pipelines erstellen

In diesem Abschnitt wird beschrieben, wie Sie OpenSearch Ingestion-Pipelines mithilfe der OpenSearch Servicekonsole und der erstellen. AWS CLI

So erstellen Sie eine Pipeline
  1. Melden Sie sich bei der Amazon OpenSearch Service-Konsole unter https://console.aws.amazon.com/aos/home an.

  2. Wählen Sie im linken Navigationsbereich Pipelines und dann Pipeline erstellen aus.

  3. Geben Sie einen Namen für die Pipeline ein.

  4. (Optional) Wählen Sie „Persistenten Puffer aktivieren“. Ein persistenter Puffer speichert Ihre Daten in einem festplattenbasierten Puffer für mehrere AZs. Weitere Informationen finden Sie unter Persistent Buffering. Wenn Sie persistenten Puffer aktivieren, wählen Sie den AWS Key Management Service Schlüssel zum Verschlüsseln der Pufferdaten aus.

  5. Konfigurieren Sie die minimale und maximale Pipeline-Kapazität in Ingestion OpenSearch Compute Units (OCUs). Weitere Informationen finden Sie unter Skalierung von Pipelines.

  6. Geben Sie unter Pipeline-Konfiguration Ihre Pipeline-Konfiguration im YAML-Format an. Eine einzelne Pipeline-Konfigurationsdatei kann 1—10 Unter-Pipelines enthalten. Jede Subpipeline ist eine Kombination aus einer einzelnen Quelle, null oder mehr Prozessoren und einer einzelnen Senke. Bei OpenSearch der Datenaufnahme muss es sich bei der Senke immer um eine OpenSearch Dienstdomäne handeln. Eine Liste der unterstützten Optionen finden Sie unter. Unterstützte Plugins und Optionen für Amazon OpenSearch Ingestion-Pipelines

    Anmerkung

    Sie müssen die sigv4 Optionen sts_role_arn und in jede Unterpipeline aufnehmen. Die Pipeline übernimmt die in sts_role_arn zum Signieren von Anfragen an die Domäne definierte Rolle. Weitere Informationen finden Sie unter Amazon OpenSearch Ingestion-Pipelines Zugriff auf Domains gewähren.

    Die folgende Beispielkonfigurationsdatei verwendet die HTTP-Quelle und die Grok-Plug-ins, um unstrukturierte Protokolldaten zu verarbeiten und an eine OpenSearch Service-Domain zu senden. Die Sub-Pipeline ist benannt. log-pipeline

    version: "2" log-pipeline: source: http: path: "/log/ingest" processor: - grok: match: log: [ '%{COMMONAPACHELOG}' ] - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://search-my-domain.us-east-1.es.amazonaws.com" ] index: "apache_logs" aws: sts_role_arn: "arn:aws:iam::123456789012:role/{pipeline-role}" region: "us-east-1"
    Anmerkung

    Wenn Sie mehrere Senken innerhalb einer YAML-Pipeline-Definition angeben, müssen sie alle derselben OpenSearch Dienstdomäne angehören. Eine OpenSearch Ingestion-Pipeline kann nicht in mehrere verschiedene Domänen schreiben.

    Sie können Ihre eigene Pipeline-Konfiguration erstellen oder Datei hochladen auswählen und eine bestehende Konfiguration für eine selbstverwaltete Data Prepper-Pipeline importieren. Alternativ können Sie einen Konfigurations-Blueprint verwenden.

  7. Nachdem Sie Ihre Pipeline konfiguriert haben, wählen Sie Pipeline validieren aus, um zu bestätigen, dass Ihre Konfiguration korrekt ist. Wenn die Validierung fehlschlägt, beheben Sie die Fehler und führen Sie die Validierung erneut aus.

  8. Wählen Sie unter Netzwerkkonfiguration entweder VPC-Zugriff oder Öffentlicher Zugriff aus. Fahren Sie bei Wahl von Public access (Öffentlicher Zugriff) mit dem nächsten Schritt fort. Wenn Sie VPC-Zugriff wählen, konfigurieren Sie die folgenden Einstellungen:

    Einstellung Beschreibung
    VPC

    Wählen Sie für die Virtual Private Cloud (VPC) die ID, die Sie verwenden möchten. Die VPC und die Pipeline müssen identisch AWS-Region sein.

    Subnets

    Wählen Sie ein oder mehrere Subnetze aus. OpenSearch Der Service platziert einen VPC-Endpunkt und elastische Netzwerkschnittstellen in den Subnetzen.

    Sicherheitsgruppen

    Wählen Sie eine oder mehrere VPC-Sicherheitsgruppen aus, die es Ihrer gewünschten Anwendung ermöglichen, die OpenSearch Ingestion-Pipeline auf den von der Pipeline bereitgestellten Ports (80 oder 443) und Protokollen (HTTP oder HTTPs) zu erreichen.

    VPC-Anhangsoptionen

    Wenn es sich bei Ihrer Quelle um einen selbstverwalteten Endpunkt handelt, fügen Sie Ihre Pipeline einer VPC hinzu. Wählen Sie eine der bereitgestellten Standard-CIDR-Optionen oder verwenden Sie ein benutzerdefiniertes CIDR.

    Weitere Informationen finden Sie unter Konfiguration des VPC-Zugriffs für Amazon OpenSearch Ingestion-Pipelines.

  9. (Optional) Fügen Sie Ihrer Pipeline unter Tags ein oder mehrere Tags (Schlüssel-Wert-Paare) hinzu. Weitere Informationen finden Sie unter Kennzeichnen von Amazon OpenSearch Ingestion-Pipelines.

  10. (Optional) Aktivieren Sie unter Optionen zur Protokollveröffentlichung die Veröffentlichung von Pipeline-Protokollen in Amazon CloudWatch Logs. Wir empfehlen, die Protokollveröffentlichung zu aktivieren, damit Sie Pipeline-Probleme einfacher beheben können. Weitere Informationen finden Sie unter Überwachen der Pipeline-Protokolle.

  11. Wählen Sie Weiter.

  12. Überprüfen Sie Ihre Pipeline-Konfiguration und wählen Sie Erstellen aus.

OpenSearch Ingestion führt einen asynchronen Prozess zum Erstellen der Pipeline aus. Sobald der Pipeline-Status lautetActive, können Sie mit der Datenaufnahme beginnen.

Der Befehl create-pipeline akzeptiert die Pipeline-Konfiguration als Zeichenfolge oder in einer .yaml-Datei. Wenn Sie die Konfiguration als Zeichenfolge angeben, muss jede neue Zeile mit einem Escapezeichen versehen werden. \n Beispiel: "log-pipeline:\n source:\n http:\n processor:\n - grok:\n ...

Der folgende Beispielbefehl erstellt eine Pipeline mit der folgenden Konfiguration:

  • Mindestens 4 Ingestion-OCUs, maximal 10 Ingestion-OCUs

  • Bereitgestellt in einer Virtual Private Cloud (VPC)

  • Veröffentlichung von Protokollen aktiviert

aws osis create-pipeline \ --pipeline-name my-pipeline \ --min-units 4 \ --max-units 10 \ --log-publishing-options IsLoggingEnabled=true,CloudWatchLogDestination={LogGroup="MyLogGroup"} \ --vpc-options SecurityGroupIds={sg-12345678,sg-9012345},SubnetIds=subnet-1212234567834asdf \ --pipeline-configuration-body "file://pipeline-config.yaml"

OpenSearch Bei der Aufnahme wird ein asynchroner Prozess ausgeführt, um die Pipeline zu erstellen. Sobald der Pipeline-Status lautetActive, können Sie mit der Datenaufnahme beginnen. Verwenden Sie den GetPipelineBefehl, um den Status der Pipeline zu überprüfen.

Rufen Sie den Vorgang auf, um eine OpenSearch Ingestion-Pipeline mithilfe der OpenSearch Ingestion-API zu erstellen. CreatePipeline

Nachdem Ihre Pipeline erfolgreich erstellt wurde, können Sie Ihren Client konfigurieren und mit der Aufnahme von Daten in Ihre Service-Domain beginnen. OpenSearch Weitere Informationen finden Sie unter Arbeiten mit Amazon OpenSearch Ingestion-Pipeline-Integrationen.

Den Status der Pipeline-Erstellung verfolgen

Sie können den Status einer Pipeline verfolgen, während sie von OpenSearch Ingestion bereitgestellt und für die Datenaufnahme vorbereitet wird.

Nachdem Sie eine Pipeline zum ersten Mal erstellt haben, durchläuft sie mehrere Phasen, während OpenSearch Ingestion sie für die Datenaufnahme vorbereitet. Um die verschiedenen Phasen der Pipeline-Erstellung zu sehen, wählen Sie den Namen der Pipeline aus, um die Seite mit den Pipeline-Einstellungen aufzurufen. Wählen Sie unter Status die Option Details anzeigen aus.

Eine Pipeline durchläuft die folgenden Phasen, bevor sie für die Datenaufnahme verfügbar ist:

  • Validierung — Überprüfung der Pipeline-Konfiguration. Wenn diese Phase abgeschlossen ist, waren alle Validierungen erfolgreich.

  • Umgebung erstellen — Ressourcen vorbereiten und bereitstellen. Wenn diese Phase abgeschlossen ist, wurde die neue Pipeline-Umgebung erstellt.

  • Pipeline bereitstellen — Bereitstellung der Pipeline. Wenn diese Phase abgeschlossen ist, wurde die Pipeline erfolgreich bereitgestellt.

  • Zustand der Pipeline überprüfen — Überprüfung des Zustands der Pipeline. Wenn diese Phase abgeschlossen ist, wurden alle Integritätsprüfungen bestanden.

  • Datenverkehr aktivieren — Ermöglicht der Pipeline, Daten aufzunehmen. Wenn diese Phase abgeschlossen ist, können Sie mit der Aufnahme von Daten in die Pipeline beginnen.

Verwenden Sie den get-pipeline-change-progressBefehl, um den Status einer Pipeline zu überprüfen. Die folgende AWS CLI Anfrage überprüft den Status einer Pipeline mit dem Namenmy-pipeline:

aws osis get-pipeline-change-progress \ --pipeline-name my-pipeline

Antwort:

{ "ChangeProgressStatuses": { "ChangeProgressStages": [ { "Description": "Validating pipeline configuration", "LastUpdated": 1.671055851E9, "Name": "VALIDATION", "Status": "PENDING" } ], "StartTime": 1.671055851E9, "Status": "PROCESSING", "TotalNumberOfStages": 5 } }

Rufen Sie den Vorgang auf, um den Status der Pipeline-Erstellung mithilfe der OpenSearch Ingestion-API zu verfolgen. GetPipelineChangeProgress

Verwenden von Blueprints zum Erstellen einer Pipeline

Anstatt eine Pipeline-Definition von Grund auf neu zu erstellen, können Sie Konfigurations-Blueprints verwenden. Dabei handelt es sich um vorkonfigurierte YAML-Vorlagen für gängige Aufnahmeszenarien wie Trace Analytics oder Apache-Protokolle. Mithilfe von Konfigurations-Blueprints können Sie Pipelines einfach bereitstellen, ohne eine Konfiguration von Grund auf neu erstellen zu müssen.

Um einen Pipeline-Blueprint zu verwenden
  1. Melden Sie sich bei der Amazon OpenSearch Service-Konsole unter https://console.aws.amazon.com/aos/home an.

  2. Wählen Sie im linken Navigationsbereich Pipelines und dann Pipeline erstellen aus.

  3. Wählen Sie einen Blueprint aus. Die Pipeline-Konfiguration wird mit einer Sub-Pipeline für den von Ihnen ausgewählten Anwendungsfall gefüllt.

  4. Lesen Sie den auskommentierten Text, der Sie durch die Konfiguration des Blueprints führt.

    Wichtig

    Der Pipeline-Blueprint ist in seiner jetzigen Form nicht gültig. Sie müssen einige Änderungen vornehmen, z. B. den Rollen-ARN AWS-Region und den für die Authentifizierung zu verwendenden Rollen-ARN angeben, da andernfalls die Pipeline-Validierung fehlschlägt.

Senden Sie eine list-pipeline-blueprintsAnfrage, um eine Liste aller verfügbaren Blueprints mithilfe von zu erhalten. AWS CLI

aws osis list-pipeline-blueprints

Die Anfrage gibt eine Liste aller verfügbaren Blueprints zurück.

Verwenden Sie den folgenden Befehl, um detailliertere Informationen zu einem bestimmten Blueprint zu erhalten: get-pipeline-blueprint

aws osis get-pipeline-blueprint --blueprint-name AWS-ApacheLogPipeline

Diese Anfrage gibt den Inhalt des Apache-Protokoll-Pipeline-Blueprints zurück:

{ "Blueprint":{ "PipelineConfigurationBody":"###\n # Limitations: https://docs.aws.amazon.com/opensearch-service/latest/ingestion/ingestion.html#ingestion-limitations\n###\n###\n # apache-log-pipeline:\n # This pipeline receives logs via http (e.g. FluentBit), extracts important values from the logs by matching\n # the value in the 'log' key against the grok common Apache log pattern. The grokked logs are then sent\n # to OpenSearch to an index named 'logs'\n###\n\nversion: \"2\"\napache-log-pipeline:\n source:\n http:\n # Provide the path for ingestion. ${pipelineName} will be replaced with pipeline name configured for this pipeline.\n # In this case it would be \"/apache-log-pipeline/logs\". This will be the FluentBit output URI value.\n path: \"/${pipelineName}/logs\"\n processor:\n - grok:\n match:\n log: [ \"%{COMMONAPACHELOG_DATATYPED}\" ]\n sink:\n - opensearch:\n # Provide an AWS OpenSearch Service domain endpoint\n # hosts: [ \"https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com\" ]\n aws:\n # Provide a Role ARN with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com\n # sts_role_arn: \"arn:aws:iam::123456789012:role/Example-Role\"\n # Provide the region of the domain.\n # region: \"us-east-1\"\n # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection\n # serverless: true\n index: \"logs\"\n # Enable the S3 DLQ to capture any failed requests in an S3 bucket\n # dlq:\n # s3:\n # Provide an S3 bucket\n # bucket: \"your-dlq-bucket-name\"\n # Provide a key path prefix for the failed requests\n # key_path_prefix: \"${pipelineName}/logs/dlq\"\n # Provide the region of the bucket.\n # region: \"us-east-1\"\n # Provide a Role ARN with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com\n # sts_role_arn: \"arn:aws:iam::123456789012:role/Example-Role\"\n", "BlueprintName":"AWS-ApacheLogPipeline" } }

Um Informationen zu Pipeline-Blueprints mithilfe der OpenSearch Ingestion-API zu erhalten, verwenden Sie die Operationen und. ListPipelineBlueprintsGetPipelineBlueprint