**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 (시각화)

주요 활용 사례

구분 설명 서버 로그 분석 Nginx, Apache, Spring Boot 로그 분석 및 모니터링 보안 모니터링(SIEM) 공격 탐지, 침입 시도 분석 운영 모니터링(APM 연계) Elastic APM과 연계하여 애플리케이션 성능 분석 비즈니스 데이터 분석 API 호출 추이, 사용자 행동 로그 시각화

정리

구성요소 역할 비고 Elasticsearch 데이터 저장 및 검색 Lucene 기반 Logstash 데이터 수집 및 변환 다양한 플러그인 지원 Kibana 데이터 시각화 Dashboard/UI Beats 경량 로그 수집 Agent 역할