본문 바로가기
computer/Computer common sense

[ELK] ELK Stack란 무엇인가? + 트래픽 썰

by Pstor 2023. 10. 30.

로그수집

어쩌다 보니 운영하는 사이트가 생겨서 여러 데이터들을 수집하고 싶었다. 그래서 Datadog을 사용할까 하다 학부 때 CTF 운영하면서 사용한 ELK가 생각이 났다.

ELK란?

ELK는 세가지 기술로 구성된다. Elasticsearch, Logstash, Kibana 세 가지 오픈소스 프로젝트의 합성어이다. 이 세 가지 기술이 합쳐서 강한 로그 분석 솔루션을 제공한다.

ELK 스택의 등장 배경

루씬 기반의 Elasticsearch는 단순한 검색 엔진에서 벗어나 플랫폼으로 발전하면서 ELK 스택이 탄생했다. ELK 스택은 빅데이터 파이프라인을 구성하기 위한 모든 기능을 갖추고 있어, 데이터 수집부터 분석, 시각화까지 원스톱 솔루션을 제공한다.

Elasticsearch

Elasticsearch는 로그 분석 뿐만 아니라 검색 엔진 및 데이터베이스 역할도 한다.

  • 인덱싱 (Indexing): Elasticsearch는 JSON 도큐먼트 형태로 레코드를 관리하며, 검색에 필요한 도큐먼트를 빠르게 찾기 위해 인덱싱 한다.
  • 병렬 및 분산 처리: 데이터의 양에 관계 없이 빠른 응답 시간을 보장한다. 클러스터 구성을 통해 데이터의 확장성과 안정성을 보장한다.
  • Lucene 기반: Elasticsearch는 루씬 기반 검색 엔진으로, 스코어링이나 연관도에 따른 정렬과 같은 기능을 제공한다.
  • REST API: 어떤 프로그래밍 언어를 사용하는 개발자라도 쉽게 접근하고 활용할 수 있도록 REST API를 제공한다.
  • DSL: 조인 쿼리가 어려운 점을 보완하기 위해 DSL 쿼리를 제공한다.

Logstash

Logstash는 로그 데이터의 수집, 변환, 저장을 담당한다.

  • 데이터 수집 및 가공: 로그스태시를 통해 다양한 소스에서 로그를 수집하고, 필요한 형태로 가공한다.
  • 플러그인 지원: 200개 이상의 플러그인을 통해 다양한 설정과 가공이 가능하다.
  • 성능 최적화: 배치 처리, 병렬 처리를 통해 Elasticsearch의 성능을 최적화한다.

Kibana

Kibana는 Elasticsearch에 저장된 데이터의 시각화와 모니터링을 담당한다. Kibana는 ELK 스택의 중요한 구성요소로, 엘라스틱서치의 데이터를 시각적으로 표현하는 도구이다. 엘라스틱서치 자체는 REST API 형태로 데이터를 처리하므로, 특히 복잡한 검색 쿼리를 작성하는 데 어려움을 겪는 사용자에게 키바나는 필수적이다.

  • 엘라스틱서치의 시각화 및 관리 도구로, 복잡한 API 요청을 간단하게 만들어준다.
  • 시각화 요소(라인 차트, 파이 차트, 테이블, 지도 등)를 쉽게 구성하며, 대시보드 기능으로 실시간 업데이트가 가능하다.
  • 실시간 모니터링, 데이터 분석, APM, SIEM 등의 강력한 솔루션 포함한다.

ELK의 주요 용도

  • 전문 검색 엔진: 전문 검색을 위해 엘라스틱서치는 용어를 기반으로 한 인덱싱을 활용하여 빠르고 정확한 검색 결과를 제공한다.
  • 로그 통합 분석: 서비스나 애플리케이션의 로그를 한 곳에서 통합적으로 수집하고 분석하게 해 준다.
  • 보안 이벤트 분석: SIEM 기능을 통해 보안 위협을 실시간으로 감지하고 대응할 수 있다.
  • 애플리케이션 성능 분석: APM 도구를 통해 애플리케이션의 성능 문제점을 파악하고 최적화할 수 있다.
  • 머신러닝: 데이터의 패턴을 자동으로 파악하여 이상 징후나 예측 분석을 할 수 있다.
  • 빅데이터 플랫폼 연계: 다른 빅데이터 솔루션과 연계하여 더 큰 데이터 파이프라인을 구축할 수 있다.

ELK 스택은 로그 데이터 수집 및 분석을 위한 강력한 도구이다. 그러나, 엘라스틱서치의 경우 저장 공간의 압축 비율이 낮고, 시스템 리소스를 많이 사용하는 점, 인덱스의 불변성 때문에 도큐먼트의 수정과 삭제에 있어서 비용이 발생하는 단점이 있다. 이러한 점을 고려하여 운영 환경에 맞는 최적화와 관리가 필요하다.

마치며

아무튼 나는 내 사이트에서 여러 데이터를 얻고 싶어 ELK를 구축하는데 어디서 뭔가 잘못되었는지 갑자기 전화 한 통이 왔다. 호스팅 업체에서 온 전화인데 너무 많은 요청이 들어와 서버에 과부하가 온다고 했다. 그래서 우선 서버는 내려둔 상태이다. 뭐가 문제인지는 다시 한번 알아보고 진행해야 할 거 같다. 예전에 CTF 운영할 때는 내가 전화하는 입장이었는데 이번에 전화가 오니까 뭔가 새로웠다.

 

사실 저도 잘 모르는 분야라서 이렇게 작성했지만 문제가 있거나 틀린 부분이 있다면 메일 혹은 댓글로 남겨주세요.

반응형