본문 바로가기
Monitoring/Prometheus-Grafana

로그(Log)모니터링 - Grafana Loki 란?

by 돌문어우엉 2025. 4. 19.

Grafana Loki란

 

 

 

Grafana Loki는 로그 데이터를 수집, 저장 및 쿼리할 수 있는 오픈소스 로그 집계 시스템입니다. Grafana Labs에서 개발했으며, Prometheus의 원칙을 따르는 로그 시스템으로 설계되었습니다. Loki는 지표(metric) 중심의 Prometheus와 함께 사용되도록 설계되었으며, 주요 특징은 다음과 같습니다.

인덱싱 최소화

  • Elasticsearch와 같은 기존 로그 관리 시스템은 로그를 색인(index)하여 빠르게 검색할 수 있도록 합니다.
  • Loki는 색인 정보를 최소화하고, 대신 로그를 Label(레이블) 기반으로 분류하여 저장합니다.
  • 로그 데이터 자체를 색인하지 않기 때문에 저장 비용이 적고, 성능이 우수합니다.

Prometheus와 유사한 구조

  • Prometheus가 시계열 데이터(time-series data)를 수집하는 방식과 유사한 방식으로 Loki는 로그 데이터를 수집합니다.
  • Prometheus의 Label 시스템을 활용하여 로그를 관리할 수 있습니다.

Grafana와 통합

  • Loki는 Grafana와 기본적으로 호환되며, Grafana를 통해 손쉽게 로그를 시각화하고 쿼리할 수 있음.
  • Prometheus 메트릭과 Loki 로그를 하나의 대시보드에서 함께 조회 가능.

JSON, syslog, Docker, Kubernetes 지원

  • 다양한 로그 소스를 지원하며, 특히 Kubernetes 환경에서 Pod 로그 수집에 최적화됨.
  • Promtail, Fluentd, Fluent Bit 등과 함께 사용하여 로그를 수집할 수 있음.

 

Grafana Loki의 작동방식

Loki의 4단계 작동 방식

1️⃣ 로그 수집 (Pull logs with Promtail)

  • Promtail이 애플리케이션 로그 파일을 읽고 Loki로 전송.
  • 어플리케이션과 직접 소통X, 로그 파일만 조회
  • 로그에 라벨(Label)을 추가하고, 필터링 및 변환 가능.

2️⃣ 로그 저장 (Store logs in Loki)

  • Loki는 로그 본문을 인덱싱하지 않고, 라벨 기반으로 저장.
  • 압축하여 저장하므로 비용 절감, 빠른 조회 가능.

3️⃣ 로그 검색 (Use LogQL to explore)

  • Grafana에서 LogQL을 사용하여 로그 필터링 및 분석.
  • 라벨 기반 검색 + 텍스트 검색 가능.

4️⃣ 로그 알림 (Alert on logs)

  • 특정 패턴(예: HTTP 500 에러 증가)을 감지하면 Alertmanager로 알림 전송.
  • Slack, Email, PagerDuty 등으로 알림 받을 수 있음. 🚀

왜 우리는 Loki인가?

  1. Grafana Loki는 기본적으로 오픈소스이며 무료입니다.
  2. 수집 로그 형식 요구 사항이 없으므로 로그 수집을 위해 코드(어플리케이션) 에 추가적인 조치는 필요하지 않습니다. 단지 생성된 로그만 수집할 뿐입니다.
  3. 인덱싱과 검색방식에서 가벼운 방식을 채택하고 있습니다. 서버 및 네트워크에 부하를 주지 않습니다.
  4. Grafana와 완벽히 호환됩니다. LogQL언어를 사용하여 로그를 탐색하고 시각화하고 알람을 보낼수 있습니다.
비교 항목 Loki Elasticsearch / Splunk
로그 저장 방식 압축된 원본 로그 저장 개별 필드를 인덱싱
검색 방식 라벨 기반 검색 (LogQL) 모든 로그 데이터 검색
인덱싱 부담 ✅ 가벼움 (메타데이터만 인덱싱) ❌ 무거움 (모든 텍스트 인덱싱)
성능 ✅ 빠름 (라벨 필터링) 🔥 강력하지만 리소스 소모 큼
운영 비용 ✅ 저렴 (스토리지 절약) ❌ 고비용 (많은 리소스 필요)
최적 사용 사례 Kubernetes, Docker 로그 모니터링 정밀한 로그 분석, 검색

 

 

댓글