관리 메뉴

개발노트

[ELK] ELK 란? 본문

기타/ElasticSearch

[ELK] ELK 란?

YoonGwon 2021. 1. 7. 16:48

1. ELK란? 

- ELK( ELK Stack )는 Elastic사 에서 제공하는 Elasticsearch, Logstash, Kibana의 세 가지 오픈 소스 프로젝트의 약자로 
분석 및 저장 기능을 담당하는 
ElasticSearch, 수집 기능을 하는 Logstash, 이를 시각화하는 도구인 Kibana의 앞글자만 딴 단어이다.

ELK는 접근성과 용이성이 좋아 최근 가장 핫한 Log 및 데이터 분석 도구이다.

 

1) Elasticsearch

- Json 기반의 분산형 검색 및 분석엔진으로 키워드를 인덱스로 잡아 키워드(Key)가들어간 값(Value)을 찾을수있는 형태로 기반으로 개발한 분산 검색엔진이다. Logstash를 통해 수신된 데이터를 저장소에 저장하는 역할을 담당.

- 데이터를 중심부에 저장하여 예상되는 항목을 검색하고 예상치 못한 항목을 밝혀낼 수 있다.

- 정형, 비정형, 위치정보, 메트릭 등 원하는 방법으로 다양한 유형의 검색을 수행하고 결합할 수 있다.

 

2) Logstash

- 오픈소스 서버측 데이터 처리 파이프라인으로, 다양한 소스에서 동시에 데이터를 수집하고 변환하여 stash 보관소로 보낸다.

- 수집할 로그를 선정해서, 지정된 대상 서버(ElasticSearch)에 인덱싱하여 전송하는 역할을 담당하는 소프트웨어

 

*Logstash 부가 설명

로그란 시스템이나 애플리케이션 상태 및 행위와 관련된 풍부한 정보를 포함하고 있다. 이러한 정보를 각각 시스템마다 파일로 기록하고 있는 경우가 대다수 일것이다. 그렇다면 과연 이러한 정보를 파일로 관리하는 것이 효율적인 것인가를 생각해볼 필요가 있다. 한곳에 모든 로그데이터를 시스템별로 구분하여 저장하고 하나의 뷰에서 모든 시스템의 로그데이터를 볼 수 있다면 굉장히 관리가 편해질 것이다. 이러한 모든 로그정보를 수집하여 하나의 저장소(DB, Elasticsearch 등)에 출력해주는 시스템이 로그스태시라는 시스템이다. 앞선 포스팅에서 다루어보았던 Filebeat와 연동을 한다면 파일에 축적되고 있는 로그데이터를 하나의 저장소로 보낼 수도 있고, 카프카의 토픽에 누적되어 있는 메시지들을 가져와 하나의 저장소에 보낼 수도 있다.

 

3) Kibana

- 데이터를 시각적으로 탐색하고 실시간으로 분석 할 수 있다.

- 시각화를 담당하는 HTML + Javascript 엔진이라고 보면 된다.


2. ELK Stack이란? 

 

- ELK 솔루션에서 Beats 추가되면서 ELK Stack이라고 불린다.

 

*Beats : 서버에 에이전트로 설치하여 다양한 유형의 데이터를 ElasticSearch 또는 Logstash에 전송하는 오픈 소스 데이터 발송자다.

 

Beats 동작 방식.

Beat는 서버에 에이전트 형식으로 설치하는 오픈소스 데이터 수집기 입니다. Beats 는 데이터를 Elasticsearch에 직접 전송할 수 있으며, Logstash를 통해서 데이터를 전송할 수도 있습니다.

이미지 출처 : https://www.elastic.co/guide/en/beats/libbeat/7.x/beats-reference.html#beats-reference

 

What are Beats? | Beats Platform Reference [7.x] | Elastic

Beats are open source data shippers that you install as agents on your servers to send operational data to Elasticsearch. Elastic provides Beats for capturing: Beats can send data directly to Elasticsearch or via Logstash, where you can further process and

www.elastic.co

 

 

728x90