공부/엘라스틱서치

[엘라스틱서치] 엘라스틱서치(elasticsearch), 로그스태시(logstash), 키바나(kibana), 비츠(beats)

ghhong 2021. 9. 16. 09:54

엘라스틱서치(elasticsearch)

현재 가장 인기있는 오픈소스 검색엔진으로 아파치 루씬을 기반으로 구축되었다.

기본적으로 모든 데이터를 색인하여 저장하고 검색, 집계 등을 수행하며 결과를 클라이언트 또는 다른 프로그램으로 전달하여 동작하게 한다.

kibana, logstash, beats와 함께 사용하여 데이터를 수집, 분석, 시각화를 수행한다.

엘라스틱 서치의 특징

1. restful api : 데이터 crud를 http프로토콜을 통해 REST API로 처리

2. json : json형태의 데이터를 사용하기 때문에 입력데이터를 json형식으로 가공하는 것이 필요하다.

3. NRT(near real-time)분석 : 엘라스틱서치 클러스터가 실행되는 동안 계속 데이터가 입력되고 동시에 실시간에 가까운 속도로 색인된 데이터의 검색, 집계가 가능하다.

4. 역파일 색인(inverted file index) : 내부적으로 역파일색인구조로 데이터를 저장한 후에 가공된 텍스트를 검색한다.

5. 멀티테넌시(multitenancy) : 엘라스틱서치의 데이터들은 '인덱스'라는 논리적인 단위로 구성되며 서로 다른 저장소에 분산저장된다. 서로 다른 인덱스들을 별도의 커넥션 없이 하나의 질의로 묶어서 검색하고, 검색결과들을 하나의 출력으로 도출한다.

 

엘라스틱 서치 용어

1. 색인(indexing) : 데이터가 검색될 수 있는 구조로 변경하기 위해 원본 문서를 검색어 토큰들로 변환하여 저장하는 과정

2. 인덱스(index) : 색인 과정을 거친 결과물 또는 색인된 데이터가 저장되는 저장소

3. 검색(search) : 인덱스에 들어있는 검색어 토큰들을 포함하고 있는 문서를 찾는 과정

4. 질의(query) : 사용자가 원하는 문서를 찾거나 집계 결과를 출력하기 위해 검색 시 입력하는 검색어 또는 검색 조건

 

로그스태시(logstash)

데이터의 색인, 검색 기능만을 제공하던 엘라스틱서치는 데이터 수집을 위한 도구가 필요했다.

logstash가 출력api로 엘라스틱서치를 지원하기 시작하면서 logstash는 elastic에 합류하게 됐다.

 

로그스태시 동작

1. 입력 : 다양한 데이터 저장소로부터 데이터를 입력받는다.

2. 필터 : 데이터를 확장, 변경, 필터링, 삭제한다.

3. 출력 : 다양한 데이터 저장소로 데이터를 전송한다.

 

키바나(kibana)

키바나는 엘라스틱서치를 시각화할 수 있는 도구이다. discover, visualize, dashboard 3개의 기본 메뉴와 다양한 앱들로 구성되어 있다.

Discover

discover는 엘라스틱서치에서 색인된 소스 데이터들의 검색을 위한 메뉴이다. 검색창의 질의문을 통해 데이터를 간편하게 검색, 필터링 할 수 있다.

Visualize

visualize는 aggregation 집계 기능을 통해 조회된 데이터의 통계를 다양한 차트로 표현할 수 있는 패널을 만드는 메뉴이다. 패널들을 조합하여 대시보드를 만든다.

Dashboard

visualize메뉴에서 만들어진 시각화 도구들을 조합하여 대시보드 화면을 만든다.

 

비츠(Beats)

로그스태시는 다양한 기능을 지원하여 많은 자원을 필요로 한다. 그래서 만들어진 경량 데이터 수집기가 Beats다.

많은 오픈소스 개발자들이 다양한 beats를 개발하여 배포하고 있다.

 

출처 :

https://www.elastic.co/kr/

 

오픈 소스 검색: Elasticsearch, ELK Stack 및 Kibana 개발사 | Elastic

우리는 Elastic (ELK) Stack -- Elasticsearch, Kibana, Beats 및 Logstash를 만든 개발사입니다. 클라우드 또는 온-프레미스에서 데이터를 안전하고 안정적으로 검색하고 분석하고 시각화하세요.

www.elastic.co

https://esbook.kimjmin.net/

 

Elastic 가이드 북

 

esbook.kimjmin.net