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인가?
- Grafana Loki는 기본적으로 오픈소스이며 무료입니다.
- 수집 로그 형식 요구 사항이 없으므로 로그 수집을 위해 코드(어플리케이션) 에 추가적인 조치는 필요하지 않습니다. 단지 생성된 로그만 수집할 뿐입니다.
- 인덱싱과 검색방식에서 가벼운 방식을 채택하고 있습니다. 서버 및 네트워크에 부하를 주지 않습니다.
- Grafana와 완벽히 호환됩니다. LogQL언어를 사용하여 로그를 탐색하고 시각화하고 알람을 보낼수 있습니다.
비교 항목 | Loki | Elasticsearch / Splunk |
로그 저장 방식 | 압축된 원본 로그 저장 | 개별 필드를 인덱싱 |
검색 방식 | 라벨 기반 검색 (LogQL) | 모든 로그 데이터 검색 |
인덱싱 부담 | ✅ 가벼움 (메타데이터만 인덱싱) | ❌ 무거움 (모든 텍스트 인덱싱) |
성능 | ✅ 빠름 (라벨 필터링) | 🔥 강력하지만 리소스 소모 큼 |
운영 비용 | ✅ 저렴 (스토리지 절약) | ❌ 고비용 (많은 리소스 필요) |
최적 사용 사례 | Kubernetes, Docker 로그 모니터링 | 정밀한 로그 분석, 검색 |
'Monitoring > Prometheus-Grafana' 카테고리의 다른 글
프로메테우스(Prometheus) 의 고 가용성 - Thanos (0) | 2025.04.19 |
---|---|
[Prometheus - Grafana] - 11 BlackBox-exporter URL모니터링 실습 (0) | 2025.04.19 |
[Prometheus - Grafana] - 10 cAdvisor-도커모니터링 실습 (0) | 2025.04.19 |
[Prometheus - Grafana] - 9 Postgresql-exporter 실습 (0) | 2025.04.19 |
[Prometheus - Grafana] - 8 jmx-exporter(tomcat) 실습 (0) | 2025.04.19 |
댓글