1.2. Redis Metrics 수집

신복호·2025년 1월 23일
0

Monitoring

목록 보기
3/9
post-thumbnail

개요

지난 포스팅에서는 모니터링을 구축할때 필요한 소프트웨어와 각 소프트웨어 설치방법을 다루었습니다.

이번 포스팅에서는 Redis Metrics를 수집한 후 Grafana 대시보드와 연동하는 과정을 작성하고자 합니다.

작업 순서는 다음과 같습니다.
1. Redis Node Exporter 설치
2. Prometheus 설정
3. Grafana 연동

1. Redis Exporter

설치

우선 Redis 관련 Node Exporter를 설치를 진행해야 합니다.

wget https://github.com/oliver006/redis_exporter/releases/download/v1.67.0/redis_exporter-v1.67.0.linux-amd64.tar.gz
tar -zxvf redis_exporter-v1.67.0.linux-amd64.tar.gz
mv redis_exporter-v1.67.0.linux-amd64/ redis_exporter

서비스 등록

Redis Node exporter를 설치 하였으므로 이제 백그라운드에서 실행할수 있도록 설정합니다.

여러가지 방법이 있으나 서비스에 등록하여 사용하는 것이 관리하기 편합니다.

Service 파일 생성

우선 /etc/systemd/system/ 경로에 redis_exporter.service 파일을 생성합니다.

    [Unit]
    Description=Redis Exporter
    Wants=network-online.target
    After=network-online.target

    [Service]
    User= ${Service 실행시킬 계정}
    Group= ${Service 실행시킬 계정이 포함되어 있는 그룹}
    Type=simple
    ExecStart= ${Node Exporter 경로} \
        -web.listen-address ":9121" \
        -redis.addr "redis://127.0.0.1:${redis_port} \
        -redis.password "${redis_password}"

    [Install]
    WantedBy=multi-user.target     

Service 파일 등록 및 실행

Service 파일을 생성하였다면 daemon에 등록한 후에 Service 실행이 필요합니다.

  # 추가 된 서비스 설정을 데몬에 반영
  sudo systemctl daemon-reload
  
  # Redis Node Exporter 서비스 실행
  sudo systemctl enable --now redis_exporter
 

Redis Exporter 동작 확인

Redis Exporter 실행이 끝났다면 해당 서비스가 제대로 동작하는지 확인이 필요합니다.

  • systemctl 명령어
     sudo systemctl status redis_exporter
  • 포트 확인
    • netstat -tnlp 으로 9121 포트 LISTEN 여부 확인

2. Prometheus

Redis Exporter 설치 및 세팅 작업이 끝났습니다.
다음 Prometheus 설정하여 Redis Metrics 수집 되도록 설정이 필요합니다.

Redis Exporter 설정 추가

우선 /etc/prometheus/prometheus.yml 에 Redis 설정 작업을 추가해야 합니다.

  scrape_configs:
  - job_name: 'redis'
    static_configs:
     - targets: ['${redis_server_ip}:9121']

Prometheus 재기동

설정이 완료되었다면 Prometheus를 재기동 합니다.

systemctl restart prometheus
systemctl status prometheus

Prometheus 동작 확인

Prometheus를 재기동 하였다면 브라우저로 접근하여 연결 되었는지 확인이 필요합니다.

3. Grafana 연동

Redis Exporter과 prometheus 연결이 완료되었습니다.

이제 마지막으로 Grafana를 연동하여 대시보드에 데이터를 시각화해 보겠습니다

Grafana 연결전 주의사항

Grafana Dashboard를 직접 구성할 수도 있지만, 시간이 많이 소요 됩니다.

대신 이미 구축해놓은 대시보드를 import를 하는 방법으로 시스템을 구성하고자 합니다.

다만 구축해놓은 대시보드를 import를 하는데 있어서 최소 Grafana, Prometheus 버전이 있습니다.

아래 JSON를 예로 들어 설명하도록 하겠습니다.
(파일 업로드가 되지 않아 링크를 첨부 하였습니다.)

