Grafana Mimir

지원 버전: Mimir 2.x 마지막 업데이트: 2026년 2월 20일

목차

소개

Grafana Mimir는 Grafana Labs에서 개발한 오픈소스, 수평 확장 가능한 장기 메트릭 저장소입니다. Prometheus 메트릭을 위한 엔터프라이즈급 저장소로, 멀티테넌시, 고가용성, 그리고 객체 스토리지를 활용한 무제한 확장성을 제공합니다.

주요 특징

특징
설명

수평 확장

수십억 개의 활성 시계열까지 확장 가능

멀티테넌시

네이티브 테넌트 격리 지원

고가용성

컴포넌트별 복제 및 자동 장애 복구

객체 스토리지

S3, GCS, Azure Blob 등 지원

100% PromQL 호환

모든 PromQL 쿼리 지원

장기 보존

무제한 데이터 보존 기간

Grafana 통합

Grafana와 네이티브 통합

Mimir vs Cortex vs Thanos

Mimir는 Cortex의 후속 프로젝트로, 더 나은 성능과 운영성을 제공합니다:

spinner
항목
Mimir
Cortex
Thanos

아키텍처

중앙 집중식

중앙 집중식

사이드카 기반

복잡성

중간

높음

중간

쿼리 성능

빠름

중간

중간

운영 오버헤드

낮음

높음

중간

Prometheus 수정

불필요

불필요

사이드카 필요

멀티테넌시

네이티브

네이티브

제한적

아키텍처

전체 아키텍처

spinner

데이터 흐름

  1. 쓰기 경로:

    • Prometheus가 remote_write로 메트릭 전송

    • Distributor가 테넌트 검증 및 샘플 분배

    • Ingester가 메모리에 저장 후 주기적으로 블록 업로드

  2. 읽기 경로:

    • Query-frontend가 쿼리 분할 및 캐싱

    • Querier가 Ingester(최근 데이터)와 Store-gateway(과거 데이터) 쿼리

    • 결과 병합 후 반환

  3. 백그라운드 프로세스:

    • Compactor가 작은 블록을 큰 블록으로 병합

    • 다운샘플링 및 보존 정책 적용

핵심 구성 요소

Distributor

쓰기 요청의 첫 번째 진입점으로, 테넌트 검증과 샘플 분배를 담당합니다.

역할:

  • 테넌트 ID 검증

  • 시계열 검증 (레이블, 샘플 값)

  • 해시 링 기반 Ingester 분배

  • 레플리케이션 팩터에 따른 복제

Ingester

시계열 데이터를 메모리에 저장하고 주기적으로 객체 스토리지에 업로드합니다.

역할:

  • 시계열 데이터 메모리 저장

  • WAL(Write-Ahead Log) 유지

  • TSDB 블록 생성 및 업로드

  • 최근 데이터 쿼리 처리

Store-gateway

객체 스토리지의 블록을 캐싱하고 쿼리합니다.

역할:

  • 객체 스토리지 블록 인덱스 캐싱

  • 과거 데이터 쿼리 처리

  • 블록 메타데이터 및 청크 캐싱

Compactor

블록 컴팩션과 다운샘플링을 수행합니다.

역할:

  • 작은 블록을 큰 블록으로 병합

  • 중복 데이터 제거

  • 보존 정책에 따른 데이터 삭제

  • 블록 인덱스 최적화

Querier

Ingester와 Store-gateway에서 데이터를 쿼리하고 병합합니다.

역할:

  • PromQL 쿼리 실행

  • Ingester/Store-gateway 병렬 쿼리

  • 결과 병합 및 중복 제거

Query-frontend

쿼리 최적화와 캐싱을 담당합니다.

역할:

  • 대규모 쿼리 분할

  • 결과 캐싱

  • 쿼리 대기열 관리

  • 재시도 처리

멀티테넌시

Mimir는 네이티브 멀티테넌시를 지원하여 여러 팀/조직의 메트릭을 격리합니다.

테넌트 설정

테넌트별 제한

테넌트 격리

spinner

Helm 설치

mimir-distributed 설치

values.yaml

S3 백엔드 구성

IRSA 설정

S3 버킷 구성

S3 버킷 수명 주기 정책

쿼리 및 데이터 보존

보존 정책 설정

쿼리 최적화 설정

쿼리 캐싱 전략

spinner

VictoriaMetrics와 비교

상세 비교

항목
Grafana Mimir
VictoriaMetrics

라이선스

AGPL v3

Apache 2.0

아키텍처

마이크로서비스

모놀리식/클러스터

스토리지

객체 스토리지 필수

로컬 디스크 가능

운영 복잡성

높음

낮음-중간

쿼리 언어

PromQL

MetricsQL (상위 호환)

멀티테넌시

네이티브

지원

압축률

좋음

매우 좋음

메모리 효율

중간

높음

커뮤니티

Grafana Labs

활발한 오픈소스

상용 지원

Grafana Cloud

VictoriaMetrics Inc.

선택 기준

spinner

Mimir 선택 시:

  • Grafana Cloud 또는 Grafana 에코시스템 사용

  • 엔터프라이즈급 멀티테넌시 필요

  • 객체 스토리지 활용 원함

  • 복잡한 운영 환경 관리 가능

VictoriaMetrics 선택 시:

  • 단순한 운영 환경 선호

  • 로컬 디스크 기반 저장 선호

  • 최대 압축률 및 성능 중요

  • 비용 효율성 우선

성능 튜닝

Ingester 튜닝

Store-gateway 튜닝

쿼리 튜닝

모범 사례

프로덕션 체크리스트

  1. 고가용성

    • Ingester: 최소 3개, zone-aware 복제

    • Store-gateway: 최소 2개

    • Distributor: 최소 2개

    • Query-frontend: 최소 2개

  2. 캐싱

    • 결과 캐시: memcached

    • 메타데이터 캐시: memcached

    • 청크 캐시: memcached

  3. 모니터링

  4. 알림 규칙

비용 최적화

문제 해결

일반적인 문제

1. Ingester OOM

2. 쿼리 타임아웃

3. Compactor 지연

디버깅 명령어

참고 자료

퀴즈

이 장에서 배운 내용을 테스트하려면 Grafana Mimir 퀴즈를 풀어보세요.

마지막 업데이트