Migrați-vă indexurile la Amazon OpenSearch Serverless cu Logstash

Migrați-vă indexurile la Amazon OpenSearch Serverless cu Logstash

Nodul sursă: 1931332

Am anunțat recent disponibilitatea generală a Amazon OpenSearch Serverless , o nouă opțiune pentru Serviciul Amazon OpenSearch care facilitează rularea sarcinilor de lucru de căutare și analiză la scară largă, fără a fi nevoie să configurați, să gestionați sau să scalați clusterele OpenSearch. Cu OpenSearch Serverless, obțineți aceiași timpi de răspuns interactiv în milisecunde ca și OpenSearch Service, cu simplitatea unui mediu fără server.

În această postare, veți învăța cum să migrați indicii existenți de la un domeniu de cluster gestionat de OpenSearch Service la o colecție fără server folosind Logstash.

Cu domeniile OpenSearch, obțineți clustere dedicate, securizate configurate și optimizate pentru sarcinile dvs. de lucru în câteva minute. Aveți control deplin asupra configurației resurselor de calcul, memorie și stocare în clustere pentru a optimiza costurile și performanța aplicațiilor dvs. OpenSearch Serverless oferă o modalitate și mai simplă de a rula sarcini de lucru de căutare și analiză, fără a fi nevoit să se gândească vreodată la clustere. Pur și simplu creați o colecție și un grup de indici și puteți începe să ingerați și să interogați datele.

Prezentare generală a soluțiilor

Logstash este un software open-source care oferă ETL (extragere, transformare și încărcare) pentru datele dvs. Puteți configura Logstash să se conecteze la o sursă și o destinație prin pluginuri de intrare și ieșire. Între timp, configurați filtre care vă pot transforma datele. Această postare vă prezintă pașii de care aveți nevoie pentru a configura Logstash pentru a conecta un domeniu OpenSearch Service (input) la o colecție OpenSearch Serverless (ieșire).

Setați pluginurile sursă și destinație în fișierul de configurare al Logstash. Fișierul de configurare are secțiuni pentru Input, Filter, și Output. Odată configurat, Logstash va trimite o solicitare către domeniul OpenSearch Service și va citi datele în funcție de interogarea pe care ați pus-o în input secțiune. După ce datele sunt citite din Serviciul OpenSearch, le puteți trimite opțional la etapa următoare Filter pentru transformări precum adăugarea sau eliminarea unui câmp din datele de intrare sau actualizarea unui câmp cu valori diferite. În acest exemplu, nu veți folosi Filter conecteaza. Următorul este Output conecteaza. Versiunea open-source a Logstash (Logstash OSS) oferă o modalitate convenabilă de a utiliza API-ul în bloc pentru a încărca date în colecțiile dvs. OpenSearch Serverless acceptă logstash-output-opensearch plugin de ieșire, care acceptă Gestionarea identității și accesului AWS (IAM) pentru controlul accesului la date.

Următoarea diagramă ilustrează fluxul de lucru al soluției noastre.

Cerințe preliminare

Înainte de a începe, asigurați-vă că ați îndeplinit următoarele cerințe preliminare:

  1. Notați ARN-ul domeniului dvs. OpenSearch Service, numele de utilizator și parola.
  2. Creați o colecție OpenSearch Serverless. Dacă sunteți nou la OpenSearch Serverless, consultați Înregistrați analiza în mod ușoară cu Amazon OpenSearch Serverless pentru detalii despre cum să vă configurați colecția.

Configurați Logstash și pluginurile de intrare și ieșire pentru OpenSearch

Parcurgeți următorii pași pentru a configura Logstash și pluginurile dvs.:

  1. Descarcă logstash-oss-with-opensearch-output-plugin. (Acest exemplu folosește distro pentru macos-x64. Pentru alte distribuții, consultați artefacte.)
    wget https://artifacts.opensearch.org/logstash/logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz

  2. Extrageți tarball-ul descărcat:
    tar -zxvf logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz
    cd logstash-8.4.0/

  3. Actualizați logstash-output-opensearch plugin la cea mai recentă versiune:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin update logstash-output-opensearch

  4. instalaţi logstash-input-opensearch conecteaza:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin install logstash-input-opensearch

Testați pluginul

