はじめに
自宅のミニPCでProxmox VEを動かしています。
今回はその構成などをメモ書きとして個人用に残しておきます。
全体構成
Proxmoxが動いているPCをホスト、その上で動くVMとLXCをゲストと呼んでいます。
Proxmoxホストの構成
| 項目 | 現在値 |
|---|---|
| ホスト名 | pve1 |
| Proxmox VE | 9.1.19 |
使っているゲストと主な使い道
一覧
| VMID | 種別 | 名前 | vCPU | メモリ | 主な使い道 |
|---|---|---|---|---|---|
| 100 | VM | haos15.2 |
2 | 4GiB | Home Assistantで家電・自動化・通知を管理 |
| 101 | LXC | docker |
4 | 4GiB | Dockerワークロードと関連サービスを集約 |
| 102 | LXC | immich |
4 | 4GiB | 写真管理 |
| 103 | LXC | freshrss |
2 | 1GiB | RSSの購読・閲覧 |
| 104 | LXC | cloudflared |
1 | 512MiB | 外部接続の入口 |
| 105 | LXC | beszel |
1 | 512MiB | ホストとゲストの監視 |
VM 100: Home Assistant OS
家電の操作、自動化、通知をまとめています。
専用VMにしているのは、Home Assistant OSをProxmox本体やDockerの都合から分けておきたいからです。サーバーの状態通知もHome Assistantへ集約し、最終的にはスマートフォンで受け取ります。
LXC 101: Docker
Dockerコンテナを動かすためのLXCです。DockerをProxmox本体へ直接入れず、専用LXCに閉じ込めています。
Dockerの設定変更やコンテナの追加・削除を、Proxmox本体の設定と分けて扱えるのが便利です。AdGuard関連のワークロードもこの周辺で管理しています。
LXC 102: Immich
写真管理サービスです。写真を扱うので、他の小さなサービスと同じ場所に詰め込まず、専用LXCにしています。
LXC 103: FreshRSS
RSSを購読するためのサービスです。常時使うため、1GiBの小さなLXCで動かしています。
LXC 104: Cloudflared
外部から自宅サービスへ接続するときの入口です。
すべてのサービスを直接外部公開するのではなく、Cloudflaredを入口にして、必要なサービスだけへつなぐ構成にしています。
LXC 105: Beszel
Proxmoxホスト、各LXC、Dockerの状態を見るための監視サービスです。
監視そのものを他のサービスと同じLXCに入れると、そのLXCが止まったときに監視も止まります。そのため、Beszelは専用LXCに分けています。
監視
Beszelで見るもの
BeszelはLXC 105で動かしています。次の項目を確認しています。
- Proxmox本体のディスク使用率
- CPU温度
- メモリ使用率
- Proxmox本体と各ゲストの稼働状態
- LXCのディスク使用率
- Dockerコンテナの停止・unhealthy状態
Home Assistantから通知する
問題が見つかったときは、BeszelからHome Assistantを経由してスマートフォンへ通知します。
Beszel Generic webhook
↓
Home Assistant automation
↓
スマートフォン通知
設定後にテスト通知を送り、スマートフォンまで届くことを確認しています。
運用メモ
Firewallと外部接続
ProxmoxのFirewallを有効にしています。管理画面への接続は自宅LANからに限定し、外部からはCloudflaredを入口にします。
まとめ
現在のProxmox環境は、次の役割分担になります。
他にも便利そうなものがあれば順次触っていきたいです。
- Home Assistant OSは専用VM
- Dockerは専用LXC
- Immich、FreshRSS、Cloudflared、Beszelはそれぞれ専用LXC
- Beszelでホストとゲストを監視
- Dockerコンテナの状態は定期処理でも確認
- 問題の通知はHome Assistantからスマートフォンへ送る
- Proxmox本体、
local-lvm、各ゲストのディスクを分けて見る