[Elastic Stack] ELK Stack 기반 로그 모니터링 시스템

2026. 3. 10. 01:31·ELK

AND 프로젝트를 하면서 실시간으로 계속 탐지를 하다보니까 로그가 쉴새없이 쌓였다. 그러다보니 FCM 오류를 확인하는데까지 찾기도 어렵고 시간도 오래걸려서 로그 모니터링을 해보고 싶었는데 그 중 ELK 스택을 선택해서 강의를 다 들었다. 

ELK로 선택한 이유는 채용 공고에서 종종 보이던 기술이기도 했고 실제로 많이 쓰이는 만큼 한 번 제대로 써보고 싶었다. 그리고 이전 프로젝트에서 Elasticsearch를 적용해보고 싶었는데 못 해봤던 게 계속 아쉬워서 이번 기회에 같이 공부해보기로 했다.

 

 

로그 모니터링 시스템을 구축하기 위해 대표적으로 사용하는 도구는 다음과 같다.

  • Elasticsearch
  • Logstash
  • Kibana
  • Filebeat

이 네 가지를 합쳐 ELK Stack이라고 부른다.

 

로그 모니터링 시스템이란

로그 모니터링 시스템은
서버나 애플리케이션에서 발생하는 로그를 실시간으로 수집하고, 저장하고, 분석하며, 시각화할 수 있는 시스템이다.

운영 환경에서는 다양한 서버에서 로그가 지속적으로 발생하기 때문에 이를 한 곳에서 확인하고 분석하는 것이 중요하다.

 

로그 모니터링 시스템은 다음과 같은 흐름으로 동작한다.

1. 로그 데이터 수집

Filebeat가 다양한 환경에서 생성되는 로그 파일을 읽고 수집한다. 수집된 로그는 Logstash 또는 Elasticsearch로 전달된다.

2. 로그 데이터 가공

Logstash가 로그 데이터를 가공한다. 형태가 다른 로그들을 일관된 구조로 변환하는 단계이다.

3. 데이터 저장 및 시각화

가공된 데이터는 Elasticsearch에 저장되고 Kibana를 통해 검색 및 시각화가 가능하다.

 

1. Elasticsearch

Elasticsearch는 데이터를 저장하고 검색 및 분석을 수행하는 분산형 검색 엔진이다.

데이터 저장 구조

  • 데이터는 JSON 형태로 저장된다.
  • 하나의 데이터는 Document 단위이다.
  • Document는 여러 개의 Field (key-value) 로 구성된다.
  • Document들은 Index라는 논리적인 단위에 저장된다.

즉,

  • Field → Document → Index 구조로 구성된다.

데이터 검색 및 분석

검색

  • REST API 기반으로 다양한 쿼리 수행 가능
  • 조건 검색, 필터링, 정렬 등 지원

분석

  • Aggregation 기능을 통해 데이터 분석 가능
    • count, sum, avg 등
  • Kibana와 함께 사용하여 시각화 가능

분산 구조

Elasticsearch는 클러스터 구조를 가지며 노드를 추가하면 데이터를 분산 처리할 수 있다.

  • Primary Shard
    • 실제 데이터를 저장하는 기본 단위
  • Replica Shard
    • Primary Shard의 복사본
    • 장애 발생 시 데이터 복구 가능
    • 검색 성능 향상

→ 이를 통해 확장성과 고가용성을 제공한다.

Near Real-Time 검색

Elasticsearch는 데이터를 색인한 직후 바로 검색되는 것이 아니라 짧은 시간 내(기본 약 1초) 검색 가능한 상태가 되는 Near Real-Time 구조를 가진다.

→ 따라서 로그가 들어와도 Kibana에서 바로 보이지 않을 수 있다.

 

2. Logstash

Logstash는 로그 데이터를 수집, 가공, 전달하는 역할을 수행한다.

구조는 다음과 같은 파이프라인으로 이루어진다.

input → filter → output

Input

로그 데이터를 수집하는 단계이다.

대표 플러그인:

  • file: 로컬 파일 읽기
  • http: HTTP 요청으로 데이터 수신
  • beats: Filebeat 등에서 전송된 로그 수신

Filter

데이터를 가공하는 단계이다.

주요 플러그인:

  • grok
    → 정규 표현식 기반으로 로그를 구조화하는 필터
  • mutate
    → 필드 추가, 수정, 삭제
  • drop
    → 특정 조건에 맞는 로그 제거

Output

가공된 데이터를 외부로 전송하는 단계이다.

대표 대상:

  • Elasticsearch
  • 파일

 

3. Filebeat

Filebeat는 로그 수집 도구로 지정된 경로나 파일을 지속적으로 감시하다가 로그가 생성되면 전송한다.

파이프라인은 다음과 같다.

파일 → Harvester → Filebeat 내부 → Output → (Logstash / Elasticsearch)

특징

  • 가볍고 빠른 로그 수집기
  • 실시간 로그 감지 및 전송

Input

  • container: 컨테이너 로그 수집 (쿠버네티스 환경)
  • log: 특정 파일 경로의 로그 수집

Harvester

  • 실제 파일을 읽는 역할

→ 하나의 로그 파일마다 하나의 Harvester가 붙는다.

Output

  • Logstash
  • Elasticsearch

 

4. Kibana

Kibana는 Elasticsearch에 저장된 데이터를 웹 UI로 시각화하는 도구이다.

Discover

  • 로그 데이터를 검색하고 필터링하는 기능
  • Document 단위로 확인 가능
  • 필드 구조 확인 가능

Dashboard

여러 시각화 패널을 조합하여 데이터를 분석할 수 있다.

대표 패널:

  • Time Series Visual Builder (TSVB)
    → 시간 흐름에 따른 데이터 변화 분석
  • Pie Chart
    → 데이터 비율 확인
  • Metric
    → 집계 결과를 숫자로 표현

 

'ELK' 카테고리의 다른 글

[Elasticsearch] Elasticsearch 인덱스 및 도큐먼트 CRUD  (0) 2026.03.17
[Elasticsearch] ElasticSearch, Kibana 설치하기  (4) 2026.03.14
'ELK' 카테고리의 다른 글
  • [Elasticsearch] Elasticsearch 인덱스 및 도큐먼트 CRUD
  • [Elasticsearch] ElasticSearch, Kibana 설치하기
지-토리
지-토리
  • 지-토리
    지토리의 개발이야기
    지-토리
  • 전체
    오늘
    어제
    • 분류 전체보기 (46)
      • [AND] 사용자 정의 지표 기반 실시감 감지 및.. (13)
        • 기획 (4)
        • 기술 (8)
      • [Linkompany] 뉴스와 공시를 통합 기업 .. (4)
      • [Candly] 차트 공부 및 예측 웹 프로젝트 (2)
      • JAVA (4)
        • 코딩테스트 (1)
      • 대규모 시스템 설계 (1)
      • Infra (12)
      • ELK (3)
      • AI (2)
      • FrontEnd (1)
      • TIP (2)
      • 자격증 (1)
  • 블로그 메뉴

    • 홈
    • Github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SpringSecurity
    부트캠프
    프디아
    Firebase
    프로디지털아카데미
    인프런
    K디지털트레이닝
    프로젝트
    EC2
    K8S
    And
    신투
    알파코
    쿠버네티스
    알파코캠퍼스
    신한투자증권
    인증/인가
    kpt
    Issue
    kdt교육
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
지-토리
[Elastic Stack] ELK Stack 기반 로그 모니터링 시스템
상단으로

티스토리툴바