Creazione di pipeline Amazon OpenSearch Ingestion - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di pipeline Amazon OpenSearch Ingestion

Una pipeline è il meccanismo utilizzato da Amazon OpenSearch Ingestion per spostare i dati dalla fonte (da cui provengono i dati) al relativo sink (dove vanno i dati). In OpenSearch Ingestion, il sink sarà sempre un singolo dominio Amazon OpenSearch Service, mentre la fonte dei dati potrebbe essere costituita da client come Amazon S3, Fluent Bit o Collector. OpenTelemetry

Per ulteriori informazioni, consulta Pipelines nella documentazione. OpenSearch

Prerequisiti e ruoli richiesti

Per creare una pipeline di OpenSearch ingestione, è necessario disporre delle seguenti risorse:

  • Un ruolo IAM che OpenSearch Ingestion assumerà per scrivere nel sink. Includerai questo ruolo ARN nella configurazione della pipeline.

  • Un dominio OpenSearch di servizio o una raccolta OpenSearch Serverless che funge da sink. Se stai scrivendo su un dominio, deve essere in esecuzione OpenSearch 1.0 o versione successiva oppure Elasticsearch 7.4 o versione successiva. Il sink deve disporre di una politica di accesso che conceda le autorizzazioni appropriate al ruolo della pipeline IAM.

Per istruzioni su come creare queste risorse, consulta i seguenti argomenti:

Nota

Se stai scrivendo su un dominio che utilizza un controllo granulare degli accessi, devi completare alcuni passaggi aggiuntivi. Per informazioni, consulta Passaggio 3: mappare il ruolo della pipeline (solo per i domini che utilizzano un controllo di accesso granulare).

Autorizzazioni richieste

OpenSearch Ingestion utilizza le seguenti autorizzazioni IAM per creare pipeline:

  • osis:CreatePipeline— Creare una pipeline.

  • osis:ValidatePipeline— Verificare se la configurazione di una tubazione è valida.

  • iam:PassRole— Passa il ruolo della pipeline a OpenSearch Ingestion in modo che possa scrivere dati nel dominio. Questa autorizzazione deve essere sulla risorsa del ruolo della pipeline (l'ARN specificato per l'opzione nella configurazione sts_role_arn della pipeline) o * semplicemente se prevedi di utilizzare ruoli diversi in ciascuna pipeline.

Ad esempio, la seguente politica concede l'autorizzazione a creare una 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 Ingestion include anche un'autorizzazione chiamataosis:Ingest, necessaria per inviare richieste firmate alla pipeline utilizzando Signature Version 4. Per ulteriori informazioni, consulta Creazione di un ruolo di importazione.

Nota

Inoltre, il primo utente che crea una pipeline in un account deve disporre delle autorizzazioni per l'azione. iam:CreateServiceLinkedRole Per ulteriori informazioni, consulta pipeline role resource.

Per ulteriori informazioni su ciascuna autorizzazione, vedere Azioni, risorse e chiavi di condizione per l' OpenSearch ingestione nel Service Authorization Reference.

Specificare la versione della pipeline

Quando si configura una pipeline, è necessario specificare la versione principale di Data Prepper che verrà eseguita dalla pipeline. Per specificare la versione, includi l'versionopzione nella configurazione della pipeline:

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

Quando scegliete Crea, OpenSearch Ingestion determina l'ultima versione secondaria disponibile della versione principale specificata e fornisce la pipeline con quella versione. Ad esempio, se si specifica e l'ultima versione supportata di Data Prepper è la 2.1.1version: "2", OpenSearch Ingestion esegue il provisioning della pipeline con la versione 2.1.1. Non mostriamo pubblicamente la versione secondaria in esecuzione nella tua pipeline.

Per aggiornare la pipeline quando è disponibile una nuova versione principale di Data Prepper, modifica la configurazione della pipeline e specifica la nuova versione. Non puoi effettuare il downgrade di una pipeline a una versione precedente.

