본문 바로가기

Log,Monitorings

[ElasticSearch] ElasticSearch 개념 알아보기

반응형

ElasticSearch는 Java 기반의 오픈소스이며 뛰어난 검색 능력과 대규모 분산 시스템을 구축 가능하며 모든 데이터를 색인하여 저장하고 검색, 집계 등 결과를 클라이언트에게 응답 또는 다른 프로그램으로 전달하여 동작할 수 있게 한다. 또한 Kibana와 연동하여 로그를 시각화할 수 있다.

 

용어

클러스터 : 하나 이상의 노드로 구성되며, 고가용성을 유지하기 위함. 각 노드들은 홀수개로 구성이 되어야 한다.

마스터 노드 : 인덱스의 메타 데이터, 샤드의 위치 등 클러스터의 상태 정보를 관리하는 노드

데이터 노드 : 실질적으로 데이터가 저장되는 노드

인제스트 노드 : 데이터를 변환하는 등 사전 처리 파이프라인을 실행하는 역할

도큐먼트 : 단일 데이터 단위 인덱스 : 도큐먼트들을 모아놓은 집합 (Indicies)

색인 : 데이터를 ES에 저장하는 행위

필드 : 로우

맵핑 : 스키마와 같은 개념

샤드 (Primary Shard, Replica Shard) : 인덱스는 기본적으로 샤드라는 단위로 분리되며 각 노드에 분산되어 저장된다.

프라이머리 샤드

레플리카 샤드

쿼리 DSL : SQL문과 비슷한 개념

특징

  • RESTful API를 통해 기능을 제공하고 JSON 형식으로 데이터를 저장 및 가공한다.
  • 실시간 검색과 분석 능력을 가진 Document 기반의 NoSQL 데이터 저장소와 유사

아키텍처

9200 : 클라이언트들과 통신하기 위한 포트

9300 : 각 노드들간 통신하기 위한 포트

기타

Logstash

실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진, Input - Filter - Output 기능이 있음

Kibana

데이터의 실시간 시각화를 지원 및 대시보드, Discover 등을 통한 로그 모니터링이 가능하다.

Filebeat

Go 언어로 개발되었으며 매우 가볍고 바이너리 실행 파일로 컴파일되기 때문에 라이브러리 종속성 또한 적다.

특정 경로에 적재되는 파일을 읽어들여 새로운 기능이 추가될 때 마다 그 내용을 ElasticSearch로 색인한다.

 

 

- Ref
https://victorydntmd.tistory.com/308

 

 

반응형