Tutorial: importazione di dati in un dominio utilizzando Amazon Ingestion OpenSearch - 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à.

Tutorial: importazione di dati in un dominio utilizzando Amazon Ingestion OpenSearch

Questo tutorial mostra come usare Amazon OpenSearch Ingestion per configurare una pipeline semplice e inserire dati in un dominio Amazon Service. OpenSearch Una pipeline è una risorsa che OpenSearch Ingestion fornisce e gestisce. È possibile utilizzare una pipeline per filtrare, arricchire, trasformare, normalizzare e aggregare i dati per l'analisi e la visualizzazione a valle in Service. OpenSearch

Questo tutorial illustra i passaggi di base per avviare rapidamente una pipeline. Per informazioni più dettagliate, consulta Creazione di pipeline.

In questo tutorial completerai le seguenti fasi:

All'interno del tutorial, creerai le seguenti risorse:

  • Una pipeline denominata ingestion-pipeline

  • Un dominio denominato su ingestion-domain cui la pipeline scriverà

  • Un IAM ruolo denominato PipelineRole che la pipeline assumerà per scrivere nel dominio

Autorizzazioni richieste

Per completare questo tutorial, devi disporre delle IAM autorizzazioni corrette. L'utente o il ruolo devono avere una politica basata sull'identità allegata con le seguenti autorizzazioni minime. Queste autorizzazioni consentono di creare un ruolo pipeline (iam:Create), creare o modificare un dominio (es:*) e utilizzare pipelines (). osis:*

Inoltre, è richiesta l'iam:PassRoleautorizzazione sulla risorsa del ruolo pipeline. Questa autorizzazione consente di passare il ruolo della pipeline a OpenSearch Ingestion in modo che possa scrivere dati nel dominio.

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

Fase 1: Creare il ruolo della pipeline

Innanzitutto, crea un ruolo che la pipeline assumerà per accedere al OpenSearch service domain sink. Includerai questo ruolo nella configurazione della pipeline più avanti in questo tutorial.

Per creare il ruolo della pipeline
  1. Apri la AWS Identity and Access Management console all'indirizzo https://console.aws.amazon.com/iamv2/.

  2. Scegli Politiche, quindi scegli Crea politica.

  3. In questo tutorial, inserirai i dati in un dominio chiamatoingestion-domain, che creerai nel passaggio successivo. Seleziona JSONe incolla la seguente politica nell'editor. Sostituiscila {your-account-id} con l'ID del tuo account e, se necessario, modifica la regione.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain" }, { "Effect": "Allow", "Action": "es:ESHttp*", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain/*" } ] }

    Se desideri scrivere dati su un dominio esistente, sostituiscili ingestion-domain con il nome del tuo dominio.

    Nota

    Per semplicità in questo tutorial, utilizziamo una politica di accesso abbastanza ampia. Negli ambienti di produzione, tuttavia, ti consigliamo di applicare una politica di accesso più restrittiva al tuo ruolo di pipeline. Per un esempio di policy che fornisce le autorizzazioni minime richieste, vedi. Concedere alle pipeline OpenSearch di Amazon Ingestion l'accesso ai domini

  4. Scegliete Avanti, scegliete Avanti e assegnate un nome alla vostra policy pipeline-policy.

  5. Scegli Create Policy (Crea policy).

  6. Quindi, crea un ruolo e allega la policy ad esso. Selezionare Roles (Ruoli), quindi selezionare Create role (Crea ruolo).

  7. Scegli una politica di fiducia personalizzata e incolla la seguente politica nell'editor:

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"osis-pipelines.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  8. Scegli Next (Successivo). Quindi cerca e seleziona pipeline-policy (che hai appena creato).

  9. Scegli Avanti e assegna un nome al ruolo. PipelineRole

  10. Scegliere Crea ruolo.

Ricorda l'Amazon Resource Name (ARN) del ruolo (ad esempio,arn:aws:iam::your-account-id:role/PipelineRole). Ne avrai bisogno quando creerai la tua pipeline.

