redis with prometheus,grafana

greenTea·2024년 3월 25일

프로메테우스와 그라파나를 이용하면 레디스를 쉽게 모니터링 할 수 있습니다.

사전 준비

Docker compose

version: "3.9"
services:
  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000
  prometheus:
    image: prom/prometheus
    ports:
      - 9090:9090
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
  redis:
    image: redis:latest
    ports:
      - 6379:6379
  node-exporter:
    image: prom/node-exporter
    ports:
      - 9100:9100

  redis-exporter:
    image: oliver006/redis_exporter
    ports:
      - 9121:9121
    environment:
      REDIS_ADDR: "redis:6379"
      REDIS_USER: null
    links:
      - redis
      - prometheus

redis exporter 와 node exporter를 이용해서 데이터를 끌어모으고 이를 프로메테우스가 pull하는 방식으로 진행됩니다.
이후 해당 값을 그르파나를 이용해서 그래프를 보여주는 방식입니다.
exporter -> prometheus -> grafana

node exporter는 해당 서버의 자원(cpu, memory등)을 수집하는 프로그램이고 redis exporter는 redis 정보를 수집하는 프로그램입니다.

프로메테우스 파일

global:
  scrape_interval:     15s # 
  evaluation_interval: 15s # 

scrape_configs:
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node-exporter:9100'] 

  - job_name: 'redis-exporter'
    static_configs:
      - targets: ['redis-exporter:9121']

세부적인 사항 없이 여기서는 그저 값을 가져오게만 하였습니다.
targets를 통해 원하는 메트릭 값을 가져오도록 할 수 있습니다.(다른 메트릭 주소이거나 다른 주기를 갖도록 하고 싶다면 프로메테우스 공식 홈페이지를 통해 확인 할 수 있습니다.)

도커 컴포즈 실행

먼저, docker-compose.yml 파일을 이용해 여러 도커 컨테이너를 한번에 띄울 수 있습니다. 이를 위해 터미널에서 아래의 명령어를 실행합니다.

docker compose up -d

프로메테우스

프로메테우스가 정상적으로 실행되고, 메트릭 값을 잘 가져오는지 확인해봅니다.

  1. 웹 브라우저에서 localhost:9090으로 접속합니다.
  2. 좌측 메뉴에서 Status -> Targets를 선택합니다.

Prometheus Targets

각 Target의 상태가 UP이면 메트릭을 잘 가져오고 있는 것입니다.

Prometheus UP

그라파나

그라파나를 통해 프로메테우스의 메트릭을 시각화해봅니다.

  1. 웹 브라우저에서 localhost:3000으로 접속합니다. 초기 아이디와 비밀번호는 admin입니다.

Grafana Login

  1. 좌측 메뉴에서 Configuration -> Data Sources를 선택하고, Add data source 버튼을 클릭합니다. 이후 Prometheus를 선택합니다.

Grafana Data Source

  1. URL 부분에 http://prometheus:9090를 입력하고, Save & Test 버튼을 클릭합니다.

Grafana Data Source Setting

  1. Data source is working이라는 메시지가 표시되면 성공적으로 연결된 것입니다.

Grafana Data Source Success

  1. 이제 대시보드를 생성합니다. 좌측 메뉴에서 Create -> Dashboard를 선택하고, Add new panel을 클릭합니다.

Grafana Dashboard

  1. 매트릭을 선택하고 표시 방식을 설정한 후, Apply 버튼을 클릭합니다.

Grafana Dashboard Setting

  1. 이렇게 생성한 대시보드에서는 Node exporter로 수집한 서버의 자원 상태를 실시간으로 확인할 수 있습니다. Redis exporter로 수집한 데이터도 같은 방법으로 대시보드를 생성하면 시각화할 수 있습니다.

Grafana Dashboard Result

이제 도커, 프로메테우스, 그라파나를 이용한 모니터링 환경이 완성되었습니다. 이 환경을 통해 서버의 상태를 실시간으로 체크하고, 필요시 알림을 설정하여 시스템의 이상 상황을 빠르게 파악할 수 있습니다.

직접 redis를 그라파나에 연결

  1. Home 화면에서 plugins를 검색하과 들어가줍니다.

  2. redis를 검색한 후 가장 첫 번째 Redis로 들어가줍니다.

  3. 설치를 해준 후 Add new data source를 눌러줍니다.

  4. 위에서 설정한 redis 값들을 입력합니다. 여기서는 아무 설정값을 지정해주지 않았기에 url만 설정해주었습니다.

  5. Dashboards에서 첫 번째 Redis를 Import 해 줍니다. 이 후 해당 칸을 눌러줍니다.

  6. Redis가 연결이 된 것을 확인 할 수 있습니다. 직접 값을 넣어보면 해당 값들이 변하는 것을 확인 할 수 있습니다.(변화가 잘 보이지 않는다면 시간 폭을 5분 단위로 줄여보시면 그 변화를 체감하실 수 있습니다.)

profile
greenTea입니다.

0개의 댓글