Zephyrnet-logo

Migreer uw indexen naar Amazon OpenSearch Serverless met Logstash

Datum:

We hebben onlangs de algemene beschikbaarheid aangekondigd van Amazon OpenSearch Serverloos , een nieuwe optie voor Amazon OpenSearch-service dat maakt het gemakkelijk om grootschalige zoek- en analysewerklasten uit te voeren zonder OpenSearch-clusters te hoeven configureren, beheren of schalen. Met OpenSearch Serverless krijgt u dezelfde interactieve reactietijden van milliseconden als OpenSearch Service met de eenvoud van een serverloze omgeving.

In dit bericht leert u hoe u uw bestaande indices kunt migreren van een door OpenSearch Service beheerd clusterdomein naar een serverloze verzameling met behulp van Logstash.

Met OpenSearch-domeinen krijgt u binnen enkele minuten speciale, veilige clusters die zijn geconfigureerd en geoptimaliseerd voor uw workloads. U hebt volledige controle over de configuratie van reken-, geheugen- en opslagresources in clusters om de kosten en prestaties voor uw toepassingen te optimaliseren. OpenSearch Serverless biedt een nog eenvoudigere manier om zoek- en analysewerklasten uit te voeren, zonder ooit aan clusters te hoeven denken. U maakt eenvoudig een verzameling en een groep indexen en kunt beginnen met het opnemen en opvragen van de gegevens.

Overzicht oplossingen

Logstash is open-source software die ETL (extraheren, transformeren en laden) voor uw gegevens biedt. U kunt Logstash configureren om verbinding te maken met een bron en een bestemming via invoer- en uitvoerplug-ins. Tussendoor configureer je filters die je data kunnen transformeren. Dit bericht leidt je door de stappen die je nodig hebt om Logstash in te stellen om een ​​OpenSearch Service-domein (invoer) te verbinden met een OpenSearch Serverless-verzameling (uitvoer).

U stelt de bron- en bestemmingsplug-ins in het configuratiebestand van Logstash in. Het configuratiebestand heeft secties voor Input, Filter en Output. Eenmaal geconfigureerd, stuurt Logstash een verzoek naar het OpenSearch Service-domein en leest de gegevens volgens de zoekopdracht die u in de input sectie. Nadat gegevens zijn gelezen van de OpenSearch-service, kunt u deze optioneel naar de volgende fase sturen Filter voor transformaties zoals het toevoegen of verwijderen van een veld aan de invoergegevens of het bijwerken van een veld met andere waarden. In dit voorbeeld gebruikt u niet de Filter inpluggen. Het volgende is de Output inpluggen. De open-sourceversie van Logstash (Logstash OSS) biedt een handige manier om de bulk-API te gebruiken om gegevens naar uw collecties te uploaden. OpenSearch Serverless ondersteunt de logstash-uitvoer-opensearch uitvoer plug-in, die ondersteunt AWS Identiteits- en toegangsbeheer (IAM) referenties voor gegevenstoegangscontrole.

Het volgende diagram illustreert onze oplossingsworkflow.

Voorwaarden

Voordat u aan de slag gaat, moet u ervoor zorgen dat u aan de volgende vereisten hebt voldaan:

  1. Noteer de ARN, gebruikersnaam en het wachtwoord van uw OpenSearch Service-domein.
  2. Maak een OpenSearch Serverless-verzameling. Als u nieuw bent bij OpenSearch Serverless, raadpleeg dan Loganalyse op een gemakkelijke manier met Amazon OpenSearch Serverless voor meer informatie over het instellen van uw collectie.

Stel Logstash en de invoer- en uitvoerplug-ins in voor OpenSearch