Passaggio 2: crea un dominio

Quindi, crea un dominio denominato in ingestion-domain cui inserire i dati.

Accedi alla console di Amazon OpenSearch Service da https://console.aws.amazon.com/aos/casa e crea un dominio che soddisfi i seguenti requisiti:

  • È in esecuzione OpenSearch 1.0 o versione successiva oppure Elasticsearch 7.4 o versione successiva

  • Utilizza l'accesso pubblico

  • Non utilizza un controllo degli accessi a grana fine

Nota

Questi requisiti hanno lo scopo di garantire la semplicità di questo tutorial. Negli ambienti di produzione, è possibile configurare un dominio con VPC accesso e/o utilizzare un controllo degli accessi granulare. Per utilizzare un controllo granulare degli accessi, consulta Mappare il ruolo della pipeline.

Il dominio deve avere una politica di accesso che conceda l'autorizzazionePipelineRole, creata nel passaggio precedente. La pipeline assumerà questo ruolo (denominato sts_role_arn nella configurazione della pipeline) per inviare i dati al service domain sink. OpenSearch

Assicurati che il dominio abbia la seguente politica di accesso a livello di dominio, che concede l'accesso al dominio. PipelineRole Sostituisci la regione e l'ID dell'account con i tuoi:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account-id:role/PipelineRole" }, "Action": "es:*", "Resource": "arn:aws:es:us-east-1:your-account-id:domain/ingestion-domain/*" } ] }

Per ulteriori informazioni sulla creazione di politiche di accesso a livello di dominio, consulta Politiche di accesso basate sulle risorse.

Se hai già creato un dominio, modifica la politica di accesso esistente per fornire le autorizzazioni di cui sopra. PipelineRole

Nota

Ricorda l'endpoint del dominio (ad esempio,https://search-ingestion-domain.us-east-1.es.amazonaws.com). Lo utilizzerai nel passaggio successivo per configurare la tua pipeline.

Fase 3: Creare una pipeline

Ora che disponi di un dominio e di un ruolo con i diritti di accesso appropriati, puoi creare una pipeline.

Per creare una pipeline
  1. Nella console di Amazon OpenSearch Service, scegli Pipelines dal riquadro di navigazione a sinistra.

  2. Scegliere Create pipeline (Crea pipeline).

  3. Seleziona la pipeline vuota, quindi scegli Seleziona blueprint.

  4. Assegna un nome alla pipeline di importazione e mantieni le impostazioni di capacità come predefinite.

  5. In questo tutorial, creerai una semplice sottopipeline chiamata che utilizza il plugin sorgente Http. log-pipeline Questo plugin accetta i dati di registro in un formato JSON array. Specificherai un singolo dominio di OpenSearch servizio come sink e inserirai tutti i dati nell'application_logsindice.

    In Configurazione Pipeline, incolla la seguente YAML configurazione nell'editor:

    version: "2" log-pipeline: source: http: path: "/${pipelineName}/test_ingestion_path" processor: - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://search-ingestion-domain.us-east-1.es.amazonaws.com" ] index: "application_logs" aws: sts_role_arn: "arn:aws:iam::your-account-id:role/PipelineRole" region: "us-east-1"
    Nota

    L'pathopzione specifica il URI percorso per l'ingestione. Questa opzione è necessaria per le sorgenti basate su pull. Per ulteriori informazioni, consulta Specificare il percorso di ingestione.

  6. Sostituisci hosts URL con l'endpoint del dominio che hai creato (o modificato) nella sezione precedente. Sostituisci il sts_role_arn parametro con ARN of. PipelineRole

  7. Scegli Convalida pipeline e assicurati che la convalida abbia esito positivo.

  8. Per semplificare questo tutorial, configura l'accesso pubblico alla pipeline. In Rete, scegli Accesso pubblico.

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

  9. Mantieni abilitata la pubblicazione dei log in caso di problemi durante il completamento di questo tutorial. Per ulteriori informazioni, consulta Monaggio aggio aggio aggio aggio aggio aggio aggio aggio aggio.

    Specificate il seguente nome del gruppo di log: /aws/vendedlogs/OpenSearchIngestion/ingestion-pipeline/audit-logs

  10. Scegli Next (Successivo). Controlla la configurazione della pipeline e scegli Crea pipeline. La pipeline impiega 5-10 minuti per diventare attiva.

