Elasticsearch

박성운·2022년 8월 17일
0

Elasticsearch는 텍스트, 숫자, 정형 및 비정형 테이터 등 모든 데이터를 위한 무료 오픈 소스 검색 및 분산 엔진이다. 점문검색엔진(Full-text search engine)으로 개발되었으나 단순히 검색엔진을 넘어 보안, 로그 분석, 전문 분석 등 다양한 영역에서 중요한 역할을 하고 있다.

-간단한 Rest API, 분산형 특징, 속도, 확장성을 유명
-Elastic Stack 핵심 구성 요소들은 데이터 수집, 저장, 분석, 시각화

  • Apache Lucene 기반의 Java 오픈소스 분산 검색 엔진이다.
  • Elasticsearch를 통해 루씬 라이브러리를 단독으로 사용할 수 앗게 되었다.
  • 단독 프로젝트인 Logstash와 Kibana와 함께 사용된다.

ELK Stack
일반적인 데이터 분석 과정은 웹과 시스템 로그 데이터를 만든 뒤, 로그를 수집하고 저장 및 전처리, 분석과 시각화를 차례롤 진행합니다.
ELK스택에서 로그집계에는 Logstash를 검색에는 Elasticsearch를 데이터를 시각화하고 분석하는 Kibana를 상요하여 테이터를 색인 검색 및 분석을 위한 강력한 플랫폼을 제공합니다.

Elasticsearch는 오픈소스를 통해 소스코드를 확인할 수 았고, 또한 기여도 가능하다. Lucene이 Java로 만들어졌기에 ES도 마찬가지로 Java로 코딩되어있습니다. 따라서 반드기 Java를 설치해주어야 합니다.
실시간 분석(NRT)Elasticsearch의 가장 큰 특징 중 하나로, Hadoop이라는 배치 기반 분산 시스템과 달리 elasticsearch 클러스터가 실행되고 있는 동안에는 계속해서 테이터가 입력-색인(indexing)되고, 동시에 실시간에 가까운 속도로 색인된 데이터의 검새, 집계가 가능합니다.

Lucene(full-text search engine)는 inverted file index라는 구조로 테이터를 저장한다.

Logstash
기존의 Elasticsearch는 테이터의 색인, 검색 기능만을 제공햇으나 Logstash가 Elasticsearch의 입력수단으로 사용되기 시작하면서 토합도었습니다.
Logstash의 data flow는 이러하다.
inputs -> Filters -> ouputs

Kibana
Elasticsearch는 Resultful하고,JSON 형식 Data로 통신하기 때문에 HTP Protocol을 이용해 어떤 클라이언트와도 손쉽게 연동이 가능하다. dbeaver역할을 한다.

0개의 댓글