Przenieś swoje indeksy do Amazon OpenSearch Serverless za pomocą Logstash

Przenieś swoje indeksy do Amazon OpenSearch Serverless za pomocą Logstash

Węzeł źródłowy: 1931332

Niedawno ogłosiliśmy ogólną dostępność Amazon OpenSearch bez serwera , nowa opcja dla Usługa Amazon OpenSearch co ułatwia obsługę zadań związanych z wyszukiwaniem i analizą na dużą skalę bez konieczności konfigurowania, zarządzania lub skalowania klastrów OpenSearch. Dzięki OpenSearch Serverless uzyskujesz takie same interaktywne milisekundowe czasy odpowiedzi jak w przypadku usługi OpenSearch przy prostocie środowiska bezserwerowego.

W tym poście dowiesz się, jak przeprowadzić migrację istniejących indeksów z domeny klastra zarządzanej przez usługę OpenSearch do kolekcji bezserwerowej za pomocą Logstash.

Dzięki domenom OpenSearch w ciągu kilku minut otrzymujesz dedykowane, bezpieczne klastry, które są konfigurowane i optymalizowane pod kątem Twoich obciążeń. Masz pełną kontrolę nad konfiguracją zasobów obliczeniowych, pamięci i pamięci masowej w klastrach, aby zoptymalizować koszty i wydajność aplikacji. OpenSearch Serverless zapewnia jeszcze prostszy sposób uruchamiania zadań związanych z wyszukiwaniem i analizą — bez konieczności myślenia o klastrach. Po prostu tworzysz kolekcję i grupę indeksów i możesz rozpocząć pozyskiwanie danych i wykonywanie zapytań.

Omówienie rozwiązania

Logstash to oprogramowanie typu open source, które zapewnia ETL (wyodrębnianie, przekształcanie i ładowanie) danych. Możesz skonfigurować Logstash, aby łączył się ze źródłem i miejscem docelowym za pomocą wtyczek wejściowych i wyjściowych. W międzyczasie konfigurujesz filtry, które mogą przekształcać Twoje dane. Ten post przeprowadzi Cię przez kroki potrzebne do skonfigurowania Logstash w celu połączenia domeny usługi OpenSearch (dane wejściowe) z kolekcją OpenSearch Serverless (dane wyjściowe).

Wtyczki źródłowe i docelowe ustawiasz w pliku konfiguracyjnym Logstash. Plik konfiguracyjny zawiera sekcje dla Input, Filter, Output. Po skonfigurowaniu Logstash wyśle ​​żądanie do domeny usługi OpenSearch i odczyta dane zgodnie z zapytaniem wprowadzonym w input Sekcja. Po odczytaniu danych z usługi OpenSearch możesz opcjonalnie przesłać je do następnego etapu Filter do przekształceń, takich jak dodanie lub usunięcie pola z danych wejściowych lub aktualizacja pola o inne wartości. W tym przykładzie nie użyjesz Filter podłącz. Dalej jest Output podłącz. Wersja oprogramowania Logstash typu open source (Logstash OSS) zapewnia wygodny sposób korzystania z masowego interfejsu API do przesyłania danych do kolekcji. OpenSearch Serverless obsługuje logstash-output-opensearch wtyczka wyjściowa, która obsługuje AWS Zarządzanie tożsamością i dostępem (IAM) poświadczenia do kontroli dostępu do danych.

Poniższy diagram ilustruje przepływ pracy naszego rozwiązania.

Wymagania wstępne

Zanim zaczniesz, upewnij się, że spełniłeś następujące wymagania wstępne:

  1. Zanotuj numer ARN domeny usługi OpenSearch, nazwę użytkownika i hasło.
  2. Utwórz kolekcję OpenSearch Serverless. Jeśli dopiero zaczynasz korzystać z OpenSearch Serverless, zobacz Loguj analitykę w łatwy sposób dzięki Amazon OpenSearch Serverless aby uzyskać szczegółowe informacje na temat konfigurowania kolekcji.

Skonfiguruj Logstash oraz wtyczki wejściowe i wyjściowe dla OpenSearch

Wykonaj następujące kroki, aby skonfigurować Logstash i swoje wtyczki:

  1. Do pobrania logstash-oss-with-opensearch-output-plugin. (W tym przykładzie użyto dystrybucji dla macos-x64. W przypadku innych dystrybucji zapoznaj się z plikiem artefakty.)
    wget https://artifacts.opensearch.org/logstash/logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz

  2. Wyodrębnij pobrany plik tar:
    tar -zxvf logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz
    cd logstash-8.4.0/

  3. Zaktualizuj logstash-output-opensearch dodatek do najnowszej wersji:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin update logstash-output-opensearch

  4. Instalacja logstash-input-opensearch podłącz:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin install logstash-input-opensearch

