Перенесіть свої індекси на Amazon OpenSearch Serverless за допомогою Logstash

Перенесіть свої індекси на Amazon OpenSearch Serverless за допомогою Logstash

Вихідний вузол: 1931332

Нещодавно ми оголосили про загальну доступність Amazon OpenSearch Serverless , новий варіант для Служба Amazon OpenSearch це полегшує виконання великомасштабних пошукових і аналітичних робочих навантажень без необхідності налаштовувати, керувати або масштабувати кластери OpenSearch. З OpenSearch Serverless ви отримуєте такий самий інтерактивний час відповіді в мілісекундах, що й OpenSearch Service, з простотою безсерверного середовища.

У цьому дописі ви дізнаєтесь, як перенести наявні індекси з домену кластера, керованого OpenSearch Service, до безсерверної колекції за допомогою Logstash.

З доменами OpenSearch ви отримуєте виділені безпечні кластери, налаштовані та оптимізовані для ваших робочих навантажень за лічені хвилини. Ви маєте повний контроль над конфігурацією обчислювальних ресурсів, пам’яті та ресурсів зберігання в кластерах, щоб оптимізувати вартість і продуктивність ваших програм. OpenSearch Serverless забезпечує ще простіший спосіб запуску пошукових і аналітичних робочих навантажень — без необхідності думати про кластери. Ви просто створюєте колекцію та групу індексів, і можете почати приймати та запитувати дані.

Огляд рішення

Логсташ це програмне забезпечення з відкритим вихідним кодом, яке забезпечує ETL (вилучення, перетворення та завантаження) для ваших даних. Ви можете налаштувати Logstash для підключення до джерела та призначення через плагіни введення та виведення. Між цим ви налаштовуєте фільтри, які можуть перетворювати ваші дані. У цьому дописі описано кроки, необхідні для налаштування Logstash для підключення домену OpenSearch Service (вхід) до колекції OpenSearch Serverless (вихід).

Ви встановлюєте плагіни джерела та призначення у конфігураційному файлі Logstash. У конфігураційному файлі є розділи для Input, Filter та Output. Після налаштування Logstash надішле запит до домену OpenSearch Service і прочитає дані відповідно до запиту, який ви поставили в input розділ. Після зчитування даних зі служби OpenSearch ви можете відправити їх на наступний етап Filter для таких перетворень, як додавання або видалення поля з вхідних даних або оновлення поля іншими значеннями. У цьому прикладі ви не використовуватимете Filter підключати. Далі йде Output підключати. Версія Logstash з відкритим вихідним кодом (Logstash OSS) забезпечує зручний спосіб використання групового API для завантаження даних у ваші колекції. OpenSearch Serverless підтримує logstash-вивід-opensearch вихідний плагін, який підтримує Управління ідентифікацією та доступом AWS (IAM) облікові дані для контролю доступу до даних.

Наступна діаграма ілюструє наш робочий процес рішення.

Передумови

Перш ніж почати, переконайтеся, що ви виконали наступні передумови:

  1. Занотуйте ARN домену служби OpenSearch, ім’я користувача та пароль.
  2. Створіть колекцію OpenSearch Serverless. Якщо ви новачок у OpenSearch Serverless, зверніться до Аналітика журналів – простий спосіб за допомогою Amazon OpenSearch Serverless щоб дізнатися більше про те, як налаштувати свою колекцію.

Налаштуйте Logstash і плагіни введення та виведення для OpenSearch

Виконайте наступні кроки, щоб налаштувати Logstash і плагіни:

  1. Завантажити logstash-oss-with-opensearch-output-plugin. (У цьому прикладі використовується дистрибутив для macos-x64. Для інших дистрибутивів зверніться до артефакти.)
    wget https://artifacts.opensearch.org/logstash/logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz

  2. Розпакуйте завантажений архів:
    tar -zxvf logstash-oss-with-opensearch-output-plugin-8.4.0-macos-x64.tar.gz
    cd logstash-8.4.0/

  3. Оновити logstash-output-opensearch плагін до останньої версії:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin update logstash-output-opensearch

  4. встановити logstash-input-opensearch підключати:
    <path/to/your/logstash/root/directory>/bin/logstash-plugin install logstash-input-opensearch

