본문 바로가기
모니터링 환경 구축하기

오픈소스로 모니터링 환경 구축하기(4) - Loki & Tempo

by fiat_lux 2025. 10. 11.

Loki 란?

Loki는 Grafana Labs에서 개발한 로그 수집, 저장 시스템으로 Prometheus와 유사한 방식으로 작동하는 로그 수집 솔루션이다.

 

Prometheus가 메트릭을 담당한다면
Loki는 로그를 담당한다

 

 

특징

특징 설명
라벨 기반 로그를 라벨로 구분하여 효율적으로 관리
빠른 검색 로그 전체가 아니라 메타데이터만 인덱싱하고 실제 로그는 압축 저장하여 빠른 검색 가능
실시간 시각화 Grafana와 연동해 로그를 실시간으로 검색, 필터링, 시각화 가능

 

 

 

Loki의 기본 구조

Logback -> Loki -> Grafana

 

  1. 애플리케이션(Logback)이 로그를 남김
  2. Loki는 이를 수집하고 저장
  3. Grafana에서 실시간 조회/검색

 


Tempo란?

Tempo는 Grafana Labs에서 만든 분산 트레이싱 백엔드 이다.

서비스 간 요청 흐름을 저장하고 Grafana에서 시각화할 수 있도록 지원한다.

 

Loki가 로그를 Prometheus가 메트릭을 담당한다면 Tempo는 트레이스를 담당한다.

 

 

개념

개념 설명 예시
Trace 하나의 요청이 시스템 전체를 타고 흐른 경로 사용자가 상품 주문 API 호출시, 주문 -> 결제 -> 재고 서비스까지의 전체 흐름
Span 요청 처리 과정의 한 구간 주문 서비스 처리 시간
Trace ID / Span ID 요청 흐름을 추적할 수 있는 고유 식별자 trace_id=abc123
Sampling 모든 요청을 저장하는 대신 일부만 선택 저장 트래픽이 많은 환경에서 스토리지 절감 목적

 

 

 

 

동작 흐름

 

OTel Java Agent -> OpenTelemetry Collector -> Tempo -> Grafana

 

  1. OpenTelemetry Java Agent가 Trace 데이터 생성
  2. Collector 가 Trace 데이터를 Tempo로 전송
  3. Tempo는 Trace ID 기준으로 저장
  4. Grafana에서 요청의 흐름을 시각화하여 병목 지점을 분석

로그와 달리 Trace는 요청 단위로 전체 경로를 파악할 수 있어서 장애 분석과 성능 최적화에 유용하다.