1 minute read

Elasticsearch

Elasticsearch는 Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진입니다.

Elasticsearch를 통해 루씬 라이브러리를 단독으로 사용할 수 있게 되었으며,

방대한 양의 데이터를 신속하게, 거의 실시간( NRT, Near Real Time )으로 저장, 검색, 분석할 수 있습니다.

Elasticsearch 사용처

Elasticsearch은 다양한 사용 사례에 이용될 수 있습니다.

  • 애플리케이션 검색

  • 웹사이트 검색

  • 엔터프라이즈 검색

  • 로깅과 로그 분석

  • 인프라 메트릭과 컨테이너 모니터링

  • 애플리케이션 성능 모니터링

  • 위치 기반 정보 데이터 분석 및 시각화

  • 보안 분석

  • 비즈니스 분석

Elasticsearch 작동방식

로그, 시스템 메트릭, 웹 애플리케이션 등 다양한 소스로부터 원시 데이터가 Elasticsearch로 흘러들어갑니다.

데이터 수집은 원시 데이터가 Elasticsearch에서 색인되기 전에 구문 분석, 정규화, 강화되는 프로세스입니다.

Elasticsearch에서 일단 색인되면, 사용자는 이 데이터에 대해 복잡한 쿼리를 실행하고 집계를 사용해 데이터의 복잡한 요약을 검색할 수 있습니다.

Kibana에서 사용자는 데이터를 강력하게 시각화하고, 대시보드를 공유하며, Elastic Stack을 관리할 수 있습니다.

출처 https://www.elastic.co/kr/what-is/elasticsearch

Elasticsearch 인덱스

  • Elasticsearch 인덱스는 서로 관련되어 있는 문서들의 모음

Elasticsearch는 JSON 문서로 데이터를 저장합니다.

Elasticsearch는 반전된 인덱스라고 하는 데이터 구조를 사용하는데, 이것은 아주 빠른 전체 텍스트 검색을 할 수 있도록 설계된 것입니다.

반전된 인덱스는 문서에 나타나는 모든 고유한 단어의 목록을 만들고, 각 단어가 발생하는 모든 문서를 식별합니다.

Logstash 사용처

데이터를 집계하고 처리하여 Elasticsearch 로 전송하는 역할

서버 사이드 오픈 소스 데이터 처리 파이프라인으로 사용자는 이를 이용해

다양한 소스에서 동시에 데이터를 수집하고, 이를 강화하고 변환한 다음, Elasticsearch에서 색인되도록 할 수 있습니다.

Kibana 사용처

시각화 및 관리 도구로서, 실시간 히스토그램, 선 그래프, 파이 차트, 지도 등을 제공합니다

Elasticsearch를 사용하는 이유

빠른 속도

거의 실시간 검색 플랫폼입니다. 이것은 문서가 색인될 때부터 검색 가능해질 때까지의 대기 시간이 아주 짧다는 뜻입니다. 이 대기 시간은 보통 1초입니다.

분산적

샤드라고 하는 여러 다른 컨테이너에 걸쳐 분산되며, 이 샤드는 복제되어 하드웨어 장애 시에 중복되는 데이터 사본을 제공합니다

광범위한 기능

속도, 확장성, 복원력뿐 아니라, Elasticsearch에는 데이터 롤업, 인덱스 수명 주기 관리 등과

같이 데이터를 훨씬 더 효율적으로 저장하고 검색할 수 있게 해주는 강력한 기본 기능이 다수 탑재

데이터 수집, 시각화, 보고를 간소화

데이터의 실시간 시각화를 제공하며, UI를 통해 애플리케이션 성능 모니터링(APM), 로그, 인프라 메트릭 데이터에 신속하게 접근가능

Reference

https://www.elastic.co/kr/what-is/elasticsearch