Skip to main content

ELK 스택

작성일: 2025.01.20

💡 대규모 로그 및 데이터를 실시간으로 수집, 분석, 검색, 시각화하는 데 사용되는 강력한 오픈소스 스택인 ELK에 대해 정리합니다.

1. ELK란?

검색 엔진 분야에서 높은 점유율을 차지하고 있으며 일반적인 RDBMS보다 빠른 검색이 특징인 데이터 분석 플랫폼입니다.

info

ELK의 구성 요소

  • Elasticsearch: JSON 기반의 분산형 검색 및 분석 엔진
  • Logstash: 데이터 수집, 변환, 전송 파이프라인
  • Kibana: 데이터 시각화 및 대시보드 관리

2. ELK의 장점

Elasticsearch

  • 강력한 검색 및 분석 기능 제공
  • 대량의 데이터를 실시간으로 처리 가능
  • 정형 및 비정형 데이터 모두 JSON 기반 쿼리로 쉽게 조회 가능

Logstash

  • Filebeat, Kafka, API 등 다양한 로그 소스에서 데이터 수집 및 가공
  • 필터링, 변환, 정제를 통해 필요한 데이터만 저장하도록 구성 가능
  • 실시간 데이터 흐름을 구성하여 빠른 모니터링 및 대응 지원

Kibana

  • 대시보드 형태로 데이터를 직관적으로 시각화
  • 서버 로그, 애플리케이션 이벤트, 성능 지표 등 실시간 모니터링
  • 다양한 차트와 그래프 지원

3. 특징

3-1. RESTful API 기반

Elasticsearch는 RESTful API를 기반으로 동작합니다. 따라서 별도의 클라이언트 없이 HTTP 요청만으로 데이터의 저장, 검색, 분석, 관리가 가능합니다.

기능HTTP 메서드엔드포인트 예제설명
데이터 삽입POST/index_name/_doc/1특정 인덱스에 문서 저장
데이터 조회GET/index_name/_doc/1특정 ID의 문서 조회
데이터 검색POST/index_name/_search검색 쿼리 실행
데이터 수정POST/index_name/_update/1특정 ID의 문서 수정
데이터 삭제DELETE/index_name/_doc/1특정 ID의 문서 삭제

3-2. 역색인 (Inverted Index)

역색인은 검색 엔진에서 빠르고 효율적인 검색을 가능하게 하는 핵심 기술입니다. 일반적인 색인(Index)과 반대되는 개념으로, 단어를 기준으로 해당 단어가 포함된 문서를 연결하는 방식입니다.

예제 데이터

다음과 같은 3개의 문서가 있다고 가정해 봅시다.

문서 ID내용
1고양이가 뛰어다닌다
2강아지가 뛰어다닌다
3고양이와 강아지가 같이 논다

일반적인 색인 (Forward Index)

각 문서가 어떤 단어를 포함하고 있는지 기록합니다.

문서 ID포함된 단어
1고양이, 뛰어다닌다
2강아지, 뛰어다닌다
3고양이, 강아지, 논다

역색인 (Inverted Index)

각 단어가 어느 문서에 포함되어 있는지 기록합니다. 검색 시 이 테이블을 참조하여 속도를 높입니다.

단어포함된 문서 ID
고양이1, 3
강아지2, 3
뛰어다닌다1, 2
논다3

검색 동작 원리

검색 예제

검색어: "고양이"

  • 역색인 테이블 조회 -> 문서 1, 문서 3 즉시 반환

검색어: "고양이 AND 강아지"

  • "고양이"가 포함된 문서 -> 1, 3
  • "강아지"가 포함된 문서 -> 2, 3
  • 교집합(AND) 연산 -> 문서 3 반환

이처럼 역색인 구조는 전체 데이터를 스캔하지 않고도 키워드를 통해 문서를 빠르게 찾아낼 수 있어 검색 속도를 획기적으로 최적화합니다.