Voer de volgende stappen uit om Logstash en uw plug-ins in te stellen:

  1. Downloaden logstash-oss-with-opensearch-output-plugin. (Dit voorbeeld gebruikt de distro voor macos-x64. Raadpleeg voor andere distro's de artefacten.)
    wget https://artifacts.opensearch.org/logstash/logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz

  2. Pak de gedownloade tarball uit:
    tar -zxvf logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz
    cd logstash-8.4.0/

  3. Werk het logstash-output-opensearch plug-in naar de nieuwste versie:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin update logstash-output-opensearch

  4. Installeer de logstash-input-opensearch inpluggen:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin install logstash-input-opensearch

Test de plug-in

Laten we in actie komen en kijken hoe de plug-in werkt. Het volgende configuratiebestand haalt gegevens op uit het movies indexeren in uw OpenSearch Service-domein en indexeert die gegevens in uw OpenSearch Serverless-verzameling met dezelfde indexnaam, movies.

Maak een nieuw bestand en voeg de volgende inhoud toe en sla het bestand vervolgens op als opensearch-serverless-migration.conf. Geef hieronder de waarden op voor het OpenSearch Service-domeineindpunt HOST, USERNAME en WACHTWOORD in de input sectie, en de details van het OpenSearch Serverless collectie-eindpunt hieronder HOST met REGIO, AWS_ACCESS_KEY_ID en AWS_SECRET_ACCESS_KEY in de output pagina.

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

U kunt een zoekopdracht opgeven in de input sectie van de voorgaande config. De match_all query komt overeen met alle gegevens in de movies inhoudsopgave. U kunt de query wijzigen als u een subset van de gegevens wilt selecteren. U kunt de query ook gebruiken om de gegevensoverdracht parallel te laten verlopen door meerdere Logstash-processen uit te voeren met configuraties die verschillende gegevenssegmenten specificeren. U kunt ook parallelliseren door Logstash-processen uit te voeren tegen meerdere indexen als u die heeft.

Start LogStash

Gebruik de volgende opdracht om Logstash te starten:

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

Nadat u de opdracht hebt uitgevoerd, haalt Logstash de gegevens op uit de bronindex van uw OpenSearch Service-domein en schrijft naar de bestemmingsindex in uw OpenSearch Serverless-verzameling. Wanneer de gegevensoverdracht is voltooid, wordt Logstash afgesloten. Zie de volgende code:

[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.

Controleer de gegevens in OpenSearch Serverless

U kunt controleren of Logstash al uw gegevens heeft gekopieerd door het aantal documenten in uw domein en uw verzameling te vergelijken. Voer de volgende query uit vanuit het Dev-tools tabblad, of met curl, postman, of een vergelijkbare HTTP-client. De volgende zoekopdracht helpt u bij het doorzoeken van alle documenten van de movies index en retourneert de topdocumenten samen met de telling. Standaard retourneert OpenSearch het aantal documenten tot een maximum van 10,000. Het toevoegen van de track_total_hits vlag helpt u het exacte aantal documenten te krijgen als het aantal documenten hoger is dan 10,000.

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

Conclusie

In dit bericht migreerde u gegevens van uw OpenSearch Service-domein naar uw OpenSearch Serverless-verzameling met behulp van Logstash's OpenSearch invoer- en uitvoerplug-ins.

Houd ons in de gaten voor een reeks berichten die zich richten op de verschillende opties die voor u beschikbaar zijn om effectieve loganalyse- en zoekoplossingen te bouwen met behulp van OpenSearch Serverless. U kunt ook verwijzen naar de Aan de slag met Amazon OpenSearch Serverloos workshop om meer te weten te komen over OpenSearch Serverless.

Als je feedback hebt over dit bericht, geef deze dan door in het opmerkingengedeelte. Als je vragen hebt over dit bericht, start dan een nieuw draadje op de Amazon OpenSearch Service-forum or neem contact op met AWS-ondersteuning.


Over de auteurs

Prashant Agrawal is een Sr. Search Specialist Solutions Architect met Amazon OpenSearch Service. Hij werkt nauw samen met klanten om hen te helpen hun workloads naar de cloud te migreren en helpt bestaande klanten hun clusters te verfijnen om betere prestaties te bereiken en kosten te besparen. Voordat hij bij AWS kwam, hielp hij verschillende klanten bij het gebruik van OpenSearch en Elasticsearch voor hun gebruiksscenario's voor zoek- en loganalyse. Als hij niet aan het werk is, kun je hem zien reizen en nieuwe plaatsen ontdekken. Kortom, hij doet graag Eten → Reizen → Herhalen.

Jon Handler (@_searchgeek) is Sr. Principal Solutions Architect bij Amazon Web Services in Palo Alto, CA. Jon werkt nauw samen met de CloudSearch- en Elasticsearch-teams en biedt hulp en begeleiding aan een breed scala aan klanten met zoekwerklasten die ze naar de AWS Cloud willen verplaatsen. Voordat hij bij AWS kwam, omvatte Jon's carrière als softwareontwikkelaar vier jaar lang het coderen van een grootschalige e-commerce-zoekmachine.

spot_img

Laatste intelligentie

spot_img