07. Redis 모니터링방법

Redis 모니터링
- 본 문서는 Zabbix에서 Redis를 Agent 기반으로 모니터링하는 절차를 설명한다.
- 최신 권장 방식은 Zabbix agent 2와 내장 Redis plugin, 그리고 Redis by Zabbix agent 2 템플릿을 사용하는 방법이다.
- 이 방식은 별도 외부 스크립트 없이 Redis 상태와 성능 지표를 수집할 수 있다.
구성 개요

- Zabbix Server 또는 Proxy: 수집 데이터 저장, 트리거 평가, 알림 처리 담당.
- Redis 서버: 대상 인메모리 데이터 저장소.
- Zabbix Agent 2: Redis plugin을 통해 Redis 상태를 수집하는 컴포넌트.
- 통신 포트:
- Zabbix Server/Proxy -> Agent: 10050/tcp, Passive check.
- Agent -> Zabbix Server/Proxy: 10051/tcp, Active check.
- Agent -> Redis: 6379/tcp 또는 Unix socket.
권장 방식
- 공식 문서는 Redis 모니터링에 Zabbix agent 2의 Redis plugin 사용을 안내한다.
- Redis plugin은 Agent 2에 기본 포함되어 있으며, 별도 설치 단계가 필요하지 않다.
- 실무에서는 OS 템플릿과 Redis 템플릿을 동일 Host에 함께 연결하는 구성이 일반적이다.
사전 준비
- 대상 서버에는 Redis가 정상 실행 중이어야 한다.
- 대상 서버에는 zabbix-agent2가 설치되어 있어야 한다.
- Zabbix Web UI에서 Host가 생성되어 있어야 하며, Agent interface가 등록되어 있어야 한다.
- Redis 인증 비밀번호가 설정된 경우 Agent 2 세션 설정 또는 매크로 값을 함께 준비해야 한다.
Agent 2 설치
- Rocky Linux 계열 예시는 다음과 같다.
- 운영체제에 맞는 공식 저장소 패키지를 사용한다.
$> rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rhel/9/noarch/zabbix-release-latest.el9.noarch.rpm
$> dnf clean all
$> dnf install -y zabbix-agent2
$> systemctl enable --now zabbix-agent2
Redis 접속 설정
- 공식 Redis plugin은 TCP와 Unix socket 연결을 모두 지원한다.
- 가장 단순한 방법은 Web UI의 Host macro로 Redis URI를 지정하는 방식이다.
- 기본 TCP 접속 예시는 아래와 같다.
{$REDIS.CONN.URI}=tcp://127.0.0.1:6379
- Redis 인증이 필요한 경우 비밀번호 매크로를 함께 설정한다.
{$REDIS.PASSWORD}=StrongPassword
- Unix socket 방식 예시는 아래와 같다.
{$REDIS.CONN.URI}=unix:///var/run/redis/redis.sock
Agent 2 세션 설정
- Redis plugin은 Agent 2 설정 파일에서 세션을 정의하는 방식도 지원한다.
- 다중 Redis 인스턴스나 비밀번호 분리가 필요한 환경에서는 세션 정의 방식이 유용하다.
$> vi /etc/zabbix/zabbix_agent2.conf
ini
Server=<ZABBIX_SERVER_IP>
ServerActive=<ZABBIX_SERVER_IP>
Plugins.Redis.Sessions.Redis1.Uri=tcp://127.0.0.1:6379
Plugins.Redis.Sessions.Redis1.Password=StrongPassword
- 이 방식을 사용할 경우 Web UI의 {$REDIS.CONN.URI} 매크로에 세션 이름 Redis1을 넣는 구성이 사용된다.
Web UI 등록
- Zabbix Web UI에서 Redis 서버용 Host를 생성하거나 기존 Host를 연다.
- Templates에서 Redis by Zabbix agent 2를 연결한다.
- Macros 탭에서 Redis 접속 정보를 환경에 맞게 설정한다.
- 저장 후 Latest data에서 Redis 관련 항목이 수집되는지 확인한다.
매크로 예시
- {$REDIS.CONN.URI} = tcp://127.0.0.1:6379
- {$REDIS.PASSWORD} = StrongPassword
수집 항목 예시
- Redis availability
- Ping 응답
- Connected clients
- Used memory
- Maxmemory 정책 관련 상태
- Instantaneous operations per second
- Keyspace hit/miss 비율
- Replication role 및 replica 상태
- RDB/AOF 관련 상태값, 구성에 따라 다름
Passive / Active 선택
- OS Agent 통신은 Passive 또는 Active 중 하나 또는 둘 다 사용할 수 있다.
- Redis 메트릭 자체는 Agent 2가 Redis에 직접 접속해 가져오므로, 핵심은 Agent <-> Zabbix 경로와 Agent -> Redis 경로가 모두 정상이어야 한다.
- 대규모 환경에서는 Agent 쪽은 Active check 중심으로 운영하고, Redis 접속은 로컬 또는 Unix socket 기반으로 제한하는 구성이 안정적이다.
방화벽 및 접근 제어
- Zabbix Agent 포트는 기존 Agent 운영 정책과 동일하게 적용한다.
- Passive: 10050/tcp
- Active: 10051/tcp
- Redis는 기본적으로 6379/tcp를 사용한다.
- 가능하면 Agent와 Redis를 같은 서버에 두고 127.0.0.1 또는 Unix socket으로 접속하게 구성하는 편이 보안상 유리하다.
- Redis protected-mode, bind 설정, ACL 또는 requirepass 설정을 함께 검토해야 한다.
대용량 운영 추천값
- 대규모 Redis 환경에서는 Agent 2 + Active check + Proxy 조합이 확장성 측면에서 유리하다.
- Redis 인스턴스가 여러 개라면 세션 이름과 Host group 정책을 표준화하는 것이 중요하다.
- 추천 시작 기준은 아래와 같다.
| 항목 |
추천값 |
| Agent 방식 |
Zabbix agent 2 |
| 템플릿 |
Redis by Zabbix agent 2 |
| OS 수집 방식 |
Active 우선, Passive 보조 |
| Redis 접속 경로 |
가능하면 localhost 또는 Unix socket |
| 인증 방식 |
비밀번호 또는 ACL 적용 |
| 세션 구성 |
다중 인스턴스는 Plugins.Redis.Sessions.* 사용 |
| Host 그룹 |
Cache / Redis 계열로 분리 |
구방식 참고
- 과거에는 redis-cli, UserParameter, 외부 Python 스크립트 기반으로 모니터링하는 방식이 많이 사용되었다.
- 현재는 공식 Agent 2 Redis plugin과 기본 템플릿 사용이 훨씬 단순하고 유지보수도 쉽다.
- 기존 스크립트 기반 환경은 즉시 제거하기보다 Agent 2 기반 템플릿 방식으로 단계적으로 전환하는 것이 현실적이다.
점검 항목
- zabbix-agent2 서비스가 정상 실행 중인지 확인한다.
- Agent에서 Redis 6379 또는 Unix socket 접속이 가능한지 확인한다.
- Web ㅂUI 매크로 값 또는 세션 이름이 정확한지 확인한다.
- Latest data에서 Redis 관련 항목이 들어오는지 확인한다.
- 인증 실패, 잘못된 URI, protected-mode, Hostname 불일치는 가장 흔한 원인이므로 우선 점검한다.
운영 팁
- OS 템플릿과 Redis 템플릿을 같은 Host에 함께 연결하면 운영이 단순해진다.
- Redis가 Sentinel, Replica, Cluster 구조라면 역할별 Host group과 템플릿 적용 기준을 분리하는 것이 좋다.
- 비밀번호는 템플릿 하드코딩보다 Host macro 또는 Secret/Vault 연계 방식으로 관리하는 편이 안전하다.
- 먼저 기본 상태와 메모리 지표부터 수집한 뒤, 이후 replication, persistence, evicted key, latency 중심으로 확장하는 방식이 안정적이다.