exporter
Exporter
서버와 레디스 모니터링에 필요한 데이터를 수집하는 node_exporter와 redis_exporter에 대해서 설명합니다.
- Node Exporter는 리눅스 서버의 하드웨어 및 OS 관련 메트릭을 수집해 Prometheus 형식으로 노출하는 Exporter입니다.
- Redis Exporter는 Redis 인스턴스에서 메트릭을 수집하여 Prometheus 형식으로 노출하는 Exporter입니다. Redis 자체는 Prometheus와 직접 통신할 수 없기 때문에 중간다리 역할을 합니다.
- 데이터 흐름: Exporter ➡ Prometheus ➡ Grafana
Node Exporter
1. 📌 개요 📖
Node Exporter는 리눅스 서버의 하드웨어 및 OS 관련 메트릭을 수집해 Prometheus 형식으로 노출하는 Exporter입니다.
프로그래밍 언어: Go(Golang)
기본 포트: 9100
2. 📦 주요 수집 항목
- CPU: node_cpu_seconds_total
- Memory: node_memory_MemAvailable_bytes, node_memory_MemFree_bytes
- Disk: node_disk_read_bytes_total, node_disk_written_bytes_total
- File System: node_filesystem_avail_bytes, node_filesystem_size_bytes
- Network: node_network_receive_bytes_total, node_network_transmit_bytes_total
- Load Average: node_load1(1분), node_load5(5분), node_load15(15분)
- Uptime: node_time_seconds, node_boot_time_seconds
3. ⚙️ 다운로드(설치), 실행
📥 다운로드(설치) - Node Exporter Release 확인
- $ cd /app
- $ mkdir exporter && cd exporter
- $ wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-1.9.1.linux-amd64.tar.gz -> 12M
- $ tar -xvzf node_exporter-1.9.1.linux-amd64.tar.gz -> 압축 풀기
- $ mv node_exporter-1.9.1.linux-amd64 node_exporter-1.9.1
- $ ll node_exporter-1.9.1 -> 실행 파일: node_exporter (크기: 22M)
- $ ln -s node_exporter-1.9.1/node_exporter node_exporter
-> 링크 만들기: 다른 버전을 받으면 링크만 수정한다. 시스템 서비스 등록은 수정하지 않는다.
실행(임시)
- $ ./node_exporter & -> bg start (Ctrl+C 종료)
[1] 7752
time=2025-05-19 level=INFO source=node_exporter.go:216 msg="Starting node_exporter" version="(version=1.9.1, ...)"
time=2025-05-19 level=INFO source=tls_config.go:347 msg="Listening on" address=[::]:9100
🖥️ 시스템 서비스 등록
- sudo vi /usr/lib/systemd/system/node_exporter.service -> CentOS
- sudo systemctl daemon-reload -> 설정 reload
- sudo systemctl start node_exporter -> 시작(실행)
- sudo systemctl enable node_exporter -> 재부팅 시 자동 시작 등록
- sudo systemctl stop node_exporter -> 중지(shutdown)
- sudo systemctl status node_exporter -> 상태 보기
⚓ 9100 포트 허용
- sudo vi /etc/sysconfig/iptables -> 아래 내용 저장
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9100 -j ACCEPT - sudo systemctl restart iptables
- sudo iptables -L -n | grep 9100 -> iptables 설정 확인
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9100 - sudo netstat -tulnp | grep 9100 -> netstat 확인
tcp6 0 0 :::9100 :::* LISTEN 7752/node_exporter - 포트 관련 추가로 필요한 설정이 있으면 해주세요.
🌐 브라우저 테스트
http://IP:9100/metrics -> 결과 이미지

100KBytes, 약 1600라인(매우 많은 자료가 나옴) ➡ 전체 데이터는 아래 참조
Redis Exporter
1. 📌 개요 📖
Redis Exporter는 Redis 인스턴스에서 메트릭을 수집하여 Prometheus 형식으로 노출하는 Exporter입니다.
Redis 자체는 Prometheus와 직접 통신할 수 없기 때문에 중간다리 역할을 합니다.
프로그래밍 언어: Go(Golang)
기본 포트: 9121
2. 📦 주요 수집 항목
- 연결 정보: redis_connected_clients, redis_connected_slaves
- 명령 처리: redis_commands_processed_total
- 메모리 사용: redis_memory_used_bytes, redis_memory_peak_bytes
- Keyspace: redis_db_keys, redis_db_keys_expiring
- 퍼시스턴스: redis_rdb_changes_since_last_save, redis_aof_enabled
- 복제 상태: redis_master_last_io_seconds_ago
- 서버 정보: redis_uptime_in_seconds, redis_version_info
3. ⚙️ 다운로드(설치), 실행
📥 다운로드(설치) - Redis Exporter Release 확인
- $ cd /app/exporter
- $ wget https://github.com/oliver006/redis_exporter/releases/latest/download/redis_exporter-v1.72.1.linux-amd64.tar.gz -> 3.7M
- $ tar -xvzf redis_exporter-v1.72.1.linux-amd64.tar.gz
- $ mv redis_exporter-v1.72.1.linux-amd64 redis_exporter-v1.72.1
- $ ll redis_exporter-v1.72.1 -> 실행 파일: redis_exporter (크기: 9.2M)
- $ ln -s redis_exporter-v1.72.1/redis_exporter redis_exporter
-> 링크 만들기: 다른 버전을 받으면 링크만 수정한다. 시스템 서비스 등록은 수정하지 않는다.
🖥️ 시스템 서비스 등록
- sudo vi /usr/lib/systemd/system/redis_exporter.service -> CentOS
- sudo systemctl daemon-reload -> 설정 reload
- sudo systemctl start redis_exporter -> 시작(실행)
- sudo systemctl enable redis_exporter -> 재부팅 시 자동 시작 등록
- sudo systemctl stop redis_exporter -> 중지(shutdown)
- sudo systemctl status redis_exporter -> 상태 보기
⚓ 9121 포트 허용
- sudo vi /etc/sysconfig/iptables -> 아래 내용 저장
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9121 -j ACCEPT - sudo systemctl restart iptables
- sudo iptables -L -n | grep 9121 -> iptables 설정 확인
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9121 - sudo netstat -tulnp | grep 9121 -> netstat 확인
tcp6 0 0 :::9121 :::* LISTEN 29865/redis_exporter - 포트 관련 추가로 필요한 설정이 있으면 해주세요.
Redis Exporter가 실행하는 명령
• Redis Exporter가 Redis 서버에 실행하는 명령입니다.
• prometheus.yml scrape_interval: 5s 간격마다 실행합니다.
- AUTH redisgate -> 접속
- CLIENT SETNAME redis_exporter -> 클라이언트 이름 설정
- CONFIG GET * -> config 파라미터 전체를 가져옴: data size: 6.3K, 170 lines
- INFO ALL -> info 전체 데이터를 가져옴: data size: 7.2K, 230 lines
- LATENCY LATEST -> Latency 데이터를 가져옴
- LATENCY HISTOGRAM
- SLOWLOG LEN -> Sloglog 데이터를 가져옴
- SLOWLOG GET 1
🌐 브라우저 테스트
http://IP:9121/metrics -> 결과 이미지

36K, 670라인 ➡ 전체 데이터는 아래 참조
Node Exporter 전체 데이터 📖
http://IP:9100/metrics 실행했을 때 나오는 데이터입니다.
Node Exporter 전체 데이터: 100K, 약 1600라인.
Redis Exporter 전체 데이터 📖
http://IP:9121/metrics 실행했을 때 나오는 데이터입니다.
Redis Exporter 전체 데이터: 36K, 670라인