
이번 포스팅에서는 Kubernetes 환경에서 Redis 메트릭을 Prometheus로 수집하는 방법을 정리한다.
Prometheus는 기본적으로 애플리케이션 내부 상태는 알 수 없기 때문에,
Redis 내부 정보를 가져오려면 Redis Exporter가 필요하다.
이번 실습에서는 다음을 구현한다:
먼저 Redis를 Kubernetes에 배포한다.
이번 실습에서는 monitoring 네임스페이스에 배포했다.
파일명: redis.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
namespace: monitoring
labels:
app: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- image: redis:7.0.4
name: redis
args:
- --maxmemory 80mb
ports:
- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: monitoring
labels:
app: redis
spec:
type: ClusterIP
ports:
- name: redis
port: 6379
targetPort: 6379
selector:
app: redis
배포 명령어
kubectl apply -f redis.yaml
Redis Exporter는 Redis 내부의 상태를 Prometheus 포맷으로 변환해준다.
핵심은 다음 2가지다:
파일명: redis-exporter.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-exporter
namespace: monitoring
labels:
app: redis-exporter
spec:
replicas: 1
selector:
matchLabels:
app: redis-exporter
template:
metadata:
labels:
app: redis-exporter
spec:
containers:
- image: oliver006/redis_exporter:v1.43.0
name: redis-exporter
ports:
- containerPort: 9121
args:
- "--redis.addr=redis.monitoring.svc.cluster.local:6379"
---
apiVersion: v1
kind: Service
metadata:
name: redis-exporter
namespace: monitoring
labels:
app: redis-exporter
spec:
type: ClusterIP
ports:
- port: 9121
targetPort: 9121
name: metrics
selector:
app: redis-exporter
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: redis-exporter
namespace: monitoring
labels:
release: kube-prom-stack
spec:
selector:
matchLabels:
app: redis-exporter
namespaceSelector:
matchNames:
- monitoring
endpoints:
- port: metrics
interval: 15s
배포 명령어
kubectl apply -f redis-exporter.yaml

이렇게 두 yaml 파일을 배포해준다.
Redis / Exporter 파드 확인
kubectl get pods -n monitoring | grep redis
정상이라면 다음과 같은 상태가 나온다:

Prometheus Target 확인
Prometheus UI → Status → Targets
redis-exporter target이 UP이면 정상이다.

이렇게 redis 관련된 것이 up인 상태인 것을 확인할 수 있다.
Prometheus Graph에서 다음과 같은 Redis 메트릭을 조회할 수 있다:
ex)
redis_memory_used_bytes
