nvme 온도를 prometheus에 넣기
Prometheus와 Grafana를 함께 사용하면 시스템 메트릭(예: SSD 온도, CPU 사용률 등)을 수집하고 시각화할 수 있습니다. 아래는 Arch Linux에서 기본적인 Prometheus + Grafana 설정 및 사용법, 그리고 SSD 온도 모니터링 예시까지 포함된 가이드입니다.
🎯 목표
- Prometheus로 시스템 메트릭 수집
- Grafana로 대시보드 구성
- NVMe SSD 온도 측정 (node_exporter + custom script 활용)
🧰 1. 설치하기
✅ Prometheus
sudo pacman -S prometheus
✅ Grafana
sudo pacman -S grafana
nvme-cli
혹시 없다면 설치한다
sudo pacman -S nvme-cli
✅ node_exporter (Prometheus가 메트릭을 수집할 수 있게 해주는 에이전트)
sudo pacman -S prometheus-node-exporter
⚙️ 2. 서비스 시작 및 자동 실행 설정
sudo systemctl enable --now prometheus
sudo systemctl enable --now grafana
sudo systemctl enable --now prometheus-node-exporter
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (기본 로그인:
admin
/admin
)
📡 3. Prometheus 설정 (타겟 지정)
설정 파일: /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
설정 후 재시작:
sudo systemctl restart prometheus
🔧 4. SSD 온도 메트릭 수집하기 (커스텀 스크립트 + textfile exporter 방식)
- 스크립트 생성 (예:
/usr/local/bin/nvme_temp_exporter.sh
)
#!/bin/bash
TEMP=$(sudo nvme smart-log /dev/nvme0 | grep "temperature" | awk '{print $3}')
echo "# HELP nvme_temperature_celsius NVMe temperature in Celsius" > /var/lib/node_exporter/nvme.prom
echo "# TYPE nvme_temperature_celsius gauge" >> /var/lib/node_exporter/nvme.prom
echo "nvme_temperature_celsius $TEMP" >> /var/lib/node_exporter/nvme.prom
- 권한 설정
sudo mkdir -p /var/lib/node_exporter
sudo chmod 755 /var/lib/node_exporter
sudo chown -R nobody:nobody /var/lib/node_exporter
- 크론에 등록 (1분마다 실행)
sudo crontab -e
* * * * * /usr/local/bin/nvme_temp_exporter.sh
- node_exporter 설정 변경
/etc/conf.d/prometheus-node-exporter
(없으면 만들어도 됨):
혹은 ARGS변수명이 변경되었을수도 있다.
ARGS="--collector.textfile.directory=/var/lib/node_exporter"
그리고 node_exporter 재시작:
sudo systemctl restart prometheus-node-exporter
http://envy:9100/metrics에서 nvme_temperature_celsius 라는 문자열로 검색 본다.
📊 5. Grafana 설정 및 대시보드 만들기
-
브라우저에서
http://localhost:3000
접속 -
로그인 후:
- Add Data Source > Prometheus 선택
- URL:
http://localhost:9090
- URL:
- 저장 후 “Explore"에서 쿼리 가능
- Add Data Source > Prometheus 선택
-
쿼리 예시:
nvme_temperature_celsius
- 대시보드 생성 → Panel 추가 → 위 쿼리 입력 → 그래프 저장
✅ 결과
이제:
- Prometheus는 node_exporter 및 사용자 정의 메트릭(
/var/lib/node_exporter/nvme.prom
)에서 데이터를 수집하고, - Grafana는 이를 시각화하여 실시간 NVMe 온도 그래프를 보여줍니다.
원한다면 SSD 사용률, I/O, 읽기/쓰기 등도 추가 가능합니다. 더 복잡한 템플릿이나 알람 설정 등도 알려드릴 수 있어요—궁금하신 부분 있을까요?