Influxdb와 Grafana를 사용해 proxmox 데이터 그래프 보기
대쉬보드로 Proxmox의 데이터를 조금 더 쉽게 볼 수 있게 구축하는 방법입니다.
필요한것은 아래와 같습니다.
- InfluxDB
- Proxmox 7.2이상
- Grafana
1. 각 소프트웨어 설치
Proxmox를 제외하고는 빌드하는 방법이 2가지로 나뉩니다. 개별로 lxc를 사용해 빌드하는 것 (제가 사용하는 방법입니다) 또는 docker로 빌드하는 법. LXC와 도커의 차이는 역시 개별 컨테이너의 스냅샷 여부와 IP를 하나 더 쓰는것 그리고 포트의 개방 여부등이 고려의 대상이 되겠습니다.
먼저 거와 같이 lxc에서 빌드하시기 원하는 분들은 proxmox VE Helper-Scripts | Scripts for Streamlining Your Homelab with Proxmox VE 에 InfluxDB와 Grafana 스크립트를 사용해 빌드 하시면 되겠습니다 생각보다 시간이 좀 걸립니다. InfluxDB 설치중 Telegraf는 혹시 다른 서버에서 agent로 데이터를 모으시고 싶은 분들은 사용하시면 되겠습니다.
아래는 docker에서 사용가능한 스택입니다.
중요! 데이터 디렉토리는 만들어야하기 때문에 만약 로그에서 그라파나가 permission error가 뜬다면 해달 폴더를 sudo chmod 777 -R /data/grafana-storage와 sudo chmod 777 -R /data/grafana-provision 커맨드로 권한을 주세요! 개별 폴더의 권한을 설정하셔야지 /data전체를 설정하시면 다른 컨테이너에 문제가 생길수 있습니다.
version: '3.9'
services:
influxdb:
image: influxdb:latest
ports:
- '8086:8086'
volumes:
- /data/influxdb-storage:/var/lib/influxdb
grafana:
image: grafana/grafana:latest
ports:
- '3000:3000'
volumes:
- /data/grafana-storage:/var/lib/grafana
- /data/grafana-provisioning/:/etc/grafana/provisioning/
depends_on:
- influxdb
2. InfluxDB 세팅
Get Started를 눌러주시고 아래처럼 설정해주세요 유저네임과 비밀번호 외에 전부 UI에서 추가 설정이 가능합니다.
Continue를 누르시고 Complete을 누르시면 홈페이지로 이동합니다. 위 페이지 이후에 나오는건 무시하시고 다시 http://192.168.0.155:3001/ 와 같이 서비스 포트로 다시 접속하시면
이렇게 홈페이지가 나옵니다.
여기 나오는 Load Data에서 몇가지 설정을 해줘야합니다.
저는 초기화면에서 proxmox라는 bucket을 미리 생성해주었기에 이렇게 데이터를 받을 준비가 완료되었습니다.
헤더를 통한 로그인 보다는 api token을 이용한 방식이 조금더 안전하기에 proxmox에서 데이터를 보낼때 사용할 api token을 만들어 줍니다.
커스텀을 선택하시고 bucket에 proxmox의 read와 write을 체크해줍니다.
이렇게 API token을 생성하면 이후에는 값을 볼수 없기에 잘 저장해둡니다. 저는 Copy yo clipboard기능이 작동하지 않더군요 ㅠㅠ 이 api token을 proxmox에서 데이터를 가져오는데 쓸겁니다.
두번째 토큰은 Grafana에서 데이터를 가져오는데 쓸 만듭니다.
그라파나에서 사용할 api는 읽기 권한만 있으면 되기에 모든 버킷에 읽기 권한을 줍니다.
3. Proxmox 데이터 세팅
위와 같은 Metric Server 기능에서 Proxmox의 데이터를 influxdb로 넘길 수 있습니다. 저희는 InfluxDB를 설정 했기 때문에
InfluxDB로 추가해주세요
위에는 제 설정입니다.
위처럼 세팅하신뒤에는 InfluxDB Data Explorer에서 확인이 가능합니다.
3. Grafana 세팅
기본 username과 비밀번호는 둘다 admin입니다. 로그인하시면 첫 페이지에서 비밀번호를 바꾸실 수 있습니다.
Grafana의 샌드위치 메뉴를 여셔서 Connections 탭을 눌러주세요
InfluxDB를 검색해서 추가해주세요
오른쪽 위에 Add new data source를 클릭하셔서 정보를 입력해주세요
Query언어는 Flux가 InfluxDB에서 가장 최신으로 사용하는 언어이기에 해당 언어를 기반으로 해줍니다.
Basic auth가 아니라 API Token을 사용하기에 해당 옵션은 꺼주고 로컬환경이기에 따로 TLS Verify는 하지 않습니다.
InfluxDB detail에 전에 설정한 값들을 넣어주고 Token에 API Token 값을 입력해줍니다. 전 기본 버킷으로 proxmox를 만들었기에 Proxmox의 값을 가져오는 버킷을 설정해주시면 됩니다. Save&Test로 연결을 확인합니다.
다시 샌드위치 메뉴를 열어서 Dashboad로 향합니다.
Create Dashboard를 통해 새로운 대쉬보드를 만들건데 Grafana는 여러 template을 지원해서 기본적으로 올라와있는 걸 사용합니다.
Import Dashboard를 눌러줍니다.
Proxmox Cluster [Flux] | Grafana Labs
제가 추천하는 template입니다. (15356)
이렇게 ID를 입력하고 Load를 누르면 자동으로 불러오기가 됩니다.
미리 만들어 두었던 proxmox InfluxDB를 연결합니다.
Import를 사용하시면 바로 대쉬보드가 쉽게 만들집니다.
이렇게 바로 보이는데 만약 데이터가 뜨지 않는다면 위에 Datasource와 Bucket그리고 Server를 한번 체크해보시기 바랍니다. 저는 node 2개가 정상적으로 뜨는 모습을 보실수 있습니다!
궁금하신점은 아래 남겨주세요!
cmt alert