1. ELK Stack의 구성 원리
ELK는 위 그림처럼 세 가지 기술로 구성된다.
-
Elasticsearch 로그 저장 및 검색
-
Logstash 로그 수집 엔진
-
Kibana 로그 시각화 및 관리
물론 세 모듈은 각자의 독립된 기술이기 때문에 필요에 따라 일부만 써도 된다.
하지만 서로 호환이 잘되고 합쳤을 때 시너지가 좋기 때문에 같이 구축된다.
세 기술을 같이 쓰기 때문에 Stack 이라고 부르며, 일반적으로 구성되는 형태는 다음과 같다.
-
Data Processing (Logstash)
- 서버 내의 로그, 웹, 메트릭 등 다양한 소스에서 데이터를 수집하여 입력
- 데이터 변환 및 구조 구축
- 데이터 출력 및 송신
-
Storage (Elasticsearch)
- 데이터 저장
- 데이터 분석
- 데이터 관리
-
Visualize (Kibana)
-
Dashboard를 통한 데이터 탐색
-
팀원들과 공유 및 협업하는데 사용 가능
-
엑세스 제어 (Access Control) 사용 가능
-
하지만 각자의 모듈을 유연하게 대체할 수 있는 만큼, 실제 구축되는 형태는 다양하다.
2. ELK Stack의 장점
정말 간단하게 썼지만, ELK가 뭔지에 대해서는 감은 잡혔다.
매년 쏟아져 나오는 IT 기술, 그리고 그걸 줄자 대놓고 서로 장단점 비교하는게 중요한 IT 업계.
보통 그 다음으로 궁금해하는건.. “그래서 이게 왜 좋은건데? 뭐가 다른데?” 이다.
-
가격
ELK는 Elastic이라는 회사에서 제공하는 오픈소스이다.
별도로 AWS EC2 등의 인스턴스에 사용한다면 관련 비용이 들어가긴 하겠지만,
ELK 자체로만은 무료이기 때문에 다른 시스템에 비해 가격적인 측면에서 장점을 가진다. -
접근성 & 사용성
ELK는 오픈소스를 내려받아 설치하는 것으로 구축이 완료된다.
그 외의 별도의 추가적인 개발 과정이 필요없기 때문에 접근성이 뛰어나다.
또 그 사용이 다른 유사 시스템들에 비해 쉬운 편이다. -
속도
ELK중 데이터 보관 및 분석 역할을 담당하는 Elasticsearch는 거의 실시간 (Real-Time)에 가깝게 데이터를 처리할 수 있다.
-
유연성
ELK는 각자의 기능을 담당하는 세가지의 모듈은 붙여서 만든다. 그렇기 때문에 그 기능만 담당할 수 있다면 얼마든지 모듈을 유연하게 변경할 수 있다.
예를 들어서, 굳이 Logstash를 쓰지 않아도 데이터 수집 역할만 할 수 있다면 경우에 따라 다른걸로 대체가 가능하다.
3. ELK의 변화, 최근 동향
ELK는 트렌디해 보이지만 생각보다 그 역사가 길다.
꾸준히 관심을 받으며 Elastic 회사는 ELK의 세가지 모듈을 발전시키는 것 외에도, 크게 두 가지 변화를 시도했다.
-
Beats 의 도입
기존의 ELK에서의 큰 문제점 중 하나는 Logstash였다.
데이터 수집의 역할을 맡고 있는 Logstash는, 원하는 형태로의 데이터 입출력 변환 기능까지 맡고 있었기 때문에 그 오버헤드가 컸다.많은 사용자들의 요구사항을 받아들인 Elastic 회사는, 오로지 데이터의 수집만을 담당하는 경량화된 모듈 Beats를 도입했다.
Beats는 한 가지를 이르는 말이 아니며 위와 같이 수집하고자 하는 데이터의 유형별로 다른 모듈이 존재한다.
-
Cloud 기반의 Elasticsearch 도입
최근 IT 업계에서 제일 핫한 분야는 아무래도 클라우드가 아니지 싶다.
큰 규모의 회사들은 기존 On-Premise 기반의 서비스들을 클라우드 기반으로 마이그레이션하기 위해 발빠르게 움직이고 있다.
ELK 또한 이런 흐름에 맞게 Cloud 기반의 Elasticsearch를 도입했다.