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