개요
홈 서버를 운영하고 있는 상황이라면 아마 높은 확률로 Proxmox를 사용하고 있을 것이다.
이번 포스팅에서는 InfluxDB와 Grafana를 연동하여 Proxmox의 호스트와 VM 자원을 모니터링 하는 방법에 대해서 작성해보려고 한다.
도커 볼륨 생성
먼저 컨테이너 데이터를 저장하기 위해 매핑할 볼륨을 생성해주자.
docker volume create influxdb-vol
docker volume create grafana-vol
설치
Proxmox를 모니터링 한다고 해서 Proxmox Local에서 설치하는 것은 아니다.
별도로 VM을 하나 또 생성하던지, 아니면 도커가 설치되어 있는 VM에서 진행해도 상관 없다.
단, Proxmox local에서는 진행하지 않는 것을 권장한다.
아래와 같이 docker-compose.yaml
파일을 작성해주자.
services:
grafana:
image: grafana/grafana
container_name: grafana
restart: always
ports:
- 3000:3000
volumes:
- type: volume
source: grafana-vol
target: /var/lib/grafana
networks:
- px-monitor-net
influxdb:
image: influxdb
container_name: influxdb
restart: always
ports:
- 8086:8086
- 8089:8089/udp
volumes:
- type: volume
source: influxdb-vol
target: /var/lib/influxdb
networks:
- px-monitor-net
networks:
px-monitor-net:
driver: bridge
external: true
volumes:
grafana-vol:
external: true
influxdb-vol:
external: true
잘 작성했다면 docker compose를 실행하자.
docker-compose up -d --build
influxdb 버킷 구성
컨테이너가 정상적으로 생성되었다면 이제 proxmox의 데이터를 받아줄 influxdb를 구축해주도록 하자.
먼저 http://<VM주소>:8086
으로 접속하고 조직이름과 버킷을 생성해주자.
이 예제에서는 wtt / proxmox
로 진행한다.
모두 입력했다면 Continue
클릭
그러면 아래와 같은 창으로 리다이렉트되고 위에 토큰이 표시될텐데, 해당 토큰의 경우 따로 보관해주도록 하자.
메인 화면으로 이동 후 좌측 Load Data - API Tokens로 이동해주자.
기본 토큰의 경우 최고 관리자의 권한이므로 보안 문제가 발생할 수 있기에 별도로 하나 생성해주자.
그리고 생성된 API 키 값을 어딘가에 복사해놓자.
proxmox Metric 전송
Proxmox의 Metric 데이터를 InfluxDB로 보내줘야 한다.
Proxmox 클러스터 - 메트릭 서버 - InfluxDB로 추가해주자.
이제 데이터가 influx로 정상적으로 넘어오는지 확인해보자.
influxdb로 다시 넘어가서 Data Explorer로 가보자.
위처럼 host가 잘 나온다면 성공이다.
grafana 설정
이제 그라파나 대시보드를 설정해주자.
http://<VM 주소>:3000
으로 접속하자.
기본 계정은 admin/admin
이다.
그리고 Connections - Data sources로 이동하여 새로운 data source를 생성하자.
grafana에서 데이터 쿼리 및 시각화
grafana와 influxdb 설정이 완료 되었으니 이제 대시보드를 구성해주면 된다.
대시보드의 경우 https://grafana.com/grafana/dashboards/15356를 사용해볼거다.
아니면 https://grafana.com/grafana/dashboards에서 원하는 대시보드를 찾아도 된다.
원하는 형태의 대시보드를 찾았다면 우측하단에 id를 기억해주면 된다.
그라파나 대시보드로 이동하여 우측하단 New - import 를 선택해주자.
그리고 아까 봐둔 ID를 넣고 Load해주면 아래처럼 나올 것이다.
그러면 이렇게 대시보드가 잘 나온다.