Migra i tuoi indici su Amazon OpenSearch Serverless con Logstash

Migra i tuoi indici su Amazon OpenSearch Serverless con Logstash

Nodo di origine: 1931332

Recentemente abbiamo annunciato la disponibilità generale di Amazon OpenSearch senza server , una nuova opzione per Servizio Amazon OpenSearch ciò semplifica l'esecuzione di carichi di lavoro di ricerca e analisi su larga scala senza dover configurare, gestire o ridimensionare i cluster OpenSearch. Con OpenSearch Serverless, ottieni gli stessi tempi di risposta interattivi in ​​millisecondi di OpenSearch Service con la semplicità di un ambiente serverless.

In questo post imparerai come migrare i tuoi indici esistenti da un dominio cluster gestito da OpenSearch Service a una raccolta serverless utilizzando Logstash.

Con i domini OpenSearch, ottieni cluster dedicati e sicuri configurati e ottimizzati per i tuoi carichi di lavoro in pochi minuti. Hai il controllo completo sulla configurazione delle risorse di elaborazione, memoria e storage nei cluster per ottimizzare i costi e le prestazioni delle tue applicazioni. OpenSearch Serverless offre un modo ancora più semplice per eseguire i carichi di lavoro di ricerca e analisi, senza dover mai pensare ai cluster. È sufficiente creare una raccolta e un gruppo di indici e iniziare a importare e interrogare i dati.

Panoramica della soluzione

Logstash è un software open source che fornisce ETL (estrazione, trasformazione e caricamento) per i tuoi dati. Puoi configurare Logstash per connettersi a un'origine e una destinazione tramite plug-in di input e output. Nel mezzo, configuri i filtri che possono trasformare i tuoi dati. Questo post ti guida attraverso i passaggi necessari per configurare Logstash per connettere un dominio del servizio OpenSearch (input) a una raccolta OpenSearch Serverless (output).

Imposta i plug-in di origine e destinazione nel file di configurazione di Logstash. Il file di configurazione ha sezioni per Input, Filtere Output. Una volta configurato, Logstash invierà una richiesta al dominio del servizio OpenSearch e leggerà i dati in base alla query inserita nel input sezione. Dopo che i dati sono stati letti da OpenSearch Service, puoi facoltativamente inviarli alla fase successiva Filter per trasformazioni come l'aggiunta o la rimozione di un campo dai dati di input o l'aggiornamento di un campo con valori diversi. In questo esempio, non utilizzerai il Filter collegare. Il prossimo è il Output collegare. La versione open source di Logstash (Logstash OSS) fornisce un modo conveniente per utilizzare l'API in blocco per caricare i dati nelle raccolte. OpenSearch Serverless supporta il logstash-output-opensearch plug-in di output, che supporta Gestione dell'identità e dell'accesso di AWS Credenziali (IAM) per il controllo dell'accesso ai dati.

Il diagramma seguente illustra il flusso di lavoro della nostra soluzione.

Prerequisiti

Prima di iniziare, assicurati di aver completato i seguenti prerequisiti:

  1. Annota l'ARN, il nome utente e la password del tuo dominio OpenSearch Service.
  2. Crea una raccolta OpenSearch Serverless. Se non conosci OpenSearch Serverless, fai riferimento a Log analytics nel modo più semplice con Amazon OpenSearch Serverless per i dettagli su come impostare la tua raccolta.

Configura Logstash e i plug-in di input e output per OpenSearch

Completa i seguenti passaggi per configurare Logstash e i tuoi plug-in:

  1. Scaricare logstash-oss-with-opensearch-output-plugin. (Questo esempio utilizza la distro per macos-x64. Per altre distro, fare riferimento al file artefatti.)
    wget https://artifacts.opensearch.org/logstash/logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz

  2. Estrai il tarball scaricato:
    tar -zxvf logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz
    cd logstash-8.4.0/

  3. Aggiorna il logstash-output-opensearch plug-in all'ultima versione:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin update logstash-output-opensearch

  4. installare il logstash-input-opensearch collegare:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin install logstash-input-opensearch

Prova il plug-in

Entriamo in azione e vediamo come funziona il plugin. Il seguente file di configurazione recupera i dati dal file movies indicizza nel tuo dominio OpenSearch Service e indicizza i dati nella tua raccolta OpenSearch Serverless con lo stesso nome di indice, movies.

Crea un nuovo file e aggiungi il seguente contenuto, quindi salva il file con nome opensearch-serverless-migration.conf. Fornisci i valori per l'endpoint di dominio del servizio OpenSearch in HOST, USERNAMEe PASSWORD nel input sezione e i dettagli dell'endpoint di raccolta OpenSearch Serverless in HOST con REGIONE, AWS_ACCESS_KEY_IDe AWS_SECRET_ACCESS_KEY nel output .

