Elasticsearch

[Elastic search] 1) 엘라스틱서치 기본

Alex, Yoon 2022. 2. 19. 17:03

Elasticsearch 역사 

검색엔진의 시초, Lucene

루씬(Lucene)은 자바 언어로 이루어진 정보 검색 라이브러리 자유-오픈 소스 소프트웨어. 아파치 소프트 웨어 재단에 의해 지원되며, 아파치 라이선스 하에 배포. Full text 색인 및 검색 기능을 필요로 하는 모든 응용 프로그램에 적합하지만 웹 검색 엔진 및 로컬 단일 사이트 검색 구현에서의 유용성으로 널리 알려져 있다.

 

이 루씬(java)을 기반으로 등장하여 검색엔진의 지배적인 위치해 있고 나아가 로그분석 등 다양한 영역에서 요즘 핫한 오픈소스 서비스 제품이 바로 '엘라스틱 서치' 

ELK 는 옛말. 

Elastic Search + Logstach + Kibana를 묶어 ELK(ELK Stack)라는 서비스명으로 제공했으나 5.0.0 버전부터 Beats가 포함되며 Elastic Stack이란 이름으로 서비스가 제공되고 있다.

  • Kibana, Logstash, Beats들과 함께 사용하며 다양한 문제들을 해결하고 있다.
  • 즉 데이터 수집, 전처리, 분석, 시각화의 종합 아키텍처.
  • 유닉스 시스템과 자바에 대한 기초 지식이 필요하다.

Elastic Stack  구성 

Elastic Search (Near Real Time) 

'거의 실시간'으로 저장, 검색, 분석이 가능한 분석엔진. 주로 REST API를 이용해 처리한다. 

루씬(Apache Lucene) 기반의 Full Text로 검색이 가능한 오픈소스 분석엔진. 대량의 데이터를 신속하게 (거의 실시간으로) 저장, 검색, 분석 할 수 있다. 

Logstash

플러그인을 이용해 데이터 집계와 보관, 서버 데이터 처리를 담당한다. 파이프라인으로 데이터를 수집해 필터를 통해 변환 후 Elastic Search로 전송한다. 

  • 입력 : Beats, CloudWatch, Eventlog 등의 다양한 입력을 지원, 데이터 수집
  • 필터 : 형식이나 복잡성에 상관없이 설정을 통해 데이터를 동적으로 변환
  • 출력 : ES, Email, ECS, kafka 등 원하는 저장소에 데이터를 전송

Kibana

  • 엘라스틱 서치는 Query DSL이라는 기능이 있는데, 이 기능을 활용하여 Aggregation 가능하도록 지원.
  • 키바나는 엘라스틱 서치에서 저장한 데이터를 시각화해주는 도구. 

Beats

경량 에이전트로 설치. 데이터를 Logstash또는 ES로 전송하는 도구로써 Logstash보다 경량화되어 있는 서비스이다. Filebeat, Metricbeat, Packetbeat, Winlogbeat, Heartbeat 등이 있으며 Libbeat을 이용하여 직접 구축도 가능하다.

+) 요즘 엘라스틱 서치 + 카프카의 활용. 

로그스태시는 가벼운 작업에 어울리는 오픈소스이므로, 주로 Beat로 수집된 로그데이터를 Kafka로 전송하고 Kafka에서 입력된 데이터를 변환, 필터 작업 후 ES(elastic search)에서 분석하는 구조.

 

반응형