Przetestuj wtyczkę

Przejdźmy do działania i zobaczmy, jak działa wtyczka. Poniższy plik konfiguracyjny pobiera dane z pliku movies indeks w Twojej domenie usługi OpenSearch i indeksuje te dane w Twojej kolekcji OpenSearch Serverless z tą samą nazwą indeksu, movies.

Utwórz nowy plik i dodaj następującą zawartość, a następnie zapisz plik jako opensearch-serverless-migration.conf. Podaj wartości dla punktu końcowego domeny usługi OpenSearch w obszarze HOST, USERNAME, HASŁO input sekcji oraz szczegóły punktu końcowego kolekcji OpenSearch Serverless w sekcji HOST oraz REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 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 }
}

Możesz określić zapytanie w pliku input sekcja poprzedniej konfiguracji. The match_all zapytanie pasuje do wszystkich danych w pliku movies indeks. Możesz zmienić zapytanie, jeśli chcesz wybrać podzbiór danych. Zapytania można również użyć do zrównoleglenia przesyłania danych przez uruchomienie wielu procesów Logstash z konfiguracjami określającymi różne wycinki danych. Możesz także zrównoleglać, uruchamiając procesy Logstash na wielu indeksach, jeśli je masz.

Uruchom Logstasha

Użyj następującego polecenia, aby uruchomić Logstash:

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

Po uruchomieniu polecenia Logstash pobierze dane z indeksu źródłowego Twojej domeny usługi OpenSearch i zapisze je w indeksie docelowym w kolekcji OpenSearch Serverless. Po zakończeniu przesyłania danych Logstash wyłącza się. Zobacz następujący kod:

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

Sprawdź dane w OpenSearch Serverless

Możesz sprawdzić, czy Logstash skopiował wszystkie Twoje dane, porównując liczbę dokumentów w Twojej domenie i w Twojej kolekcji. Uruchom następujące zapytanie z pliku Narzędzia deweloperskie zakładka lub z curl, postmanlub podobnego klienta HTTP. Poniższe zapytanie pomaga przeszukać wszystkie dokumenty z movies index i zwraca najwyższe dokumenty wraz z liczbą. Domyślnie OpenSearch zwróci liczbę dokumentów maksymalnie do 10,000 XNUMX. Dodanie track_total_hits flag pomaga uzyskać dokładną liczbę dokumentów, jeśli liczba dokumentów przekracza 10,000 XNUMX.

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

Wnioski

W tym poście przeprowadziłeś migrację danych z domeny usługi OpenSearch do kolekcji OpenSearch Serverless przy użyciu wtyczek wejściowych i wyjściowych OpenSearch firmy Logstash.

Bądź na bieżąco z serią postów skupiających się na różnych dostępnych opcjach tworzenia skutecznych rozwiązań do analizy dzienników i wyszukiwania przy użyciu rozwiązania OpenSearch Serverless. Możesz również odnieść się do Rozpoczęcie pracy z Amazon OpenSearch Serverless warsztaty, aby dowiedzieć się więcej o OpenSearch Serverless.

Jeśli masz uwagi dotyczące tego posta, prześlij je w sekcji komentarzy. Jeśli masz pytania dotyczące tego posta, rozpocznij nowy wątek na stronie Forum Amazon OpenSearch Service or skontaktuj się z pomocą techniczną AWS.


O autorach

Prashanta Agrawala jest starszym architektem rozwiązań specjalizujących się w wyszukiwaniu w usłudze Amazon OpenSearch. Ściśle współpracuje z klientami, pomagając im w migracji obciążeń do chmury, a obecnym klientom dostraja ich klastry w celu uzyskania lepszej wydajności i obniżenia kosztów. Zanim dołączył do AWS, pomagał różnym klientom w korzystaniu z OpenSearch i Elasticsearch w przypadkach użycia wyszukiwania i analizy dzienników. Kiedy nie pracuje, można go znaleźć w podróży i odkrywaniu nowych miejsc. Krótko mówiąc, lubi robić Jedz → Podróżuj → Powtarzaj.

Jona Handlera (@_searchgeek) jest starszym głównym architektem rozwiązań w Amazon Web Services z siedzibą w Palo Alto w Kalifornii. Jon ściśle współpracuje z zespołami CloudSearch i Elasticsearch, udzielając pomocy i wskazówek szerokiemu gronu klientów, którzy mają obciążenia związane z wyszukiwaniem, które chcą przenieść do chmury AWS. Przed dołączeniem do AWS kariera Jona jako programisty obejmowała cztery lata kodowania wielkoskalowej wyszukiwarki e-commerce.

Znak czasu:

Więcej z Duże zbiory danych AWS!