Să intrăm în acțiune și să vedem cum funcționează pluginul. Următorul fișier de configurare preia date din movies indexează în domeniul tău OpenSearch Service și indexează acele date din colecția ta OpenSearch Serverless cu același nume de index, movies.

Creați un fișier nou și adăugați următorul conținut, apoi salvați fișierul ca opensearch-serverless-migration.conf. Furnizați valorile pentru punctul final al domeniului OpenSearch Service sub HOST, USERNAME, și PAROLA în input secțiunea și detaliile punctului final al colecției OpenSearch Serverless de mai jos HOST împreuna cu REGIUNE, AWS_ACCESS_KEY_ID, și AWS_SECRET_ACCESS_KEY în output secţiune.

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

Puteți specifica o interogare în input secțiunea din configurația precedentă. The match_all interogarea se potrivește cu toate datele din movies index. Puteți modifica interogarea dacă doriți să selectați un subset de date. De asemenea, puteți utiliza interogarea pentru a paraleliza transferul de date prin rularea mai multor procese Logstash cu configurații care specifică diferite secțiuni de date. Puteți, de asemenea, să paralelizați prin rularea proceselor Logstash pe mai mulți indecși, dacă îi aveți.

Porniți Logstash

Utilizați următoarea comandă pentru a porni Logstash:

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

După ce executați comanda, Logstash va prelua datele din indexul sursă din domeniul dvs. OpenSearch Service și va scrie în indexul de destinație din colecția dvs. OpenSearch Serverless. Când transferul de date este complet, Logstash se oprește. Vezi următorul cod:

[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 datele în OpenSearch Serverless

Puteți verifica dacă Logstash v-a copiat toate datele comparând numărul de documente din domeniul dvs. și colecția dvs. Rulați următoarea interogare fie din Instrumente de dezvoltare filă, sau cu curl, postman, sau un client HTTP similar. Următoarea interogare vă ajută să căutați toate documentele din movies indexează și returnează documentele de top împreună cu numărul. În mod implicit, OpenSearch va returna numărul de documente până la maximum 10,000. Adăugând track_total_hits flag vă ajută să obțineți numărul exact de documente dacă numărul de documente depășește 10,000.

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

Concluzie

În această postare, ați migrat datele din domeniul dvs. OpenSearch Service în colecția dvs. OpenSearch Serverless folosind pluginurile de intrare și ieșire OpenSearch ale Logstash.

Rămâneți pe fază pentru o serie de postări care se concentrează pe diferitele opțiuni disponibile pentru a crea soluții eficiente de analiză a jurnalelor și de căutare folosind OpenSearch Serverless. De asemenea, puteți consulta Noțiuni introductive cu Amazon OpenSearch Serverless atelier pentru a afla mai multe despre OpenSearch Serverless.

Dacă aveți feedback despre această postare, trimiteți-l în secțiunea de comentarii. Dacă aveți întrebări despre această postare, începeți un nou thread pe Forumul Amazon OpenSearch Service or contactați asistența AWS.


Despre autori

Prashant Agrawal este un arhitect specialist în soluții de căutare cu Amazon OpenSearch Service. El lucrează îndeaproape cu clienții pentru a-i ajuta să-și migreze sarcinile de lucru în cloud și îi ajută pe clienții existenți să-și ajusteze clusterele pentru a obține performanțe mai bune și a economisi costuri. Înainte de a se alătura AWS, el a ajutat diverși clienți să folosească OpenSearch și Elasticsearch pentru cazurile de utilizare a analizei de căutare și jurnal. Când nu lucrează, îl poți găsi călătorind și explorând locuri noi. Pe scurt, îi place să facă Eat → Travel → Repeat.

Jon Handler (@_searchgeek) este arhitect principal de soluții la Amazon Web Services cu sediul în Palo Alto, CA. Jon lucrează îndeaproape cu echipele CloudSearch și Elasticsearch, oferind ajutor și îndrumări unei game largi de clienți care au sarcini de căutare pe care doresc să le mute în AWS Cloud. Înainte de a se alătura AWS, cariera lui Jon ca dezvoltator de software a inclus patru ani de codificare a unui motor de căutare de comerț electronic la scară largă.

Timestamp-ul:

Mai mult de la AWS Big Data