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
'Log,Monitorings' 카테고리의 다른 글
[EKS] 아주 가벼운 Loki + Grafana + Promtail 로그 시스템 구성 (2) | 2022.10.31 |
---|---|
[Datadog] EKS에서 운영중인 SpringBoot HikarpCP 모니터링 (Auto Discovery) (0) | 2022.09.09 |
[Datadog] AWS Events 기반으로 Datadog 알람 설정하기 (0) | 2022.06.26 |
[Elasticsearch] Nginx 로그 Fluentd를 통해 Elasticsearch로 보내기 (0) | 2021.12.20 |
[Fluentd] 로그 수집 패턴, Fluentd 개념 정리 (0) | 2021.12.18 |