ProxmoxVEについて知識を深めるために、自分なりの言葉にして学習していきます。
なるべく誰でも分かりすく伝わるように・・・
以下を参考にしながら学習していきます。
- 書名:Proxmox VEサーバー仮想化 導入実践ガイド
https://book.impress.co.jp/books/1124101030
今回
Proxmox VE には、障害やバックアップ失敗などを管理者に知らせるための「通知」機能があります。
通知の送り先は、主に次の 4 つの方式から選べます。
- Sendmail
- SMTP
- Gotify
- Webhook
4つの方式をざっくり整理しつつ、今回は「SMTP」を使ったメール通知だけに絞って理解を深めます。
なぜSMTPを選んだか
- 自分が普段から使っているメール(Gmailなど)で結果を確認できる
※ Gmail を通知先として利用することは、一般的な本番運用では推奨されないらしいですが、
本記事では自宅環境での検証という前提で Gmail を使用しています。 - Proxmox側の設定だけで完結し、Linuxのメールサーバを別途構築しなくて良い(これはじっくりやりたい)
- イメージしやすい
- 全ての方式を実際にやると、準備とかで話が脱線しそう
4つの通知方式
4つとも「行き先が違うだけ」です。
-
Sendmail:
Proxmox → OS のメール機能(/usr/sbin/sendmail → postfix 等)→ メール -
SMTP:
Proxmox → Gmail や会社の SMTP サーバ → メール -
Gotify:
Proxmox → 自分で建てた Gotify サーバ → スマホアプリ(プッシュ通知) -
Webhook:
Proxmox → Web の URL(受信Webhook)→ Mattermost / Slack / 自作Webサービス など
どれも、Proxmox から外に通知を出すときの「出口(送り先)の種類」が違うだけです。
Sendmail
OSに「メールよろしく」と投げるだけ
Proxmox → (/usr/sbin/sendmail)→ OS のメール設定 → メール
- Proxmox は OS の sendmail コマンドにメールを渡すだけ
- その先(どのSMTPサーバに投げるか、認証どうするか)は Linux側のメール設定(postfix等)の仕事
SMTP
Proxmox が直接メールサーバに話しかける(今回これをやる)
Proxmox → (SMTPプロトコル)→ Gmail / 会社のSMTP → メール
- Proxmox内の設定で
- SMTPサーバ:smtp.gmail.com など
- ポート:587
- ユーザー名 / パスワード
を入れると、Proxmoxが自分でそのサーバに接続してメールを送る
Gotify
自前LINEみたいな「自前プッシュ通知サーバ」
Proxmox → Gotifyサーバ → スマホやブラウザ(Gotifyクライアント)
- 自宅などにGotifyサーバを立てる(Dockerでも可)
- スマホにGotifyアプリを入れる
- ProxmoxからGotifyに通知を送ると、スマホにプッシュ通知が飛んでくる
Webhook
チャットツールや自作Webに「HTTP」で投げる
Proxmox → (HTTP POST)→ URL(Mattermost / Slack / 自作API)
- 任意のURLにJSONなどをPOSTする
- 相手は
- Mattermost / Slack / Discord の「受信Webhook」
- Teams の Incoming Webhook
- 自作の Web API など
SMTP方式を実際に
Gmail側でアプリパスワードを作る
- アプリ パスワードは、最新のセキュリティ標準に対応していない
アプリ向けの例外的なログイン手段であり、通常のログイン方法と比べて
安全性が低いとされています。 - 今回は学習用として、Gmail アカウントに Proxmox 専用のアプリ パスワードを 1 個だけ発行し、
Proxmox の SMTP 設定にこのパスワードを設定します(アカウント本体のパスワードは Proxmox に渡しません)。 - 検証が終わったら、Google アカウント側で今回発行したアプリ パスワードを削除することを推奨します。
- ブラウザで Google アカウント : https://myaccount.google.com を開く
- 通知に使いたい Gmail アカウントでログインする
- 「2 段階認証プロセス」が有効なことを確認する
- https://myaccount.google.com/apppasswords からアプリパスワードを作成する(任意のアプリ名を入力し、作成をクリック)
- 16文字のパスワードが表示されたら、控えておく(Proxmoxに入れるときはスペースを抜く)
Proxmox側でSMTP(Gmail)ターゲットを作る
- エンドポイント名:gmail-smtp(自分が分かれば何でも)
- サーバ:smtp.gmail.com(Gmail側が決めているSMTPサーバ)
- 暗号化:STARTTLS
- 最初は平文でつなぎ、すぐに「TLS に切り替えよう」と交渉して暗号化する方式
- ポート 587 とセットで使われることが多い
- ポート:587
- 認証付き SMTP 用(サブミッションポート)+ STARTTLS の組み合わせが主流
- ユーザー名:自分のGmailアドレス
- パスワード:アプリパスワード 16 文字(スペースなし)
- Fromアドレス:自分のGmailアドレス
- Gmail の SMTP を使う場合、認証に使っているアドレスと同じにしておくと安全
- Recipient(s):空
- Proxmox のユーザー(例:
root@pam)にメールアドレスを設定していれば、
ここでそのアカウントを選択することで「そのユーザーのメールアドレス宛」に送信できる - 今回のテストでは混乱を避けるため、一旦空のままにしておく
- Proxmox のユーザー(例:
- 追加のRecipient(s):自分の Gmail アドレス
- 作成したエンドポイント名が追加され、テスト→テストメールを送信
- 受信できれば完了
これで、Proxmox になにか起きた際に、メール通知で気付けるようになりました。
実際の本番環境では、Proxmox 自体を Zabbix などの監視ツールに監視させ、
通知は Zabbix 側からメールやチャットに送る構成が採用されることも多いと思います。
今回はあくまで学習用として、Proxmox から SMTP(Gmail)へ直接通知する例を扱いました。

