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 IAM ruolo 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 avere una politica di accesso che conceda le autorizzazioni appropriate al tuo ruolo di 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 IAM autorizzazioni 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 riguardare la risorsa del ruolo della pipeline (ARNquella specificata per l'sts_role_arnopzione nella configurazione della pipeline) o semplicemente * se si prevede 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 Create, 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 pipeline. YAML Implementazioni blu/verdi per gli aggiornamenti della pipelinePer ulteriori informazioni, consulta. OpenSearch Ingestion non può modificare la versione principale della pipeline a meno che non aggiorni esplicitamente l'versionopzione all'interno della configurazione della pipeline.

Specificazione del percorso di importazione

Per le fonti basate su pull come OTeltrace e OTelmetrics, OpenSearch Ingestion richiede l'opzione aggiuntiva nella configurazione del codice sorgente. path Il percorso è una stringa come/log/ingest, che rappresenta il percorso per l'URIingestione. Questo percorso definisce URI quello da utilizzare 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 da https://console.aws.amazon.com/aos/casa.

  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ù livelli. AZs 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 in Ingestion Compute OpenSearch Units (). OCUs 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 i plugin HTTP source e Grok per elaborare dati di registro non strutturati e inviarli a un dominio di servizio. OpenSearch La pipeline secondaria è denominata. log-pipeline

    Esempio YAML

    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"

    Esempio JSON

    { "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 specificate più sink all'interno di una definizione di YAML pipeline, devono appartenere tutti allo stesso dominio di OpenSearch servizio. 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 modello 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 VPCAccesso o Accesso pubblico. Se si sceglie Public access (Accesso pubblico), andare al passaggio successivo. Se scegli VPCl'accesso, configura le seguenti impostazioni:

    Impostazione Descrizione
    Gestione degli endpoint

    Scegliete se creare gli VPC endpoint da soli o se farli creare da OpenSearch Ingestion per voi. Per impostazione predefinita, la gestione degli endpoint utilizza gli endpoint gestiti da Ingestion. OpenSearch

    VPC

    Scegli l'ID del cloud privato virtuale (VPC) che desideri utilizzare. La pipeline VPC and deve essere nella stessa Regione AWS.

    Sottoreti

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

    Gruppi di sicurezza

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

    VPCopzioni di allegato

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

    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 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 ingestioniOCUs, massimo 10 ingestioni OCUs

  • 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 Ingestion, chiamate l'operazione OpenSearch . API 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 effettua 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 OpenSearch Ingestion, chiamate API 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 YAML modelli 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 da https://console.aws.amazon.com/aos/casa.

  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 il ruolo Regione AWS e il ruolo da utilizzare per l'autenticazione, altrimenti la ARN convalida della pipeline avrà esito negativo.

Per ottenere un elenco di tutti i progetti 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 OpenSearch IngestionAPI, utilizzate le operazioni and. ListPipelineBlueprintsGetPipelineBlueprint