Logstash를 사용하여 인덱스를 Amazon OpenSearch 서버리스로 마이그레이션

Logstash를 사용하여 인덱스를 Amazon OpenSearch 서버리스로 마이그레이션

소스 노드 : 1931332

우리는 최근에 일반 가용성을 발표했습니다. Amazon OpenSearch 서버리스 , 새로운 옵션 아마존 오픈서치 서비스 OpenSearch 클러스터를 구성, 관리 또는 확장할 필요 없이 대규모 검색 및 분석 워크로드를 쉽게 실행할 수 있습니다. OpenSearch 서버리스를 사용하면 서버리스 환경의 단순성과 함께 OpenSearch 서비스와 동일한 대화식 밀리초 응답 시간을 얻을 수 있습니다.

이 게시물에서는 Logstash를 사용하여 OpenSearch Service 관리형 클러스터 도메인에서 서버리스 컬렉션으로 기존 인덱스를 마이그레이션하는 방법을 알아봅니다.

OpenSearch 도메인을 사용하면 몇 분 만에 워크로드에 맞게 구성되고 최적화된 전용 보안 클러스터를 얻을 수 있습니다. 애플리케이션의 비용과 성능을 최적화하기 위해 클러스터의 컴퓨팅, 메모리 및 스토리지 리소스 구성을 완전히 제어할 수 있습니다. OpenSearch 서버리스는 클러스터에 대해 생각할 필요 없이 검색 및 분석 워크로드를 실행하는 훨씬 더 간단한 방법을 제공합니다. 컬렉션과 인덱스 그룹을 만들기만 하면 데이터 수집 및 쿼리를 시작할 수 있습니다.

솔루션 개요

로그 대쉬 데이터에 대한 ETL(추출, 변환 및 로드)을 제공하는 오픈 소스 소프트웨어입니다. 입력 및 출력 플러그인을 통해 소스와 대상에 연결하도록 Logstash를 구성할 수 있습니다. 그 사이에 데이터를 변환할 수 있는 필터를 구성합니다. 이 게시물은 OpenSearch 서비스 도메인(입력)을 OpenSearch Serverless 컬렉션(출력)에 연결하기 위해 Logstash를 설정하는 데 필요한 단계를 안내합니다.

Logstash의 구성 파일에서 소스 및 대상 플러그인을 설정합니다. 구성 파일에는 다음에 대한 섹션이 있습니다. Input, FilterOutput. 일단 구성되면 Logstash는 OpenSearch Service 도메인에 요청을 보내고 사용자가 입력한 쿼리에 따라 데이터를 읽습니다. input 부분. OpenSearch Service에서 데이터를 읽은 후 선택적으로 다음 단계로 보낼 수 있습니다. Filter 입력 데이터에서 필드를 추가 또는 제거하거나 다른 값으로 필드를 업데이트하는 것과 같은 변환을 위해. 이 예에서는 Filter 플러그인. 다음은 Output 플러그인. Logstash(Logstash OSS)의 오픈 소스 버전은 대량 API를 사용하여 컬렉션에 데이터를 업로드하는 편리한 방법을 제공합니다. OpenSearch Serverless는 다음을 지원합니다. 로그스태시-출력-개방 검색 지원하는 출력 플러그인 AWS 자격 증명 및 액세스 관리 (IAM) 데이터 액세스 제어를 위한 자격 증명.

다음 다이어그램은 솔루션 워크플로를 보여줍니다.

사전 조건

시작하기 전에 다음 전제 조건을 완료했는지 확인하십시오.

  1. OpenSearch 서비스 도메인의 ARN, 사용자 이름 및 암호를 기록해 둡니다.
  2. OpenSearch 서버리스 컬렉션을 만듭니다. OpenSearch Serverless를 처음 사용하는 경우 다음을 참조하십시오. Amazon OpenSearch Serverless를 통한 손쉬운 로그 분석 컬렉션을 설정하는 방법에 대한 자세한 내용은

