ELK(ElasticSearch, Logstash, Kibana) 란? ELK Stack 이란?
IT

ELK(ElasticSearch, Logstash, Kibana) 란? ELK Stack 이란?

반응형

ELK란?

ELK는 3가지 오픈소스 소프트웨어 Elastic Search, LogStatsh, Kibana의 조합을 말합니다. 각 제품이 연동되어 데이터 수집 및 분석 툴로서 동작합니다. Elastic이라는 기업명에 걸맞게 높은 확장성과 뛰어난 이식성을 가지고 있어 다른 여러가지 툴과도 연동이 가능합니다.

 

각 소프트웨어는 무엇에 사용하나요?

 LogStash는 수집할 로그를 선정해서,  지정된 대상 서버(Elasticsearch)에 인덱싱해서 전송하는 역할을 담당하는 소프트웨어 입니다. 다양한 플러그인 제공을 여러 유형의 로그 수집 및 인덱싱이 가능합니다. 여러 소스의 데이터를 동시에 가져 와서 변환 한 다음 Elasticsearch와 같은 stash로 보내는 서버 측 데이터 처리 파이프 라인 이라고 보시면됩니다.

ElaticSearch 는 Lucene 기반으로 개발한 분산 검색엔진으로, LogStash 를 통해 수신된 데이터를 저장소에 저장하는 역할을 담당합니다. RDB와 비슷하나 검색 및 분석 성능은 훨씬 뛰어납니다.

 Kibana는 사용자에게 분석 결과를 가시적으로 보여주기 위한 목적으로 만들어진 소프트웨어입니다. Visualization 을 담당하는 HTML + Javascript 엔진이라고 볼 수 있으며, Elasticsearch에서 차트와 그래프로 데이터를 시각화 할 수 있습니다.

추가로 Beats는 단일 목적의 데이터 수집기 플랫폼입니다. 수백 수천 개의 장비와 시스템으로 부터 Logstash나 Elasticsearch에 데이터를 전송합니다. 

 

Data Flow 는?

데이터 흐름은 아래 순서대로 보면 됩니다.

1. 1개 이상의 수집할 Data 발생 서버에서 beats가 특정 트리거에 의해 logstash로 Data를 전송합니다. 여기서 각 Client서버 마다 Beats가 설치되어 있어야합니다.

2. logstash로 전달 된 Data를 커스터마이징이 가능한 필터를 통해 가공하여 Elasticsearch로 전달 합니다.

3, Elasticsearch로 전달 받은 데이터를 서버(Elasticsearch)에 저장합니다.

4. kibana에서 연동되있는 Elasticsearch에 저장된 데이터 셋을 토대로 시각화를 제공 합니다.

 

참고로 주로 많이 함께 사용하는 제품들을 묶어 ELK( ELK Stack)이라 부르고 있기는 합니다만 각 제품은 확장성이 뛰어나기 때문에 모든 제품을 같이 사용할 필요는 없습니다. 적용할 상황에 따라 다른 제품으로 대체할 수도 있고 특정 제품은 제외시킬 수도 있습니다. 

AWS에서는 AWS Elastic Search Service를 제공합니다. AWS 솔루션 아키텍트로서 AWS Elastic Search Service가 무엇인지? 어떻게 활용할 수 있는지? 확인해보지 않을 수가 없겠죠. 이 주제로 다음 블로그에 계속해서 포스팅하겠습니다. 

 

반응형