지난 포스팅에서는 모니터링을 구축할때 필요한 소프트웨어와 각 소프트웨어 설치방법을 다루었습니다.
이번 포스팅에서는 Redis Metrics를 수집한 후 Grafana 대시보드와 연동하는 과정을 작성하고자 합니다.
작업 순서는 다음과 같습니다.
1. Redis Node Exporter 설치
2. Prometheus 설정
3. Grafana 연동
우선 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를 설치 하였으므로 이제 백그라운드에서 실행할수 있도록 설정합니다.
여러가지 방법이 있으나 서비스에 등록하여 사용하는 것이 관리하기 편합니다.
우선 /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 파일을 생성하였다면 daemon에 등록한 후에 Service 실행이 필요합니다.
# 추가 된 서비스 설정을 데몬에 반영
sudo systemctl daemon-reload
# Redis Node Exporter 서비스 실행
sudo systemctl enable --now redis_exporter
Redis Exporter 실행이 끝났다면 해당 서비스가 제대로 동작하는지 확인이 필요합니다.
sudo systemctl status redis_exporter
Redis Exporter 설치 및 세팅 작업이 끝났습니다.
다음 Prometheus 설정하여 Redis Metrics 수집 되도록 설정이 필요합니다.
우선 /etc/prometheus/prometheus.yml 에 Redis 설정 작업을 추가해야 합니다.
scrape_configs:
- job_name: 'redis'
static_configs:
- targets: ['${redis_server_ip}:9121']
설정이 완료되었다면 Prometheus를 재기동 합니다.
systemctl restart prometheus
systemctl status prometheus
Prometheus를 재기동 하였다면 브라우저로 접근하여 연결 되었는지 확인이 필요합니다.
Redis Exporter과 prometheus 연결이 완료되었습니다.
이제 마지막으로 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 --version
grafana-cli --version
Grafana 대시보드 생성에 앞서서 우선 설치 해놓은 Prometheus, Grafana 간에 연결이 필요합니다.
Grafana 대시보드 로그인
왼쪽 매뉴에 Configuration > Data Sources 클릭
Add data sources 클릭
Prometheus 검색후 클릭
prometheus 연결 정보 입력
Save & Test 버튼을 클릭하여 연결 확인
Grafana에 Prometheus 정보를 연결하였습니다.
이제 Grafana 대시보드를 생성하겠습니다.
Grafana에는 여러개의 Redis 대시보드가 업로드 되어 있습니다.
자신에 맞는 Redis 대시보드를 찾아서 적용하시면 됩니다.
Dashboard ID Copy 버튼 클릭
구축한 Grafana를 접속한 후에 왼쪽 매뉴에서 create > import 클릭
Import via에 복사한 dashboard ID 붙여놓고 Load 버튼을 클릭
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 파일을 직접 다운로드하는 방법으로 진행해야 합니다.
위의 순서대로 진행하면 아래 화면과 같이 대시보드가 생성된것을 확인할수 있습니다.
위의 과정을 진행한 결과 Redis Metrics 정보가 수집 되는 것을 확인하였습니다.
다음 포스팅에는 RabbitMQ Mrtrics 정보를 수집하는 방법을 다루겠습니다.