ElasticSearch

진성·2022년 8월 14일
0
post-thumbnail

Elasticsearch?

엘라스틱서치(Elasticsearch)란 텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위환 무료 검색 및 분석 엔진으로 분산형과 개방형을 특징으로 한다.

간단한 REST API, 분산형 특징, 확장성으로 유명한 엘라스틱서치는 데이터 수집, 보강, 저장, 분석, 시각화를 위한 무료 개방형 도구 모음인 Elastic Stack의 핵심 구성 요소이다.

보통 ELK Stack(Elasticserch, Logstash, Kibana)이라고 하는 Elastic Stack에는 이제 데이터를 엘라스틱서치로 전송하기 위한 경량의 다양한 데이터 수집 에이전트인 Beats가 포함되어 있다.

엘라스틱서치에 사용용도

엘라스틱서치의 속도와 확장성, 수많은 종류의 콘텐츠를 색인할 수 있는 능력은 다음과 같은 다양한 사용 사례에 이용될 수 있다.

  • 애플리케이션 검색
  • 웹사이트 검색
  • 엔터프라이즈 검색
  • 로깅과 로그 분석
  • 인프라 메트릭과 컨테이너 모니터링
  • 애플리케이션 성능 모니터링
  • 위치 기반 정보 데이터 분석 및 시각화
  • 보안 분석
  • 비즈니스 분석

엘라스틱서치에 작동원리

로그, 시스템 메트릭, 웹 애플리케이션 등 다양한 소스로부터 원시 데이터가 엘라스틱서치로 흘러 들어간다.
데이터 수집은 원시 데이터가 엘라스틱서치에서 색인되기 전에 구문 분석, 정규화, 강화되는 프로세스이다.
엘라스틱서치에서 일단 색인되면, 사용자는 이 데이터에 대해 복잡한 쿼리를 실행하고 집계를 사용해 데이터의 복잡한 요약을 검색할 수 있다.

엘라스틱서치 인덱스는 무엇인가?

엘라스틱서치 인덱스는 서로 관련되어 있는 문서들의 모음이다.
엘라스틱서치는 JSON문서로 데이터를 저장하는데 각 문서의 일련의 키와 그에 해당하는 값을 서로 연결한다.

엘라스틱서치는 역 인덱스라고 하는 데이터 구조를 사용하는데, 이것은 아주 빠른 풀텍스트 검색을 할 수 있도록 설계된 것이다.
역 인덱스는 문서에 나타나는 모든 고유한 단어의 목록을 만들고, 각 단어가 발생하는 모든 문서를 식별한다.

색인 프로세스 중에 엘라스틱서치는 문서를 저장하고 역 인덱스를 구축하여 거의 실시간으로 문서를 검색 가능한 데이터로 만든다.
인덱스 API를 사용해 색인이 시작되며, 이를 통해 사용자는 특정한 인덱스에서 JSON문서를 추가하거나 업데이트 할 수 있다.

Logstash?

엘라스틱 스택(Elastic Stack)의 핵심 제품 중 하나인 Logstash는 데이터를 집계하고 처리하여 엘라스틱서치로 전송하는데 사용된다.
Logstash는 서버 사이드 오픈 소스 데이터 처리 파이프라인으로, 사용자는 이를 이용해 다양한 소스에서 동시에 데이터를 수집하고, 이를 강화하고 변환한 다음, 엘라스틱서치에서 색인되도록 할 수 있다.

Kibana?

Kibana는 엘라스틱서치를 위한 시각화 및 관리 도구로서, 실시간 히스토그램, 선 그래프, 파이 차트, 지도 등을 제공한다.
Kibana에는 사용자가 자신의 데이터를 기반으로 사용자 정의한 동적 인포그래픽을 만들 수 있는 Canvas, 위치 기반 정보 데이터를 시각화하기 위한 Elastic Maps 같은 고급 애플리케이션도 포함된다.

엘라스틱서치의 사용이유

  • 엘라스틱서치는 빠르다.
    • 엘라스틱서치는 Lucene을 기반으로 구축되기 때문에 풀텍스트 검색에 뛰어나다. 엘라스틱서치는 또한 거의 실시간 검색 플램폼이다. 문서가 색인될 때 부터 검색 가능해질 때까지의 대시 시간이 매우 짧다는 의미이다.
  • 엘라스틱서치는 본질상 분산적이다.
    • 엘라스틱 서치에 저장된 문서는 샤드라고 하는 여러 다른 컨테이너에 걸쳐 분산되며, 이 샤드는 복제되어 하드웨어 장애 시에 중복되는 데이터 샤본을 제공한다.
  • 엘라스틱서치는 광범위한 기능 세트와 함께 제공된다.
    • 속도, 확장성, 복원력뿐만 아니라 데이터 롤업, 인덱스 수명 주기 관리 등과 같이 데이터를 더 효율적으로 저장하고 검색할 수 있께 해주는 기본 기능이 다수 탑재되어 있다.
  • 엘라스틱 스택은 데이터 수집, 시각화, 보고를 간소화한다.
    • Beats와 Logstash의 통합은 엘라스틱서치로 색인하기 전에 데이터를 훨씬 더 쉽게 처리할 수 있게 해준다.
      Kibana는 엘라스틱서치 데이터의 실시간 시각화를 제공하며, UI를 통해 애플리케이션 성능 모니터링, 로그, 인프라 메트릭 데이터에 신속하게 접근할 수 있다.

참고: Elasticsearch란?

profile
풀스택 진행중...

0개의 댓글