Profile picture

[Docker] InfluxDB와 Grafana로 Proxmox VM 모니터링

JaehyoJJAng2024년 02월 20일

개요

image
홈 서버를 운영하고 있는 상황이라면 아마 높은 확률로 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

image


influxdb 버킷 구성

컨테이너가 정상적으로 생성되었다면 이제 proxmox의 데이터를 받아줄 influxdb를 구축해주도록 하자.

먼저 http://<VM주소>:8086으로 접속하고 조직이름과 버킷을 생성해주자.

이 예제에서는 wtt / proxmox로 진행한다.
image
모두 입력했다면 Continue 클릭


그러면 아래와 같은 창으로 리다이렉트되고 위에 토큰이 표시될텐데, 해당 토큰의 경우 따로 보관해주도록 하자. image


메인 화면으로 이동 후 좌측 Load Data - API Tokens로 이동해주자.
image


기본 토큰의 경우 최고 관리자의 권한이므로 보안 문제가 발생할 수 있기에 별도로 하나 생성해주자.
image


그리고 생성된 API 키 값을 어딘가에 복사해놓자.
image


proxmox Metric 전송

Proxmox의 Metric 데이터를 InfluxDB로 보내줘야 한다.

Proxmox 클러스터 - 메트릭 서버 - InfluxDB로 추가해주자.
image
image


이제 데이터가 influx로 정상적으로 넘어오는지 확인해보자.

influxdb로 다시 넘어가서 Data Explorer로 가보자.
image
위처럼 host가 잘 나온다면 성공이다.


grafana 설정

이제 그라파나 대시보드를 설정해주자.

http://<VM 주소>:3000으로 접속하자.

기본 계정은 admin/admin 이다.
image


그리고 Connections - Data sources로 이동하여 새로운 data source를 생성하자.
image
image
image


grafana에서 데이터 쿼리 및 시각화

grafana와 influxdb 설정이 완료 되었으니 이제 대시보드를 구성해주면 된다.

대시보드의 경우 https://grafana.com/grafana/dashboards/15356를 사용해볼거다.

아니면 https://grafana.com/grafana/dashboards에서 원하는 대시보드를 찾아도 된다.

원하는 형태의 대시보드를 찾았다면 우측하단에 id를 기억해주면 된다.
image


그라파나 대시보드로 이동하여 우측하단 New - import 를 선택해주자.
image


그리고 아까 봐둔 ID를 넣고 Load해주면 아래처럼 나올 것이다.
image


그러면 이렇게 대시보드가 잘 나온다.
image


Loading script...