Fase 4: Inserire alcuni dati di esempio

Quando lo stato della pipeline è impostatoActive, puoi iniziare a importare dati al suo interno. È necessario firmare tutte le HTTP richieste alla pipeline utilizzando Signature Version 4. Usa uno HTTP strumento come Postman o awscurl per inviare alcuni dati alla pipeline. Come per l'indicizzazione dei dati direttamente su un dominio, l'importazione dei dati in una pipeline richiede sempre un ruolo o una chiave di accesso e una IAM chiave segreta. IAM

Nota

Il principale che firma la richiesta deve disporre dell'autorizzazione. osis:Ingest IAM

Innanzitutto, recupera l'importazione URL dalla pagina delle impostazioni della pipeline:

Pipeline settings page showing ingestion URL for an active ingestion pipeline.

Quindi, inserisci alcuni dati di esempio. La seguente richiesta utilizza awscurl per inviare un singolo file di registro all'indice: application_logs

awscurl --service osis --region us-east-1 \ -X POST \ -H "Content-Type: application/json" \ -d '[{"time":"2014-08-11T11:40:13+00:00","remote_addr":"122.226.223.69","status":"404","request":"GET http://www.k2proxy.com//hello.html HTTP/1.1","http_user_agent":"Mozilla/4.0 (compatible; WOW64; SLCC2;)"}]' \ https://pipeline-endpoint.us-east-1.osis.amazonaws.com/log-pipeline/test_ingestion_path

Dovresti vedere una 200 OK risposta. Se ricevi un errore di autenticazione, potrebbe essere perché stai importando dati da un account diverso da quello in cui si trova la pipeline. Per informazioni, consulta Risoluzione dei problemi relativi alle autorizzazioni.

Ora, interroga l'application_logsindice per assicurarti che la voce di registro sia stata inserita correttamente:

awscurl --service es --region us-east-1 \ -X GET \ https://search-ingestion-domain.us-east-1.es.amazonaws.com/application_logs/_search | json_pp

Esempio di risposta:

{ "took":984, "timed_out":false, "_shards":{ "total":1, "successful":5, "skipped":0, "failed":0 }, "hits":{ "total":{ "value":1, "relation":"eq" }, "max_score":1.0, "hits":[ { "_index":"application_logs", "_type":"_doc", "_id":"z6VY_IMBRpceX-DU6V4O", "_score":1.0, "_source":{ "time":"2014-08-11T11:40:13+00:00", "remote_addr":"122.226.223.69", "status":"404", "request":"GET http://www.k2proxy.com//hello.html HTTP/1.1", "http_user_agent":"Mozilla/4.0 (compatible; WOW64; SLCC2;)", "@timestamp":"2022-10-21T21:00:25.502Z" } } ] } }

Risoluzione dei problemi relativi alle autorizzazioni

Se hai seguito i passaggi del tutorial e continui a riscontrare errori di autenticazione quando tenti di importare dati, è possibile che il ruolo della scrittura in una pipeline sia Account AWS diverso da quello della pipeline stessa. In questo caso, devi creare e assumere un ruolo che ti consenta specificamente di importare dati. Per istruzioni, consulta Fornire l'accesso all'importazione su più account.

Risorse correlate

Questo tutorial ha presentato un semplice caso d'uso di ingestione di un singolo documento. HTTP Negli scenari di produzione, configurerai le tue applicazioni client (come Fluent Bit, Kubernetes o OpenTelemetry Collector) per inviare dati a una o più pipeline. Le tue pipeline saranno probabilmente più complesse del semplice esempio di questo tutorial.

Per iniziare a configurare i client e ad acquisire dati, consulta le seguenti risorse: