**ELK 스택(ELK Stack)**은 로그 수집, 저장, 분석, 시각화를 통합적으로 처리하기 위한 오픈소스 기반의 로그 관리 및 분석 플랫폼입니다.
“ELK”는 각각 다음 세 가지 핵심 구성요소의 약자입니다:
1. Elasticsearch
-
역할: 로그 및 데이터 저장, 검색, 분석 엔진
-
설명:
-
JSON 문서 형태로 데이터를 저장하는 분산형 검색 엔진
-
Apache Lucene 기반
-
Full-text 검색, Aggregation(집계), 실시간 분석 기능 제공
-
대용량 로그나 이벤트 데이터를 빠르게 조회 및 분석 가능
-
-
예:
GET /logs/_search { "query": { "match": { "level": "error" } } }
2. Logstash
-
역할: 로그 및 이벤트 수집, 변환, 전송 파이프라인
-
설명:
-
다양한 입력 소스(파일, DB, Beats 등)에서 데이터를 수집(Input)
-
필터(Filter) 를 통해 데이터 가공 및 변환(JSON 포맷, 필드 파싱 등)
-
출력(Output) 으로 Elasticsearch나 다른 저장소로 전송
-
-
예:
input { file { path => "/var/log/*.log" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } output { elasticsearch { hosts => ["localhost:9200"] } }
3. Kibana
-
역할: 시각화 및 대시보드 제공
-
설명:
-
Elasticsearch에 저장된 데이터를 검색(Query) 및 시각화(Charts, Graphs)
-
실시간 대시보드 생성 가능
-
필터링, 분석, 알람 연동 가능(Elastic Stack Alerting)
-
-
예:
-
“지난 24시간 동안의 에러 로그 발생 빈도 그래프”
-
“IP별 접속 횟수 Top 10” 대시보드 구성
-
(보충) Beats
-
원래 ELK 스택에는 포함되지 않았으나, Elastic Stack으로 확장되면서 포함됨.
-
경량 데이터 수집기로, 서버나 애플리케이션의 로그/메트릭을 Logstash나 Elasticsearch로 직접 전송함.
-
주요 모듈:
-
Filebeat: 로그 파일 수집
-
Metricbeat: 시스템 메트릭 수집
-
Packetbeat: 네트워크 패킷 분석
-
Heartbeat: 서비스 가용성 모니터링
-
ELK Stack 데이터 흐름 구조
[Application Logs]
↓
Beats/Filebeat
↓
Logstash (수집·정제)
↓
Elasticsearch (저장·검색)
↓
Kibana (시각화)
잘보고갑니다.~ㅎ