Перевірте плагін

Давайте приступимо до дії та подивимося, як працює плагін. Наступний файл конфігурації отримує дані з movies індексує у вашому домені OpenSearch Service та індексує ці дані у вашій безсерверній колекції OpenSearch з тим самим ім’ям індексу, movies.

Створіть новий файл і додайте наступний вміст, а потім збережіть файл як opensearch-serverless-migration.conf. Укажіть значення для кінцевої точки домену служби OpenSearch HOST, USERNAME та ПАРОЛЬ в input розділ, а також деталі кінцевої точки збору OpenSearch Serverless нижче HOST разом з РЕГІОН, 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 }
}

Ви можете вказати запит у input розділ попередньої конфігурації. The match_all запит відповідає всім даним у movies індекс. Ви можете змінити запит, якщо хочете вибрати підмножину даних. Ви також можете використовувати запит для розпаралелювання передачі даних, запускаючи кілька процесів Logstash із конфігураціями, які вказують різні фрагменти даних. Ви також можете розпаралелювати, запускаючи процеси Logstash з кількома індексами, якщо вони у вас є.

Запустіть Logstash

Використовуйте таку команду, щоб запустити Logstash:

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

Після того, як ви запустите команду, Logstash отримає дані з вихідного індексу з вашого домену OpenSearch Service і запише в індекс призначення у вашій колекції OpenSearch Serverless. Після завершення передачі даних Logstash вимикається. Перегляньте наступний код:

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

Перевірте дані в OpenSearch Serverless

Ви можете переконатися, що Logstash скопіював усі ваші дані, порівнявши кількість документів у вашому домені та вашій колекції. Виконайте наступний запит або з Інструменти розробника вкладка, або с curl, postmanабо подібний клієнт HTTP. Наступний запит допоможе вам шукати всі документи з movies індекс і повертає перші документи разом із підрахунком. За замовчуванням OpenSearch поверне кількість документів максимум до 10,000 XNUMX. Додавання track_total_hits прапорець допомагає отримати точну кількість документів, якщо кількість документів перевищує 10,000 XNUMX.

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

Висновок

У цьому дописі ви перенесли дані з домену OpenSearch Service до своєї колекції OpenSearch Serverless за допомогою плагінів введення та виведення OpenSearch від Logstash.

Слідкуйте за серією публікацій, присвячених різноманітним параметрам, доступним для створення ефективної аналітики журналів і пошукових рішень за допомогою OpenSearch Serverless. Ви також можете звернутися до Початок роботи з Amazon OpenSearch Serverless семінар, щоб дізнатися більше про OpenSearch Serverless.

Якщо у вас є відгуки про цю публікацію, надішліть їх у розділі коментарів. Якщо у вас є запитання щодо цієї публікації, створіть нову тему на Форум Amazon OpenSearch Service or зверніться до служби підтримки AWS.


Про авторів

Прашант Агравал є старшим архітектором рішень спеціаліста з пошуку Amazon OpenSearch Service. Він тісно співпрацює з клієнтами, щоб допомогти їм перенести робочі навантаження в хмару, а також допомагає існуючим клієнтам налаштувати свої кластери для досягнення кращої продуктивності та економії коштів. До того як приєднатися до AWS, він допомагав різним клієнтам використовувати OpenSearch і Elasticsearch для пошуку та аналітики журналів. Коли він не працює, він подорожує та досліджує нові місця. Коротше кажучи, йому подобається Їсти → Подорожувати → Повторювати.

Джон Хендлер (@_searchgeek) є старшим головним архітектором рішень у Amazon Web Services, що базується в Пало-Альто, Каліфорнія. Джон тісно співпрацює з командами CloudSearch і Elasticsearch, надаючи допомогу та вказівки широкому колу клієнтів, які мають робоче навантаження пошуку, яке вони хочуть перенести в AWS Cloud. До того як приєднатися до AWS, кар’єра Джона як розробника програмного забезпечення включала чотири роки кодування великомасштабної пошукової системи електронної комерції.

Часова мітка:

Більше від Великі дані AWS