반응형
Redis Cluster 모니터링를 구축하는 방법
우분투 24.04 기준으로 Redis Cluster + Exporter + Prometheus + Grafana + Node Exporter를 포함한 모니터링 구성을 합니다.
1. 구성도
- Redis Cluster (cache-232, 233, 234)
- 각 서버에 Redis 2개 인스턴스 (6381, 6382)
- Redis Exporter (각 인스턴스별 1개씩 → 총 6개 컨테이너)
- Node Exporter (각 서버별 1개 → 총 3개 컨테이너)
- Prometheus + Grafana (cache-234 전용)
2. Redis Exporter 설치(cache-232, cache-233, cache-234)
sudo mkdir -p /docker-container/redis-monitoring
cd /docker-container/redis-monitoring
docker-compose.redis-exporter.yml 각 서버 동일하게 생성
cat <<EOF | sudo tee redis-exporter.yml > /dev/null
services:
redis-exporter-6381:
image: oliver006/redis_exporter:latest
container_name: redis-exporter-6381
restart: unless-stopped
environment:
- REDIS_ADDR=redis://127.0.0.1:6381
# - REDIS_PASSWORD=yourpassword # Redis에 인증 설정 시 추가
command:
- '--web.listen-address=:9121'
network_mode: host
redis-exporter-6382:
image: oliver006/redis_exporter:latest
container_name: redis-exporter-6382
restart: unless-stopped
environment:
- REDIS_ADDR=redis://127.0.0.1:6382
# - REDIS_PASSWORD=yourpassword # Redis에 인증 설정 시 추가
command:
- '--web.listen-address=:9122'
network_mode: host
EOF
docker-compose -f redis-exporter.yml up -d
3. Node Exporter 설치(cache-232, cache-233, cache-234)
cat <<EOF | sudo tee node-exporter.yml > /dev/null
services:
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: unless-stopped
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
- '--collector.filesystem.ignored-fs-types=^(tmpfs|overlay|aufs|nsfs|squashfs|rpc_pipefs|cgroup2?)$$'
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
ports:
- "9100:9100"
network_mode: host
EOF
docker-compose -f node-exporter.yml up -d
4. Prometheus + Grafana 설치 (cache-234 전용)
vim docker-compose.yml
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.enable-lifecycle'
- '--storage.tsdb.retention.time=200h'
ports:
- "9090:9090"
networks:
- monitoring-net
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
environment:
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin123}
- GF_USERS_ALLOW_SIGN_UP=false
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
depends_on:
- prometheus
ports:
- "3000:3000"
networks:
- monitoring-net
volumes:
prometheus_data:
grafana_data:
networks:
monitoring-net:
driver: bridge
Prometheus 설정 파일 (cache-234)
vim prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
# Redis Cluster Exporters
- job_name: 'redis-instances'
static_configs:
- targets:
- '192.168.0.232:9121' # redis-exporter-232-6381
- '192.168.0.232:9122' # redis-exporter-232-6382
- '192.168.0.233:9121' # redis-exporter-233-6381
- '192.168.0.233:9122' # redis-exporter-233-6382
- '192.168.0.234:9121' # redis-exporter-234-6381
- '192.168.0.234:9122' # redis-exporter-234-6382
# Node Exporters
- job_name: 'system-metrics'
static_configs:
- targets:
- '192.168.0.232:9100'
- '192.168.0.233:9100'
- '192.168.0.234:9100'
docker-compose up -d
5. Grafana 대시보드
Grafana 접속 (ID: admin / PW: admin123)
http://192.168.0.234:3000
Prometheus를 데이터소스로 등록 (http://prometheus:9090)
Grafana.com에서 아래 대시보드 가져오기
- Redis Exporter Dashboard: 763 (Redis Exporter Dashboard by oliver006)
- Node Exporter Dashboard: 1860 (Node Exporter Full)
Redis Cluster 각 노드/인스턴스 상태, 레플리카 동기화, 메모리 사용량, CPU/디스크/네트워크까지 한 화면에서 모니터링 가능합니다.
728x90
반응형
'리눅스' 카테고리의 다른 글
우분투 24.04에서 Redis Cluster를 구성하는 방법 (0) | 2025.08.27 |
---|---|
Kubernetes Cluster 구축하는 방법 (0) | 2025.08.25 |
VMware ESXi의 평가판 라이선스를 갱신하는 방법 (0) | 2025.08.25 |
우분투 24.04에서 PAM 기반 비밀번호 유효성 제한 및 계정 정책 설정 (0) | 2025.08.19 |
CentOS 7에서 pam_faillock 모듈을 사용해서 계정 잠금 정책을 설정하는 방법 (1) | 2025.08.18 |