input { opensearch { hosts => ["https://<HOST>:443"] user => "<USERNAME>" password => "<PASSWORD>" index => "movies" query => '{ "query": { "match_all": {}} }' }
}
output { opensearch { ecs_compatibility => disabled index => "movies" hosts => "<HOST>:443" auth_type => { type => 'aws_iam' aws_access_key_id => '<AWS_ACCESS_KEY_ID>' aws_secret_access_key => '<AWS_SECRET_ACCESS_KEY>' region => '<REGION>' service_name => 'aoss' } legacy_template => false default_server_major_version => 2 }
}

È possibile specificare una query nel file input sezione della configurazione precedente. IL match_all query corrisponde a tutti i dati nel file movies indice. È possibile modificare la query se si desidera selezionare un sottoinsieme dei dati. Puoi anche utilizzare la query per parallelizzare il trasferimento dei dati eseguendo più processi Logstash con configurazioni che specificano sezioni di dati diverse. Puoi anche eseguire la parallelizzazione eseguendo i processi Logstash su più indici, se li hai.

Avvia Logstash

Utilizzare il seguente comando per avviare Logstash:

<path/to/your/logstash/root/directory>/bin/logstash -f <path/to/your/config/file>

Dopo aver eseguito il comando, Logstash recupererà i dati dall'indice di origine dal tuo dominio del servizio OpenSearch e scriverà nell'indice di destinazione nella tua raccolta OpenSearch Serverless. Quando il trasferimento dei dati è completo, Logstash si spegne. Vedere il seguente codice:

[2023-01-24T20:14:28,965][INFO][logstash.agent] Successfully
started Logstash API endpoint {:port=>9600, :ssl_enabled=>false}
…
…
[2023-01-24T20:14:38,852][INFO][logstash.javapipeline][main] Pipeline terminated {"pipeline.id"=>"main"}
[2023-01-24T20:14:39,374][INFO][logstash.pipelinesregistry] Removed pipeline from registry successfully {:pipeline_id=>:main}
[2023-01-24T20:14:39,399][INFO][logstash.runner] Logstash shut down.

Verifica i dati in OpenSearch Serverless

Puoi verificare che Logstash abbia copiato tutti i tuoi dati confrontando il conteggio dei documenti nel tuo dominio e la tua raccolta. Eseguire la query seguente dal file Strumenti di sviluppo scheda o con curl, postmano un client HTTP simile. La seguente query ti aiuta a cercare tutti i documenti dal file movies index e restituisce i primi documenti insieme al conteggio. Per impostazione predefinita, OpenSearch restituirà il conteggio dei documenti fino a un massimo di 10,000. Aggiungendo il track_total_hits flag ti aiuta a ottenere il conteggio esatto dei documenti se il conteggio dei documenti supera i 10,000.

GET movies/_search
{ "query": { "match_all": {} }, "track_total_hits" : true
}

Conclusione

In questo post, hai eseguito la migrazione dei dati dal tuo dominio OpenSearch Service alla tua raccolta OpenSearch Serverless utilizzando i plug-in di input e output OpenSearch di Logstash.

Resta sintonizzato per una serie di post incentrati sulle varie opzioni disponibili per creare analisi dei log efficaci e soluzioni di ricerca utilizzando OpenSearch Serverless. Puoi anche fare riferimento a Nozioni di base su Amazon OpenSearch Serverless workshop per saperne di più su OpenSearch Serverless.

Se hai un feedback su questo post, invialo nella sezione commenti. Se hai domande su questo post, apri una nuova discussione sul Forum del servizio Amazon OpenSearch or contatta il supporto AWS.


Circa gli autori

Prashant Agrawal è Senior Search Specialist Solutions Architect con Amazon OpenSearch Service. Lavora a stretto contatto con i clienti per aiutarli a migrare i loro carichi di lavoro nel cloud e aiuta i clienti esistenti a mettere a punto i loro cluster per ottenere prestazioni migliori e risparmiare sui costi. Prima di entrare in AWS, ha aiutato vari clienti a utilizzare OpenSearch ed Elasticsearch per i loro casi d'uso di ricerca e analisi dei log. Quando non lavora, puoi trovarlo in viaggio ed esplorare nuovi posti. Insomma, gli piace fare Mangia → Viaggia → Ripeti.

Jon Handler (@_searchgeek) è Sr. Principal Solutions Architect presso Amazon Web Services con sede a Palo Alto, CA. Jon lavora a stretto contatto con i team di CloudSearch ed Elasticsearch, fornendo assistenza e indicazioni a un'ampia gamma di clienti che hanno carichi di lavoro di ricerca che desiderano trasferire nel cloud AWS. Prima di entrare in AWS, la carriera di Jon come sviluppatore di software includeva quattro anni di codifica di un motore di ricerca e-commerce su larga scala.

Timestamp:

Di più da Big Data di AWS