[Optimization-7] 모니터링 환경 구성

2025. 12. 28. 16:56·Database/Redis

1. Redis 모니터링 설정

1.1. Grafana를 통한 Redis 모니터링 환경 구축

[1] 그라파나 접속 후, 왼쪽 메뉴에서 "Plugins" 선택

 

[2] plugin 검색 창에 "redis" 검색 후 선택

 

[3] Redis 를 눌러 랜딩된 화면 우측 상단의 install 을 클릭 후, Add new data source 를 선택

 

[4] Address 부분에 `redis-server:6379` 라고 값을 채워주고, save & test 를 실행하면 다음과 같이 Data Source 추가

 

[5] 다시 플러그인 검색 결과화면으로 진입 후, 이번에는 Redis Application 을 선택

 

[6] 오른쪽 상단의 install 클릭 후, Enable 클릭

 

[7] 결과 확인

 

1.2. 한계점

 Grafana에서 제공하는 Redis 플러그인은 설치 과정이 매우 간단하며, Redis 서버의 현재 상태를 직관적인 대시보드 형태로 확인할 수 있다는 장점이 있다. 메모리 사용량, 연결 수, 명령 처리 현황 등 Redis의 주요 지표를 한눈에 파악할 수 있어 기본적인 모니터링 용도로는 충분히 유용한 도구이다.

 

 하지만 이 플러그인에는 실무 환경에서 치명적인 한계점이 존재한다. Grafana Redis 플러그인은 메트릭 데이터를 자체적으로 저장하지 않는 구조이다. 즉, 사용자가 확인할 수 있는 정보는 오직 조회 시점에 수집된 현재 상태의 데이터에 한정되는 것이다.

 

 이로 인해 시계열 데이터를 기반으로 한 비교 분석이 불가능하다. 예를 들어 어제와 비교했을 때 메모리 사용량이 얼마나 증가했는지, 혹은 지난 한 시간 동안 연결 수가 급격히 증가한 시점이 언제였는지와 같은 질문에 대한 답을 얻을 수 없다. 플러그인은 스트리밍 방식으로 실시간에 가까운 데이터 조회를 지원하지만, 이 또한 메모리 기반으로 처리되기 때문에 시간이 지나면 과거 데이터는 소멸되며 추적이 불가능해진다.

 

 결과적으로 Grafana Redis 플러그인은 단순히 현재 상태를 확인하는 용도로는 적합하지만, 이상 징후 탐지, 장기적인 트렌드 분석, 알림 조건 설정과 같은 운영 환경에서 필수적인 기능을 구현하기에는 한계가 명확한 도구이다. 이러한 한계를 보완하기 위해, 다음으로는 Redis 메트릭을 시계열 데이터로 수집·저장할 수 있는 Redis Exporter에 대해 살펴보자.


2. Redis Exporter를 활용한 고도화된 모니터링

 앞선 플러그인의 한계를 보완하기 위해 실무에서는 Redis Exporter를 활용한 시계열 모니터링 환경을 구축한다. 이 방식은 Prometheus를 매개체로 하여 데이터를 저장하므로 장기적인 분석이 가능하다.

2.1. 모니터링 아키텍처 구조

 

Redis Exporter는 Redis 서버에서 성능 지표를 수집하여 Prometheus가 이해할 수 있는 형식으로 변환하는 중간 수집기 역할을 수행한다. Prometheus는 이 Exporter로부터 주기적으로 메트릭을 Pull 방식으로 수집하여 자체 시계열 데이터베이스(TSDB)에 저장한다.

2.2. 대시보드 구성 방법

[1] 763 대시보드 import

[2] 결과 확인


3. 모니터링 도구별 전략적 선택 및 핵심 지표

 Redis 모니터링 환경을 구축한 후에는 각 도구의 특성에 맞춰 어떤 지표를 관측할지 결정해야 한다. Grafana Redis Plugin과 Redis Exporter는 상호 보완적인 관계에 있으며, 그 차이점은 다음과 같다.

3.1. 모니터링 시스템 특성 비교

항목 Redis Exporter (Prometheus 연동) Grafana Redis Plugin
주요 목적 서버 운영 상태 및 리소스 사용량 모니터링 저장된 데이터 자체의 조회 및 내용 분석
수집 대상 memory_used, hits, latency 등 시스템 메트릭 Key, Value, TTL, JSON 등 데이터 정보
수집 방식 Prometheus의 Scrape (Pull 기반) Grafana가 Redis에 직접 명령어 실행 (Live)
장점 장기적인 서버 상태 추적 및 알림 가능 실시간 데이터 내용 분석 및 디버깅 용이
단점 저장된 데이터의 구체적 내용은 알 수 없음 실시간 쿼리로 인한 부하 발생 가능성

