elastic에서 제공하는 Elasticsearch, Logstash, Kibana의 약어로 각각 로그 저장과 분석,검색, 로그 수집, 시각화를 담당하며 이에 추가로 경량 로그 수집기인 elastic의 beats를 추가하여 사용하기도 한다.
각각의 프로그램은 독립적이며 로그 수집기를 Fluentd로 대체한 EFK나 Kibana를 Grafana로 대체하여 사용하기도 한다.
로그 데이터를 저장하고 이를 역색인 방식으로 빠르게 검색할 수 있는 NoSQL 방식의 검색엔진이다.
각각의 데이터는 index에 Document라는 이름으로 저장되며 JSON 형식으로 되어 있어 RESTAPI를 통한 통신이 가능하다.
RESTAPI를 통한 데이터 CRUD가 가능하다.
document의 단어들을 키워드로 만들고 해당 키워드가 있는 document를 기록하는 방식
로그를 수집, 필터링하는 로그 수집기로 Input->Filter->Output의 파이프라인을 형성하여 작업을 처리한다.
각각의 단계는 여러 plugin을 가지고 있으며 모든 plugin이 기본적으로 포함되어있다.
플러그인을 통해 Beats, TCP, RDB, Elasticsearch등의 다양한 데이터 소스에서 데이터를 받아올 수 있다.
grok, json등의 plugin과 데이터의 테그를 이용하여 다양한 방법으로 데이터 필터링이 가능하다.
ELK를 기본으로 사용하나 Elasticsearch에 출력하는것 외에 파일을 생성하거나 DB에 출력하는 등의 다양한 출력이 가능하다.
Logstahs와 비슷하게 로그를 수집, 필터링하는 로그 수집기로 input, filter, output외에 Parser, Buffer, Formatter, Engin의 컴포넌트를 가진다.
자체적으로 Buffer를 지니고 있어 전송 지속성에서 유리하나 Elasticsearch에 대한 대응이 상대적으로 느리다.
Elasticsearch에 저장된 데이터를 시각화하여 보다 쉽게 데이터를 분석하게 도와주는 역할을 하는 Tool이다.
Discover와 Dashboard라는 주요 기능을 가지며 Discover는 데이터를 검색하고 필터링하는 기능을 수행하고 Dashboard는 여러 방식(그래프, 차트, 그리드 등)으로 시각화하여 데이터를 쉽게 이해 가능하게 한다.
Logstash는 각각의 단말에 설치하기에는 너무 무거운 프로그램이므로 이를 대체하기 위한 경량 로그수집기를 사용한다.
Beats에는 필터링 기능이 없으며 각각의 기능에 맞게 여러가지 Beats가 존재한다.
https://soyoung-new-challenge.tistory.com/99
https://d2.naver.com/helloworld/3585246
https://esbook.kimjmin.net/05-search/5.1-query-dsl