[ELK Stack] ELK Stack 이란
ELK Stack이란?
ELK는 Elasticsearch
, Logstash
, Kibana
세 가지 오픈소스 프로젝트의 앞글자를 따서 만든 이름이다.
Elasticsearch
Elasticsearch는 Apache Lucene에 구축되어 배포된 검색 및 분석 엔진이다. 다양한 언어를 지원하고 고성능에 스키마가 없는 JSON 문서로 Elasticsearch는 다양한 로그 분석과 검색 사용을 위해 많은 사용자에게 사랑받는 오픈소스이다.
2010년에 릴리스된 이후로 빠르게 인기 검색 엔진이 되었으며, 로그 분석, 전체 텍스트 검색, 보안 인텔리전스, 비즈니스 분석 및 운영 인텔리전스 사용 사례에 일반적으로 사용되었다.
JSON 문서 형식의 데이터를 Logstash
와 같은 수집 도구나 API를 사용해 Elasticsearch로 전송할 수 있다. Elasticsearch는 자동으로 원래 문서를 저장하고 클러스터의 인덱스에 문서에 대한 검색 가능한 참조를 추가한다.
Elasticsearch의 가장 큰 장점은 실시간 분석 시스템이다.
대용량 데이터 분석에 가장 널리 사용되고 있는 하둡(Hadoop)은 배치 기반으로 데이터 수집 -> 분석 -> 결과도출
루틴으로 실행된다.
반면 Elasticsearch는 클러스터가 실행되는 동안 계속해서 데이터가 입력(indexing)되고, 그와 동시에 실시간에 가까운 속도로 색인된 데이터의 검색과 집계가 가능하다.
Logstash
Logstash는 실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진이다. JRuby로 되어있으며 JVM위에서 돌아간다.
Logstash는 Server-side 데이터 처리 파이프라인으로 다양한 소스에서 동시에 데이터를 수집하고 통합한다.
또한 수집된 데이터를 정규화하여 Elasticsearch 등의 목적지로 전송하는 역할을 한다.
Kibana
Kibana는 Elasticsearch에 색인된 데이터를 검색하고 시각화하는 ELK Stack 기반의 오픈소스 프론트엔드 애플리케이션이다.
색인된 데이터를 검색하여 막대 차트, 원형 차트, 표, 히스토그램, 지도 등을 생성하여 데이터를 분석한다.
또한 웹 인터페이스를 통해 Elastic Stack 인스턴스를 모니터링하고 관리하며 보호한다.
Beats
Beats는 무거운 Logstash의 기능을 세분화하여 데이터를 수집하는 경량화된 오픈소스 데이터 수집기이다. Beats를 통해 수집된 데이터는 Logstash를 통하거나, Elasticsearch로 직접 보낼 수 있다.
참고
https://victorydntmd.tistory.com/308
https://ungodly-hour.tistory.com/25
https://suyeon96.tistory.com/38