3.2. 상황별 최적의 도구 활용 전략

모니터링의 목적에 따라 두 도구를 다음과 같이 구분하여 활용하는 것이 실무적으로 가장 효율적이다.

3.2.1. Grafana Redis Plugin: 실시간 이슈 분석 및 디버깅

  • 활용 시점: 특정 키의 데이터가 올바르게 들어있는지 확인하거나, TTL 설정이 의도대로 동작하는지 실시간으로 점검해야 할 때 사용한다.
  • 주의 사항: 실시간으로 명령어를 실행하여 데이터를 가져오는 방식이므로, 운영 환경에서는 성능 부하를 방지하기 위해 가급적 복제본(Replica) 서버에 연결하여 사용하는 것을 권장한다.

3.2.2. Redis Exporter: 정기 모니터링 및 장애 알림

  • 활용 시점: 전체적인 서비스의 안정성을 관리할 때 필수적이다. 메모리 사용량의 급증이나 캐시 히트율 하락 등의 트렌드를 장기적으로 관측한다.
  • 핵심 기능: Prometheus에 축적된 시계열 데이터를 바탕으로 임계치(Threshold)를 설정하여, 장애 발생 시 슬랙(Slack)이나 이메일로 자동 알림(Alerting)을 보내는 용도로 활용한다.

3.3. 핵심 관측 지표 (Key Metrics)

대시보드를 통해 반드시 주시해야 할 핵심 지표는 다음과 같다.

  1. Memory Usage: 현재 할당된 메모리가 맥스 메모리(maxmemory) 설정값에 근접했는지 확인한다.
  2. Cache Hit Ratio: 캐시가 효율적으로 사용되고 있는지 판단하는 척도이다. 비율이 지나치게 낮다면 캐시 키 설계나 TTL 설정을 재검토해야 한다.
  3. Connected Clients: 서버에 연결된 애플리케이션 인스턴스의 연결 수가 적절한지 모니터링한다.
  4. Uptime & Operations: 서버의 가동 시간과 초당 처리되는 명령어 수(Ops/sec)를 통해 전반적인 부하 정도를 파악한다.
 

'Database > Redis' 카테고리의 다른 글

[Optimization-9] 발생 가능 문제(2) - Cache Avalanche  (0) 2025.12.28
[Optimization-8] 발생 가능 문제(1) - Cache Penetration  (0) 2025.12.28
[Optimization-6] Remote 캐싱의 이해와 실무 기초  (0) 2025.12.28
[Optimization-5] Remote 캐싱의 필요성  (0) 2025.12.28
[Optimization-4] 로컬 캐싱(Local Caching)의 이해와 전략  (0) 2025.12.28
'Database/Redis' 카테고리의 다른 글
  • [Optimization-9] 발생 가능 문제(2) - Cache Avalanche
  • [Optimization-8] 발생 가능 문제(1) - Cache Penetration
  • [Optimization-6] Remote 캐싱의 이해와 실무 기초
  • [Optimization-5] Remote 캐싱의 필요성
h6bro
h6bro
백엔드 개발자의 기술 블로그
  • h6bro
    Jun's Tech Blog
    h6bro
  • 전체
    오늘
    어제
    • 분류 전체보기 (250) N
      • Java (18)
        • Core (9)
        • Design Pattern (9)
      • Spring (80)
        • Core (24)
        • MVC (6)
        • DB (10)
        • JPA (26)
        • Monitoring (3)
        • Security (11)
        • WebSocket (0)
      • Database (33)
        • Redis (15)
        • MySQL (18)
      • MSA (25) N
        • MSA 기본 (11)
        • MSA 아키텍처 (14) N
      • Kafka (30)
        • Core (18)
        • Connect (12)
      • ElasticSearch (11)
        • Search (11)
        • Logging (0)
      • Test (4)
        • k6 (4)
      • Docker (9)
      • CI&CD (10)
        • GitHub Actions (6)
        • ArgoCD (4)
      • Kubernetes (18)
        • Core (12)
        • Ops (6)
      • Cloud Engineering (4)
        • AWS Infrastructure (3)
        • AWS EKS (1)
        • Terraform (0)
      • Project (8)
        • LinkFolio (1)
        • Secondhand Market (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Cloud Engineering 포스팅 정리
  • 인기 글

  • 태그

    ㅈ
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
h6bro
[Optimization-7] 모니터링 환경 구성
상단으로

티스토리툴바