Redis의 metrics를 모니터링해보자.

이우길·2022년 12월 13일
0

infra

목록 보기
4/6
post-thumbnail

Redis Metrics with Prometheus, Grafana

Goal

  • Redis의 Metrics를 노출 시켜 Prometheus, Grafana를 이용하여 시각화 하기

Grafana에서 제공하는 Plugin을 이용하여 손쉽게 적용하기

Grafana에서는 Redis의 Metric 정보를 제공하는 Plugin을 제공한다. - Redis Plugins

image

위의 사진과 같이 Redis에 대한 Plugin을 설치 후 접속정보만 넣어주면 손쉽게 Redis에 대한 시각화를 시킬 수 있다.

적용 순서는 아래와 같다.

  1. plugin 설치

  2. datasource 생성

  3. plugin의

Datasource 생성 후 결과 확인

plugin을 정상적으로 설치하면 Datasource를 선택할 수 있는 List에 Redis가 생긴다. Redis를 선택 후 아래의 사진에서 접속정보를 누른 후 plugin에서 제공하는 Dashboard를 이용하면 끝나게 된다.

  • 접속 정보 입력

    image

  • 결과화면

    test


이럼 끝일까?

생각보다 간단하다고 적용하기 쉬워서 너무 좋은데? 라고 했지만 query를 이용하여 데이터를 조회하려 하다 보니 query를 사용하지 못하고 가져올 수 있는 데이터에 한계가 있다고 생각해서 결국 export를 찾아보게 되었다...


Redis_exporter

이전 글 nginx-prometheus-exporter를 설치한 것을 참조하여 redis_exporter를 설치하면 된다.

# 설치 기준 v1.45.0
wget https://github.com/oliver006/redis_exporter/releases/download/v1.45.0/redis_exporter-v1.45.0.linux-arm.tar.gz

tar -zxvf redis_exporter-v1.45.0.linux-arm.tar.gz

# Result
exporter/
|-- LICENSE
|-- README.md
`-- redis_exporter

압축을 해재 후 redis의 Connection 정보와 같이 실행시키면 redis의 metrics 정보를 손쉽게 얻어올 수 있다.

# help
$ ./redis_exporter --help

# result
...
-redis.addr string
    Address of the Redis instance to scrape (default "redis://localhost:6379")
-redis.password string
    Password of the Redis instance to scrape
-web.listen-address string
    Address to listen on for web interface and telemetry. (default ":9121")
-web.telemetry-path string
    Path under which to expose metrics. (default "/metrics")
...

# excute
./redis_exporter -redis.addr=${레디스 접속 address} -redis.password=${레디스 password}

테스트

정상적으로 exporter를 실행시켰다면 http://localhost:9121/metricscurl을 이용해 요청을 보내보자. :9121로 요청을 보내면 html을 return 해주고 :9121/metrics로 요청하면 redis의 metrics 정보를 받을 수 있다.

추 후 프로메테우스에서는 :9121/metrics의 정보를 이용하게 된다.

# exporter
$ curl http://localhost:9121


# result
<html>
<head><title>Redis Exporter v1.45.0</title></head>
<body>
<h1>Redis Exporter v1.45.0</h1>
<p><a href='/metrics'>Metrics</a></p>
</body>
</html>

Prometheus 연결

exporter와 동일하게 이전 글에서 설치는 해봤으니 prometheus.yml의 설정하는 것만 해당 글에서 작성하겠다.

# ...
scrape_configs:
  - job_name: "redis"
    static_configs:
      - targets: ["localhost:9121"]

Grafana 연결

이전 글에서 크게 벗어나는 것이 없으며 대쉬보드는 redis-exporter-1-x를 가져다 사용했다.


결과

test

Reference

profile
leewoooo

0개의 댓글