1.서문
- Elasticsearch는 전문검색뿐 아니라 보안, 로그 분석 등 다양하게 이용된다.
- Elasticsearch는 주로 ELK 스택, Elasticsearch, Logstash, Kibana와 함께 쓰이며 경량 데이터 수집기인 Beats와도 같이 쓰인다.
- 모니터링, 클라우드, 머신러닝 서비스도 제공한다.
Elasticsearch
- 데이터를 색인하고, 저장하고, 검색 및 집계 기능 등을 수행한다.
- 뛰어난 검색 능력과 대규모 분산시스템 기능을 제공한다.
- 사용법은 간단하다.
- 실시간으로 인덱싱하자마자 검색 및 집계가 가능하다.
- Full Text (전문) 검색 및 다양한 점수 기반의 다양한 정확도 알고리즘을 사용할 수 있다.
- 내부적으로 Inverted File Index 구조를 사용한다.
- 사용자 관점으로는 유일하게 JSON 형식으로 통신한다. (입출력 데이터는 JSON이다.)
- 입출력 데이터의 형식 변환은 Logstash가 지원한다.
- 데이터 CRUD는 REST API 기반으로 동작한다.
- 여러 인덱스를 한번에 검색하고 출력할 수 있는 멀티테넌시 를 지원한다.
Logstash
- 엘라스틱서치는 검색 기능만 제공하고 수집 기능은 Logstash를 쓴다.
- 입력 -> 필터 -> 출력 구조로 이루어졌으며, 다양한 소스로부터 입력, 여러 목적지로 출력 기능을 지원한다.(ES, S3, Local, Kafka 등)
Kibana
- 엘라스틱서치의 시각화도구이다.
- 검색 및 집계 기능을 사용할 수 있다.
- 세 메뉴, Discover, Visualize, Dashboard 로 구성된다.
- Discover: 색인된 소스 데이터의 검색을 위한 메뉴이다. 시간대별 로그 수 등도 확인가능하다.
- Visualize: 집계 기능을 통해 조회된 데이터의 통계를 다양한 차트로 표현하는 패널을 만드는 메뉴이다.
- Dashboard: Visualize 메뉴에서 만들어진 시각화 도구들을 조합해서 대시보드 화면을 만드는 메뉴이다.
Beats
- 단말 시스템에 가볍게 설치하기 위한 경량데이터 수집기이다.
- Logstash나 Elasticsearch 로 데이터를 전송한다.
- Filebeat: 파일의 내용을 수집한다.
- Metricbeat: 시스템의 상태를 수집한다.
- Functionbeat: 클라우드 인프라 모니터링 도구, 서버리스 프레임워크로 사용된다.