Search

[Monitoring]1.5 도커를 활용하여 Redis Exporter 모니터링 환경 구축

Publish Date
2024/12/14
Tags
Status
Done
1 more property
Redis Exporter 설정하기
Redis Exporter를 활용하여 Redis 서버의 메트릭을 수집하고 Prometheus와 Grafana를 통해 모니터링 환경을 구축한다.

배경 및 목표

Redis Exporter를 활용하여 Redis 서버의 상태와 성능을 실시간으로 모니터링하고, Prometheus와 Grafana를 통해 메트릭 수집과 시각화를 구현하여 Redis 활용의 병목현상과 리소스 사용 패턴을 분석한다.
구성 요소
설명
Redis Server
고속의 키-값 데이터 저장소로, 주로 캐싱, 메시지 큐 및 실시간 데이터 처리에 사용
Redis Exporter
Prometheus에서 사용할 수 있는 형식으로 Redis 서버의 메트릭(메모리 사용량, 키 상태, 요청 속도 등)을 수집
Prometheus
Redis Exporter로부터 메트릭 데이터를 수집하고, 저장하며, 사용자 정의 쿼리로 데이터를 분석할 수 있도록 지원
Grafana
Prometheus에서 수집한 데이터를 기반으로 시각적인 대시보드를 생성하여 Redis 서버의 성능 및 상태를 모니터링

Redis Exporter 모니터링 설정

개발환경

항목
설정
Redis
redis:7.2-alpine
Monitoring
Prometheus, Grafana
Exporter
Redis Exporter (Prometheus)
Dash Board
Redis 대시보드 템플릿 (ID: 763)

구조

coupon-project/ ├── docker-compose.yml # RedisRedis Exporter 설정 파일 └── monitoring/ ├── docker-compose.yml # PrometheusGrafana 설정 파일 └── prometheus/ └── config/ └── prometheus.yml # Prometheus 설정 파일 (Redis Exporter 모니터링 대상 포함)
Java
복사
파일명
내용
coupon-project/docker-compose.yml
Redis 서버와 Redis Exporter를 설정
monitoring/docker-compose.yml
Prometheus와 Grafana를 설정 , 컨테이너 환경과 포트 매핑을 정의
prometheus.yml
Prometheus 설정, Redis Exporter 및 모니터링 대상 서버의 스크레이프 설정

구현

0. 환경 사전 준비

Redis 서버와 Prometheus 및 Grafana 설치 되어 있어야 한다.

1. Redis Exporter 컨테이너 설정

docker-compose.yml 파일에 Redis Exporter 서비스를 추가하여 Redis와 Redis Exporter의 컨테이너 실행 환경을 정의한다. Redis Exporter에서 Redis 서버의 메트릭을 수집할 수 있도록 설정한다.
docker-compose.yml
services: coupon-redis: image: redis:7.2-alpine container_name: coupon-redis networks: - coupon-network ports: - 6379:6379 command: redis-server --port 6379 healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 10s timeout: 5s retries: 3 start_period: 120s redis-exporter: image: oliver006/redis_exporter:latest container_name: redis-exporter networks: - coupon-network ports: - 9121:9121 environment: - REDIS_ADDR=redis://coupon-redis:6379 depends_on: - coupon-redis
YAML
복사
환경 변수
설명
REDIS_ADDR
Redis 서버의 주소(redis://)
depends_on
Redis Exporter가 Redis 컨테이너에 의존
Redis Exporter 컨테이너 로그 및 상태 확인:
docker logs redis-exporter docker inspect redis-exporter | grep REDIS_ADDR
Shell
복사

2. Prometheus 설정

Prometheus가 Redis Exporter에서 메트릭을 수집하도록 설정한다. scrape_configs 섹션에 Redis Exporter의 주소 및 포트를 지정한다.
prometheus.yml
scrape_configs: - job_name: 'redis-exporter' static_configs: - targets: ['redis-exporter:9121']
YAML
복사
Prometheus 설정을 적용하기 위해 컨테이너를 재시작한다.
docker-compose.yml
docker-compose restart prometheus
SQL
복사
Exporter 메트릭 페이지 확인:
http://localhost:9121/metrics
SQL
복사
redis_up 1: Redis가 정상적으로 연결되었음을 나타냄
Prometheus targets 페이지 확인:
http://localhost:9090/targets
SQL
복사

3. Grafana 대시보드 설정

데이터 소스 추가

1.
Grafana 접속: http://<Grafana-Server-IP>:3000
2.
Data sources › Add data source > Prometheus 선택
3.
URL 지정
URL: http://<Prometheus-Server-IP>:9090 (Docker 네트워크 기준)
host.docker.internal:9090
prometheus:9090
host.docker.internal은 Docker 컨테이너에서 호스트 머신에 접근할 수 있도록 제공되는 특별한 DNS 이름이다. host.docker.internal을 사용하면, 컨테이너에서 호스트 머신의 IP 주소를 명시하지 않고도 접근할 수 있다.
로컬 환경에서 Docker 컨테이너와 호스트 간 통신을 위해 host.docker.internal이 필요할 수 있다.
그러나 Prometheus와 Grafana가 동일한 Docker 네트워크에서 실행 중이라면, http://prometheus:9090을 사용하는 것이 권장된다.
4.
Save & Test 클릭

대시보드 설정하기

1.
Dashboards > New > Import 클릭하기
2.
Grafana에서 대시보드 가져오기
대시보드 ID 입력: 763
Dashboard ID 763 입력
3.
데이터 소스 설정하기
위에서 설정한 데이터 소스를 지정한다.
4.
대시보드 확인
Redis Exporter Dashbaord 출력완료

결론

주요 메트릭

확인 과정

Redis Exporter 컨테이너 로그 및 상태 확인:
docker logs redis-exporter docker inspect redis-exporter | grep REDIS_ADDR
Shell
복사
Prometheus targets 페이지 확인:
http://localhost:9090/targets
SQL
복사

Q&A

Redis Exporter가 제공하는 주요 메트릭은?
Redis Exporter가 제대로 작동하지 않을 때 확인해야 할 사항은?
Redis 대시보드에서 유용한 지표는?
Redis Exporter와 Prometheus 연동의 장점은?
Redis Exporter 설정 시 주의점은?
Search
Main PageCategoryTagskkogggokkAbout MeContact