프로젝트를 진행하면서 로그 데이터를 분석 및 시각화해야 할 일이 있어서, Elastic Stack을 사용해야 할지 고민을 하는 중이므로 고민에 도움이 됐으면 하는 마음으로 간단한 개념 정리를 하게 되었습니다!
최근 사용을 하기로 결정을 하였고, 공부를 하는 느낌으로 앞으로 개발을 해나가며 동시에 기록을 해보려 합니다ㅎㅎㅎ
Elastic Stack이란?
사용자의 로그를 분석하는 것은 매우 중요한 일이지만, 대규모 서비스에서 발생하는 수많은 로그 데이터들을 실시간으로 집계하여 분석하는 일은 매우 어렵습니다. 아직 회사에서 업무를 해본 적은 없지만, 만약 업무를 하게 된다면 이에 관련해서 많은 어려움이 있을 것으로 예상이 됩니다.
현재 많은 서비스들이 MSA로 운영되고 있지만, MSA의 주요 문제는 마이크로서비스가 서로 격리되어 있어 공통 데이터베이스나 로그 파일을 공유하지 않는다는 점입니다. 따라서 MSA에는 다양한 종류의 로그들이 다양한 장소에 다양한 크기로 존재합니다. 이러한 이유 등으로 MSA 뿐만 아니라 다양한 분산 시스템에서는 서비스가 어느 부분에서 지연이 되는지 알기가 쉽지 않고, 이를 해결하기 위해 효과적으로 분산 시스템에서 로그를 분석해주는 방법이 필요합니다. 이것을 도와주는 것이 Elastic Stack입니다.
기존의 EKL Stack은 Elastic Search,Kibana, Logstash의 앞 글자를 딴 오픈소스로, 각 제품이 연동되어 사용자가 서버로부터 모든 유형의 데이터를 저장, 분석, 수집, 및 시각화를 도와줍니다. 현재는 여기서 경량의 단일 목적 데이터 수집기인 Beats를 추가하여 Elastic Stack으로 불립니다.
d2.naver.com <내 서버에는 누가 들어오는 걸까 - Apache 액세스 로그를 Elastic Stack으로 분석하기>
Elastic Search
Lucena 기반의 분산 검색 엔진으로 LogStash를 통해 수신된 데이터를 저장소에 저장해주는 역할을 합니다. 주로 REST API를 통해 처리를 하며 대량의 데이터를 신속하고 거의 실시간으로 저장, 검색 및 분석을 할 수 있습니다. 분산된 데이터를 중앙에 저장합니다. Elastic Stack의 핵심 영역이라고 할 수 있습니다.
d2.naver.com <elasticsearch로 로그 검색 시스템 만들기>
LogStash
다양한 소스에서 동시에 데이터를 수집하고 변환하여 Elastic Search와 같은 Stash로 보냅니다. Beats, CloudWatch 등으로 데이터를 수집하고 데이터를 변환한 후 Elastic Search, Kafka 등 원하는 저장소에 보내줍니다.
Kibana
Nginx 또는 Apache를 통해 호스팅되는 시각화 도구로 Elastic Search 데이터를 시각화해줍니디.
Beats
단일 목적의 데이터 수집기 플랫폼으로, 수많은 장비와 시스템으로부터 LogStash나 Elastic Search로 데이터를 전송해줍니다.
데이터의 흐름
'개발 일지' 카테고리의 다른 글
[개발일지] Kubernetes를 활용한 ELK 구축 (1/3) (0) | 2020.11.20 |
---|---|
[개발 일지] 쿠버네티스란? (0) | 2020.11.13 |