Part 1
01. ELK
- ELK = ElasticSearch + LogStash + Kibana
02. ElasticSearch
정의
- 데이터 색인, 저장, 검색, 집계 등을 수행하는 실시간 분석 검색 엔진 (NoSQL DB)
특징
- 루씬 기반
- 준 실시간으로 데이터 색인과 동시에 검색 가능
- inverted file index(역파일 색인)
- Document Oriented, Document 형식으로 데이터 저장
- CRUD를 REST API로 처리
- 플러그인을 통해 검색 및 분석, 색인 기능 확장 가능
- 멀티 테넌시
- 다른 인덱스들을 별도의 커넥션 없이 하나의 질의로 묶어서 검색하고 결과는 하나의 출력으로 도출
- 분산 환경
- 인덱스를 샤드(Shard) 단위로 분산하여 저장
- Shard는 Replica를 통해 분산 및 병렬 처리 지원
- 수평적 확장(Scale-Out) 지원
- 실제 작동 중인 ElasticSearch 인스턴스를 노드(Node) 라고 지칭
- 한 클러스터 안에서 복수의 노드가 동작 가능
- 하나의 노드가 오류 발생할 경우 다른 노드를 통해 대체
03. LogStash
- 다양한 데이터 수집과 저장을 위해 개발
- 입력 → 필터 → 출력 의 과정을 거침
- 다양한 저장소로부터 데이터를 입력 받음
- 필터를 통해 데이터 변환, 확장, 필터링 및 삭제 처리
- ElasticSearch 외 Kafka, Redis, local 등에 데이터 출력
Beats
- LogStash로 다양한 데이터를 수집하는 것에 대한 부담을 줄이기 위해 개발
- 단말 시스템으로부터 데이터 수집이 주 목적
- 바이너리 실행 파일로 컴파일 되는 언어라 가볍고 라이브러리 종속성도 적음
04. Kibana
- Elasticsearch를 시각화 할 수 있는 도구
- Elasticsearch로부터 문서, 집계 결과 등을 불러와 웹 도구로 시각화
- Discover, Visualize, Dashboard 3개의 기본 메뉴와 다양한 기능들로 구성