OpenSearch용 Logstash 및 입력 및 출력 플러그인 설정

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. 다운로드한 tarball을 추출합니다.
    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 Serverless 컬렉션에서 해당 데이터를 색인화합니다. movies.

새 파일을 만들고 다음 내용을 추가한 후 파일을 다른 이름으로 저장합니다. opensearch-serverless-migration.conf. 아래에 OpenSearch 서비스 도메인 끝점에 대한 값을 제공합니다. HOST, 사용자 이름PASSWORD FBI 증오 범죄 보고서 input 섹션 및 아래의 OpenSearch 서버리스 수집 엔드포인트 세부 정보 HOST 와 함께 부위, AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY FBI 증오 범죄 보고서 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 이전 구성의 섹션입니다. 그만큼 match_all 쿼리는 movies 색인. 데이터의 하위 집합을 선택하려는 경우 쿼리를 변경할 수 있습니다. 또한 쿼리를 사용하여 서로 다른 데이터 조각을 지정하는 구성으로 여러 Logstash 프로세스를 실행하여 데이터 전송을 병렬화할 수 있습니다. 인덱스가 있는 경우 여러 인덱스에 대해 Logstash 프로세스를 실행하여 병렬화할 수도 있습니다.

로그스태시 시작

다음 명령을 사용하여 Logstash를 시작합니다.

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

명령을 실행한 후 Logstash는 OpenSearch 서비스 도메인의 소스 인덱스에서 데이터를 검색하고 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개의 문서 수를 반환합니다. 추가 track_total_hits 플래그는 문서 수가 10,000개를 초과하는 경우 정확한 문서 수를 얻는 데 도움이 됩니다.

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

결론

이 게시물에서는 Logstash의 OpenSearch 입력 및 출력 플러그인을 사용하여 OpenSearch Service 도메인에서 OpenSearch Serverless 컬렉션으로 데이터를 마이그레이션했습니다.

OpenSearch Serverless를 사용하여 효과적인 로그 분석 및 검색 솔루션을 구축하는 데 사용할 수 있는 다양한 옵션에 초점을 맞춘 일련의 게시물을 기대해 주세요. 당신은 또한 참조할 수 있습니다 Amazon OpenSearch 서버리스 시작하기 OpenSearch Serverless에 대해 자세히 알아보기 위한 워크숍입니다.

이 게시물에 대한 피드백이 있으면 댓글 섹션에 제출하십시오. 이 게시물에 대해 질문이 있는 경우 다음에서 새 스레드를 시작하십시오. Amazon OpenSearch 서비스 포럼 or AWS 지원에 문의.


저자 소개

프라 샨트 아그라 왈 Amazon OpenSearch Service의 수석 검색 전문가 솔루션 아키텍트입니다. 그는 고객과 긴밀히 협력하여 워크로드를 클라우드로 마이그레이션하도록 돕고 기존 고객이 클러스터를 미세 조정하여 더 나은 성능을 달성하고 비용을 절감하도록 돕습니다. AWS에 합류하기 전에는 다양한 고객이 검색 및 로그 분석 사용 사례에 OpenSearch 및 Elasticsearch를 사용하도록 도왔습니다. 일하지 않을 때는 그가 여행하고 새로운 장소를 탐험하는 것을 볼 수 있습니다. 요컨대 먹기→여행→반복하는 것을 좋아한다.

존 핸들러 (@_searchgeek)는 캘리포니아주 팔로알토에 위치한 Amazon Web Services의 수석 솔루션 아키텍트입니다. Jon은 CloudSearch 및 Elasticsearch 팀과 긴밀히 협력하여 AWS 클라우드로 이전하려는 검색 워크로드가 있는 광범위한 고객에게 도움과 지침을 제공합니다. AWS에 합류하기 전 Jon의 소프트웨어 개발자 경력에는 XNUMX년 동안 대규모 전자 상거래 검색 엔진을 코딩하는 것이 포함되었습니다.

타임 스탬프 :

더보기 AWS 빅 데이터