Nota

OpenSearch Ingestion non supporta immediatamente le nuove versioni di Data Prepper non appena vengono rilasciate. Si verificherà un certo ritardo tra il momento in cui una nuova versione sarà disponibile pubblicamente e il momento in cui sarà supportata in Ingestion. OpenSearch Inoltre, OpenSearch Ingestion potrebbe esplicitamente non supportare del tutto determinate versioni principali o secondarie. Per un elenco completo, consulta Versioni di Data Prepper supportate.

Ogni volta che apporti una modifica alla pipeline che avvia una distribuzione blu/verde, OpenSearch Ingestion può aggiornarla all'ultima versione secondaria della versione principale attualmente configurata nel file YAML della pipeline. Implementazioni blu/verdi per gli aggiornamenti della pipelinePer ulteriori informazioni, vedere. OpenSearch L'ingestione non può modificare la versione principale della pipeline a meno che non aggiorni esplicitamente l'versionopzione all'interno della configurazione della pipeline.

Specificare il percorso di ingestione

Per le fonti basate su pull come Otel trace e OTel metrics, OpenSearch Ingestion richiede l'opzione aggiuntiva nella configurazione del codice sorgente. path Il percorso è una stringa come/log/ingest, che rappresenta il percorso URI per l'ingestione. Questo percorso definisce l'URI utilizzato per inviare dati alla pipeline.

Ad esempio, supponiamo di specificare la seguente sottopipeline di ingresso per una pipeline di ingestione denominata: logs

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

Quando si inseriscono dati nella pipeline, è necessario specificare il seguente endpoint nella configurazione del client:. https://logs-abcdefgh.us-west-2.osis.amazonaws.com/my/test_path

Il percorso deve iniziare con una barra (/) e può contenere i caratteri speciali '-', '_', ' . 'e'/', oltre al ${pipelineName} segnaposto. Se si utilizza ${pipelineName} (ad esempiopath: "/${pipelineName}/test_path"), la variabile viene sostituita con il nome della pipeline secondaria associata. In questo esempio, lo sarebbe. https://logs.us-west-2.osis.amazonaws.com/entry-pipeline/test_path

Creazione di pipeline

Questa sezione descrive come creare pipeline di OpenSearch ingestione utilizzando la console di OpenSearch servizio e il. AWS CLI