해당 JSON 파일을 분석하면 __requires 항목이 있는데 해당 값은 대시보드를 구현하기 위해 필요한 각 소프트웨어의 최소의 버전을 기록하게 되어 있습니다.

  "__requires": [
    {
      "type": "grafana",
      "id": "grafana",
      "name": "Grafana",
      "version": "10.3.3"
    },
    {
      "type": "datasource",
      "id": "prometheus",
      "name": "Prometheus",
      "version": "1.0.0"
    }
  ],

위의 내용을 분석해보자면 해당 대시보드를 이용하기 위한 최소 버전은 Grafana 10.3.3 , Prometheus 1.0.0 입니다.
위 대시보드 뿐만 아니라 Grafana 대시보드에 업로드 된 모든 대시보드들은
각각 요구하는 최소 버전이 다르므로 Import가 가능한지 미리 확인해야 합니다.

Prometheus, Grafana 버전 확인

Prometheus

 prometheus --version

Grafana

 grafana-cli --version

Prometheus-Grafana 연동

Grafana 대시보드 생성에 앞서서 우선 설치 해놓은 Prometheus, Grafana 간에 연결이 필요합니다.

  1. Grafana 대시보드 로그인

  2. 왼쪽 매뉴에 Configuration > Data Sources 클릭

  3. Add data sources 클릭

  4. Prometheus 검색후 클릭

  5. prometheus 연결 정보 입력

  6. Save & Test 버튼을 클릭하여 연결 확인

Grafana 대시보드 생성

Grafana에 Prometheus 정보를 연결하였습니다.
이제 Grafana 대시보드를 생성하겠습니다.

대시보드 선택

Grafana에는 여러개의 Redis 대시보드가 업로드 되어 있습니다.
자신에 맞는 Redis 대시보드를 찾아서 적용하시면 됩니다.

대시보드 구성

방법 1: Dashboard ID Copy

  1. Dashboard ID Copy 버튼 클릭

    • 해당 버튼을 클릭 하면 테마 번호가 복사가 됩니다.

  2. 구축한 Grafana를 접속한 후에 왼쪽 매뉴에서 create > import 클릭

  3. Import via에 복사한 dashboard ID 붙여놓고 Load 버튼을 클릭

  4. Dashboard Name, Folder, prom 선택후 import 클릭

위 순서대로 진행하면 아래와 같은 대시보드가 생성이 됩니다.

다만 Grafana, Prometheus 버전 이슈로 인하여 아래 화면 같이 에러가 발생하는 케이스가 있습니다.

대시보드 구성 당시 가장 마지막으로 릴리즈된 버전은 6이며,
해당 대시보드에서 요구하는 최소 버전은 다음과 같습니다.

  • Grafana 10.3.3

  • Prometheus : 1.0.0

    ```bash
    ### Redis 대시보드 JSON 파일 일부 내용을 발췌
      "__requires": [
        {
          "type": "grafana",
          "id": "grafana",
          "name": "Grafana",
          "version": "10.3.3"
        },
        {
          "type": "datasource",
          "id": "prometheus",
          "name": "Prometheus",
          "version": "1.0.0"
        }
    
      ],
    ```

    만약 대시보드에서 요구하는 최소 버전이 맞지 않으면 JSON 파일을 직접 다운로드하는 방법으로 진행해야 합니다.

방법 2 : JSON 다운로드

  1. 대시보드 페이지에서 Revisions 항목에서 적절한 버전 다운로드
  1. 왼쪽 매뉴에서 create > import 클릭
  1. Upload JSON file 클릭 후 다운로드한 파일 업로드
  2. Dashboard name, prom 선택후 import 클릭

위의 순서대로 진행하면 아래 화면과 같이 대시보드가 생성된것을 확인할수 있습니다.

4. 마무리

위의 과정을 진행한 결과 Redis Metrics 정보가 수집 되는 것을 확인하였습니다.

다음 포스팅에는 RabbitMQ Mrtrics 정보를 수집하는 방법을 다루겠습니다.

5. 참조

0개의 댓글