[ElasticSearch] Elastic Stack

donghyeok·2022년 12월 19일

ElasticSearch

목록 보기
1/8

0. Elastic Stack 소개

  • Elastic Stack (ELK stack) 은 Elastic Search, Logstash, Kibana, Beats)를 묶어서 이르는 말이다.
  • 각 컴포넌트 별로 대략적인 역할은 다음과 같다.
    1. Elastic Search : 로그 저장 및 검색
    2. Logstash : 데이터 입출력 변환 기능 (Beats 도입 이전엔 수집까지 담당)
    3. Kibana : 로그 시각화 및 관리
    4. Beats : 데이터 수집 엔진
  • Elastic Search는 Elastic Stack의 심장이라고 부른다.
  • 기본적으로 모든 데이터를 색인하여 저장하고 검색, 집계 등을 수행하며 결과를 클라이언트 또는 다른 프로그램으로 전달하여 동작하게 한다.
  • Elastic Search는 다음과 같은 특징들을 가지고 있다.
    • 오픈소스
    • 실시간 분석
    • 전문 검색 엔진
    • RESTful API
    • 멀티테넌시 (multitenancy)
  • 전문 검색 엔진
    - 사용자 관점에서는 JSON 형식으로 데이터를 관리하지만 ES 내부적으로는 역색인(inverted file index) 구조로 되어 있어 효율적인 전문 검색이 가능하다.
    - 역색인이란 text 데이터를 토큰화하여 해당 토큰을 기준으로 인덱스를 생성하는 방식이다.
  • 멀티테넌시
    - 인덱스들은 서로 다른 저장소에 분산되어 저장되는데, 떨어져 있는 서로 다른 인덱스들을 별도의 커넥션 없이 하나의 질의로 검색하고, 결과를 하나의 출력으로 도출하는 것을 말한다.

2. Logstash

  • ES에서 필요한 데이터 수집도구의 역할을 한다.
  • Logstash는 데이터 처리를 위해서 크게 다음과 같은 과정들을 거치게 된다.
    1. 입력 (inputs) : 다양한 데이터 저장소로부터 데이터 입력 받음
    2. 필터 (filters) : 데이터를 확장, 변경, 필터링 및 삭제 수행
    3. 출력 (outputs) : 다양한 데이터 저장소로 데이터를 전송

3. Kibana

  • Kibana는 ES를 가장 쉽게 시각화할 수 있는 도구이다.
  • 검색, aggregation의 집계 기능을 이용해 ES에 특화되어 결과를 시각화할 수 있다.

4. Beats

  • Beats 이전에 Logstash는 수집 기능을 동시에 담당했는데 너무 다양한 기능 때문에 프로그램 부피가 컸고 실행에 많은 자원을 필요로 했다.
  • 이렇게 거대한 프로그램을 모든 단말 시스템에 설치하는 것은 큰 부담이었음.
  • Beats는 데이터 수집 역할을 대신하는 매우 가벼운 도구이다.

출처 : ref. https://esbook.kimjmin.net/

0개의 댓글