Per creare una pipeline
  1. Accedi alla console di Amazon OpenSearch Service all'indirizzo https://console.aws.amazon.com/aos/home.

  2. Scegli Pipelines nel riquadro di navigazione a sinistra e scegli Crea pipeline.

  3. Immetti un nome per la pipeline

  4. (Facoltativo) Scegliete Abilita buffer persistente. Un buffer persistente archivia i dati in un buffer basato su disco su più AZ. Per ulteriori informazioni, consulta Buffering persistente. Se abiliti il buffer persistente, seleziona la AWS Key Management Service chiave per crittografare i dati del buffer.

  5. Configura la capacità minima e massima della pipeline nelle Ingestion Compute OpenSearch Units (OCU). Per ulteriori informazioni, consulta Scalabilità delle pipeline.

  6. In Configurazione Pipeline, fornite la configurazione della pipeline in formato YAML. Un singolo file di configurazione della pipeline può contenere 1-10 sotto-pipeline. Ogni sub-pipeline è una combinazione di un'unica fonte, zero o più processori e un singolo sink. Per OpenSearch Ingestion, il sink deve sempre essere un dominio di servizio. OpenSearch Per un elenco delle opzioni supportate, vedere. Plugin e opzioni supportati per le pipeline di Amazon OpenSearch Ingestion

    Nota

    È necessario includere le sigv4 opzioni sts_role_arn e in ogni pipeline secondaria. La pipeline assume il ruolo definito in sts_role_arn per firmare le richieste al dominio. Per ulteriori informazioni, consulta Concedere alle pipeline OpenSearch di Amazon Ingestion l'accesso ai domini.

    Il seguente file di configurazione di esempio utilizza il codice sorgente HTTP e i plugin Grok per elaborare dati di registro non strutturati e inviarli a un dominio di servizio. OpenSearch La pipeline secondaria è denominata. 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"
    Nota

    Se si specificano più sink all'interno di una definizione di pipeline YAML, devono appartenere tutti allo stesso dominio di servizio. OpenSearch Una pipeline OpenSearch di ingestione non può scrivere su più domini diversi.

    Puoi creare la tua configurazione di pipeline oppure scegliere Carica file e importare una configurazione esistente per una pipeline Data Prepper autogestita. In alternativa, puoi utilizzare un blueprint di configurazione.

  7. Dopo aver configurato la pipeline, scegli Convalida pipeline per confermare che la configurazione è corretta. Se la convalida fallisce, correggi gli errori ed esegui nuovamente la convalida.

  8. In Configurazione di rete, scegli Accesso VPC o Accesso pubblico. Se si sceglie Public access (Accesso pubblico), andare al passaggio successivo. Se scegli l'accesso VPC, configura le seguenti impostazioni:

    Impostazione Descrizione
    VPC

    Scegli l'ID per il cloud privato virtuale (VPC) da utilizzare. Il VPC e la pipeline devono trovarsi nello stesso ambiente. Regione AWS

    Sottoreti

    Scegli una o più sottoreti. OpenSearch Il servizio inserirà un endpoint VPC e interfacce di rete elastiche nelle sottoreti.

    Gruppi di sicurezza

    Scegli uno o più gruppi di sicurezza VPC che consentano all'applicazione richiesta di raggiungere la pipeline di OpenSearch ingestione sulle porte (80 o 443) e sui protocolli (HTTP o HTTPS) esposti dalla pipeline.

    Opzioni di collegamento VPC

    Se la tua fonte è un endpoint autogestito, collega la pipeline a un VPC. Scegli una delle opzioni CIDR predefinite fornite o utilizza un CIDR personalizzato.

    Per ulteriori informazioni, consulta Configurazione dell'accesso VPC per le pipeline di Amazon Ingestion OpenSearch .

  9. (Facoltativo) In Tag, aggiungi uno o più tag (coppie chiave-valore) alla tua pipeline. Per ulteriori informazioni, consulta Etichettatura delle pipeline di Amazon OpenSearch Ingestion.

  10. (Facoltativo) In Opzioni di pubblicazione dei log, attiva la pubblicazione dei log della pipeline su Amazon CloudWatch Logs. Ti consigliamo di abilitare la pubblicazione dei log in modo da poter risolvere più facilmente i problemi relativi alla pipeline. Per ulteriori informazioni, consulta la pagina Monaggio aggio aggio aggio aggio aggio aggio aggio aggio aggio.

  11. Seleziona Next (Successivo).

  12. Controlla la configurazione della pipeline e scegli Crea.

OpenSearch Ingestion esegue un processo asincrono per creare la pipeline. Una volta raggiunto lo stato della pipeline, puoi iniziare a importare i datiActive.

Il comando create-pipeline accetta la configurazione della pipeline come stringa o all'interno di un file.yaml. Se fornite la configurazione come stringa, ogni nuova riga deve essere scappata con. \n Ad esempio, "log-pipeline:\n source:\n http:\n processor:\n - grok:\n ...

Il seguente comando di esempio crea una pipeline con la seguente configurazione:

  • Minimo 4 OCU di ingestione, massimo 10 OCU di ingestione

  • Fornito all'interno di un cloud privato virtuale (VPC)

  • Pubblicazione dei log abilitata

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 Ingestion esegue un processo asincrono per creare la pipeline. Una volta raggiunto lo stato della pipeline, puoi iniziare a importare i datiActive. Per controllare lo stato della pipeline, utilizzate il comando. GetPipeline

