본문 바로가기
ELK

엘라스틱 스택

by 킹차니 2023. 6. 19.

엘라스틱 스택 줄여서 ELK는 Elastic Search, Logstash, Kibana 3가지 기술 스택을 말한다.

해당 스택은 빅데이터 파이프라인을 구성하기 위한 데이터 수집, 가공, 저장, 분석, 시각화에 필요한 모든 소프트웨어를 갖추고 있다고 할 수 있다.

 

이들 스택의 각 역할을 간단히 말한다면 로그 스태시가 데이터를 수집하고, 엘라스틱 서치는 데이터를 저장하고 검색이 가능한 엔진을 제공한다. 마지막으로 키바나는 이들 데이터의 시각화를 담당한다.

출처:https://www.guru99.com/elk-stack-tutorial.html

 

 

이들 각 스택에 대해 간단하게 알아보자.

 

1. 엘라스틱 서치 : 분산 검색 엔진

엘라스틱 서치는 검색 엔진이다. 

검색 엔진: 내부적으로 각 도큐먼트를 인덱싱하고 빠르게 검색하는 데 사용되는 기술

모든 레코드들을 JSON 도큐먼트 형태로 관리. 일반적인 데이터베이스처럼 쿼리한 결과에 대해 일치하는 원본 도큐먼트를 반환.

텍스트 외에도 숫자, 날짜, IP, 지리 정보 등 다양한 데이터 타입을 지원.

===> 검색 엔진 + 데이터 베이스 ===> 일종의 NoSQL 데이터 베이스라고 생각하면 된다.

 

텍스트나 도큐먼트의 경우 인덱싱 시점에 분석을 거쳐 용어 단위로 분해되고 역인덱스 사전을 구축. 숫자나 키워드 타입 데이터들은 집계를 위해 최적화된 컬럼 기반 자료구조를 저장. ===> 최적화된 자료구조들을 바탕으로 병렬처리나 분산 처리가능

 

다른 NoSQL과 매우 유사하지만 다른 NoSQL을 압도하는 검색 기능과 성능을 가지고 있음.

 

검색어에 대한 유사도 스코어를 기반으로 한 정렬을 제공 (스코어링)

 

JOIN 쿼리가 어렵기 때문에 반정규화를 기본으로 모델링 해야한다.

반정규화: 데이터베이스 설계에서 정규화 원칙을 일부 우회하는 기법. 정규화는 데이터베이스를 잘 구조화하여 중복을 최소화하고 데이터의 일관성과 무결성을 유지하는 데에 중점을 두지만 반정규화는 성능 향상을 위해 정규화 원칙을 일부 무시하고 중복 데이터를 허용함.
반정규화는 주로 대량의 데이터를 처리해야 할 때 성능 향상을 목적으로 사용됨. 중복 데이터의 증가로 인해 데이터베이스의 일관성과 무결성이 약간 희생되지만, 데이터 접근 속도를 향상시키는 효과를 가져올 수 있다.

 

인덱스가 불변의 자료구조이기 때문에 도큐먼트의 수정이나 삭제 비용이 비싸다.

 

REST API 형태로 입력을 받아들임.

 

 

2. 키바나: 시각화와 엘라스틱서치 관리 도구

 

엘라스틱 스택의 UI를 담당

엘라스틱 서치에 복잡한 요청을 편하게 할 수 있도록 도와줌.

엘라스틱 서치에 대한 관리 기능, API 실행콘솔, 솔류션 페이지, 스택 각 구성요소들을 위한 모니터링 페이지 제공.

===> 제일 중요한 기능은 시각화 대시보드

===> 키바나는 라인 차트, 파이 차트 등과 테이블, 지도 등의 다양한 시각화 요소들을 클릭 몇번으로 쉽게 구성하도록 해줌

 

 

3. 로그스태시: 이벤트 수집과 정제를 위한 도구

 

 

데이터 수집과 가공 기능 제공. 다양한 소스로부터 로그를 수집하게 해줌.

 

필터 기능을 통해 비정형이나 반 정형 데이터를 분석하기 쉬운 형태로 정제 가능.

출처:https://blogs.bmc.com/logstash-using-data-pipeline/?print-posts=print

 

로그 스태시는 형식에 무관하게 데이터를 동적으로 수집, 변환, 전송하는 구조로 되어 있음.

 

로그 스태시는 코딩 없이 간단한 설정만으로 로그를 가공할 수 있게 해줌.

 

 

 

3-1. 비츠 : 엣지 단에서 동작하는 경량 수집 도구

 

로그 스태시는 매우 강력하지만 무겁다. 해서 엘라스틱 스택에는 파일비트, 메트릭비트 등 비츠라고 부르는 경량 수집기가 포함되어 있다.

 

가벼운 Golang으로 작성됨.

 

각 비트는 로그 수집, 시스템 지표 수집 등 특정 목적에 최적화된 에이전트.

 

로그 스태시 수준의 복잡한 이벤트 가공은 지원하지 않아 가벼워 각 서비스 호스트에 부담없이 설치 가능.

출처:https://www.elastic.co/guide/en/beats/libbeat/current/beats-reference.html

 

 

 

 

 

 

 

 

 

 

 

참고: 엘라스틱 스택 개발부터 운영까지 - 김준영, 정상운 저

 

'ELK' 카테고리의 다른 글

서비스에 ELK적용하기  (0) 2023.08.04