Zukamiso's blog!

ProxmoxをインストーしてGrafanaでの音湿度をモニタリングできるようにした

2025-04-29


これまでサブ機として使っていたミニPCがWindows11に対応しておらず、今年でWindows10のサポートが終了するので、せっかくなら自宅サーバーを作っていろいろ遊ぼうと思い、proxmoxをインストールすることにした。 Proxmoxc上に立ち上げたVMでGrafanaとinfuluxdbを動かしたことを簡単にまとめてみようと思う。

ミニPCのスペック

minisforum u700という製品。 以下のような構成となっている。

  • CPU: Core i5-5257U
  • メモリ: 16GB(増設)
  • SSD: 128GB
  • HDD: 500GB(増設)

当時、メインで使っていたPCが壊れてしまい、代替機として3万円ほどで買ったような気がする。 ブラウジングで問題なく動けばよかったのでスペック的には問題なかった。 ただし、高負荷時のファンがうるさい(笑)

しかし、Windows10 Proがデフォルトでインストールされており、せっかくならHyper-Vで仮想マシンを運用しようと思ったときにメモリとストレージが不足気味だったので後から追加している。 なので今回サーバー化するときに追加投資なしで作れた。

Proxmoxインストール

Proxmoxは直接ミニPCにインストールするので、Raspberry Pi Imagerでインストールメディアを作成した。

インストールメディアをUSBに接続して、起動・インストール。

インストールできたが、Web GUIにアクセスできない問題が発生した。 Web GUIにアクセスしているマシンは192.168.0.0/24に属しており、サーバーは10.0.0.0/24で起動している。 10.0.0.0/24のセグメントに繋がってるマシンからはアクセスできるので、ネットワークが問題であることはわかっていた。 試しにProxmoxのGUIからファイアーウォールを無効化すると192.168.0.0/24からもアクセスできるようになったので、原因がファイアーウォールの設定によるものだとわかった。 別のネットワークからアクセスする場合には気をつけた方がよさそう。

VMはUbuntu serverをベースにすることにした。 ネットに情報が多く、OSにこだわりはなかったのでこれで問題ないと思う。

Grafana, Infulxdbをdocker composeで起動する

以下のようなcompose.yamlを作成した。

version: '3.8'

services:
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    depends_on:
      - prometheus
    networks:
      - monitoring

  influxdb:
    image: influxdb:2.7
    container_name: influxdb
    restart: always
    ports:
      - 8086:8086
    volumes:
      - influxdb2_data:/var/lib/influxdb2
      - influxdb2_config:/etc/influxdb2
    networks:
      - monitoring

volumes:
  grafana_data: {}
  influxdb2_data: {}
  influxdb2_config: {}

networks:
  monitoring:
    driver: bridge

influxdbは2系と3系があり、いろいろ調べたところ3系はクラウド向けにRustで実装されているようで、最近出たばかりかつ2系の方が情報量が多そうだったので今の段階では2系にすることにした。

docker compose up -dで起動後にhttp://<サーバーIP>:8086http://<サーバーIP>:3000でサービスの起動を確認した。

温度・湿度・気圧をモニタリング

せっかくなのでM5StickCで部屋の温度・湿度・気圧を計測する。 センサーはM5Stack用温湿度気圧センサユニット Ver.3(ENV Ⅲ)を使った。

Aruduino向けのクライアントライブラリInfluxDB-Client-for-Arduinoがあったので、こちらを利用するようにした。

http://<サーバーIP>:8086にアクセスしてData Explorerからデータが来ているか確認できるので、実際にM5StickCからデータが来ていることを確認した。

最後にGrafanaからfnfluxdbの連携を行なって、ダッシュボードを作成する。 以下のような感じで完成した。

Grafanaダッシュボード

今後の構想

とりあえず動くところまで持って行けたので、ローカルDNS構築やTLS化など対応して、より快適に使える環境にしていきたい。 prometheusでサーバー監視や何年か前にNEC IX2105を家のネットワークに導入したのでSNMPでネットワークの状況を監視できたらいいなと思っている。