Per creare una pipeline OpenSearch di ingestione utilizzando l'API Ingestion, chiama l' OpenSearch operazione. CreatePipeline

Dopo aver creato correttamente la pipeline, puoi configurare il client e iniziare a importare dati nel tuo dominio di servizio. OpenSearch Per ulteriori informazioni, consulta Utilizzo delle integrazioni della OpenSearch pipeline di Amazon Ingestion.

Monitoraggio dello stato della creazione della pipeline

È possibile tenere traccia dello stato di una pipeline man mano che OpenSearch Ingestion la rifornisce e la prepara per l'importazione dei dati.

Dopo aver creato inizialmente una pipeline, questa passa attraverso più fasi man mano OpenSearch che Ingestion la prepara per l'inserimento dei dati. Per visualizzare le varie fasi della creazione della pipeline, scegliete il nome della pipeline per visualizzarne la pagina delle impostazioni della pipeline. In Stato, scegliete Visualizza dettagli.

Una pipeline passa attraverso le seguenti fasi prima di essere disponibile per l'acquisizione dei dati:

  • Convalida: convalida della configurazione della pipeline. Una volta completata questa fase, tutte le convalide hanno avuto esito positivo.

  • Crea ambiente: preparazione e approvvigionamento delle risorse. Al termine di questa fase, è stato creato il nuovo ambiente di pipeline.

  • Distribuisci pipeline: distribuzione della pipeline. Una volta completata questa fase, la pipeline è stata implementata con successo.

  • Verifica dello stato della pipeline: verifica dello stato della pipeline. Una volta completata questa fase, tutti i controlli sanitari sono stati superati.

  • Abilita il traffico: consente alla pipeline di importare dati. Una volta completata questa fase, puoi iniziare a importare i dati nella pipeline.

Utilizzate il get-pipeline-change-progresscomando per controllare lo stato di una pipeline. La seguente AWS CLI richiesta verifica lo stato di una pipeline denominata: my-pipeline

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

Risposta:

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

Per tenere traccia dello stato della creazione della pipeline utilizzando l'API OpenSearch Ingestion, chiama l'operazione. GetPipelineChangeProgress

Utilizzo dei blueprint per creare una pipeline

Invece di creare una definizione di pipeline partendo da zero, è possibile utilizzare i blueprint di configurazione, che sono modelli YAML preconfigurati per scenari di ingestione comuni come Trace Analytics o i log di Apache. I blueprint di configurazione consentono di effettuare facilmente il provisioning delle pipeline senza dover creare una configurazione da zero.

Per utilizzare un blueprint di pipeline
  1. Accedi alla console di Amazon OpenSearch Service all'indirizzo https://console.aws.amazon.com/aos/home.

  2. Scegli Pipelines nel riquadro di navigazione a sinistra e scegli Crea pipeline.

  3. Seleziona un progetto. La configurazione della pipeline viene compilata con una pipeline secondaria per il caso d'uso selezionato.

  4. Esamina il testo commentato che ti guida nella configurazione del blueprint.

    Importante

    Il blueprint della pipeline non è valido così com'è. È necessario apportare alcune modifiche, ad esempio fornire l'ARN Regione AWS e il ruolo da utilizzare per l'autenticazione, altrimenti la convalida della pipeline avrà esito negativo.

Per ottenere un elenco di tutti i blueprint disponibili utilizzando il AWS CLI, invia una richiesta. list-pipeline-blueprints

aws osis list-pipeline-blueprints

La richiesta restituisce un elenco di tutti i blueprint disponibili.

Per ottenere informazioni più dettagliate su un progetto specifico, usa il get-pipeline-blueprintcomando:

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

Questa richiesta restituisce il contenuto del blueprint della pipeline di log di Apache:

{ "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" } }

Per ottenere informazioni sui progetti di pipeline utilizzando l'API OpenSearch Ingestion, utilizza le operazioni and. ListPipelineBlueprintsGetPipelineBlueprint