🔰 引言
當企業的虛擬化平台從單機走向叢集、再延伸至混合雲架構後,
系統管理的複雜度隨之倍增。
若仍以人工登入 GUI、逐台操作節點的方式維護,
不僅效率低、風險高,也難以因應現代 DevOps / SRE 的即時需求。
因此,自動化管理與監控整合 成為 Proxmox 架構升級的關鍵。
本文將說明:
1️⃣ 如何透過 API / CLI 實現自動化管理
2️⃣ 如何整合 Prometheus + Grafana 進行全域監控
3️⃣ 打造專屬 IT 運維儀表板 (Dashboard) 的完整實作流程
🧩 一、Proxmox 自動化管理基礎
1️⃣ RESTful API 介紹
Proxmox 提供完整的 RESTful API 介面,幾乎可涵蓋所有 GUI 操作。
API Endpoint 位於:
https://<proxmox-host>:8006/api2/json
透過 Token 或帳密登入即可呼叫。
範例:查詢所有節點資訊
curl -k -H "Authorization: PVEAPIToken=root@pam!apitoken=XXXXXX" \
https://pve.example.com:8006/api2/json/nodes
回傳 JSON:
{
"data": [
{"node":"pve-node01","status":"online","cpu":0.12,"mem":8372899840},
{"node":"pve-node02","status":"online","cpu":0.07,"mem":6432172032}
]
}
2️⃣ CLI 工具:pvesh
若不想寫程式,也可直接用內建 CLI:
pvesh get /nodes
pvesh create /nodes/pve1/qemu/200/start
這讓自動化腳本可簡潔地控制整個叢集。
3️⃣ 結合 Ansible / Terraform
常見應用場景包括:
- 以 Ansible Playbook 自動建立 VM、設定防火牆、佈署 OS
- 使用 Terraform 實作「基礎架構即程式 (IaC)」
Ansible 任務範例:
- name: Create VM on Proxmox
community.general.proxmox_kvm:
api_user: root@pam
api_password: "{{ proxmox_pass }}"
api_host: pve-node01
node: pve-node01
vmid: 300
name: webserver01
cores: 4
memory: 8192
storage: local-lvm
net:
- model=virtio,bridge=vmbr0
⚙️ 二、Prometheus 整合架構
1️⃣ 監控原理
Prometheus 是一套時間序列監控系統,可定期從 Proxmox 收集指標 (metrics),
如 CPU、記憶體、儲存、虛擬機狀態等。
Proxmox VE 9.x 內建 Prometheus Exporter,可直接啟用。
2️⃣ 架構示意
┌───────────────────────────────┐
│ Proxmox Cluster │
│ (pve-exporter / ceph-mgr) │
└────────────┬──────────────────┘
│
HTTP / 9221
│
┌─────────────────────┐
│ Prometheus │
│ (Data Collector) │
└────────┬────────────┘
│
HTTP / 3000
│
┌─────────────────────┐
│ Grafana │
│ (Visualization) │
└─────────────────────┘
3️⃣ 設定步驟
在 Prometheus 伺服器上:
建立 /etc/prometheus/prometheus.yml:
scrape_configs:
- job_name: 'proxmox'
metrics_path: /api2/json/nodes
static_configs:
- targets: ['192.168.10.11:9221','192.168.10.12:9221']
重新啟動 Prometheus:
systemctl restart prometheus
4️⃣ 啟用 Proxmox Exporter
安裝模組:
apt install prometheus-pve-exporter
啟動服務:
systemctl enable prometheus-pve-exporter --now
在 http://<node-ip>:9221/metrics 可檢視即時監控資料。
📊 三、Grafana 儀表板整合
1️⃣ 新增資料來源
於 Grafana Web 介面中:
- 進入 Connections → Data Sources → Add data source
- 選擇 Prometheus
- 設定 URL:
http://<prometheus-server>:9090 - 儲存後即可讀取 metrics。
2️⃣ 建立 Proxmox 專屬監控面板
可導入官方模板 (ID: 10347)
或自行建立以下監控項目:
- Cluster / Node CPU 使用率
- 記憶體 / Swap 狀況
- VM 狀態、IOPS、網路流量
- Ceph / ZFS 使用量
- PBS 備份任務統計
3️⃣ 儀表板範例
[Cluster Overview]
├── Node Status (Online/Offline)
├── CPU Usage by Node
├── Memory / Storage Utilization
├── VM Resource Ranking
├── Ceph IOPS & Network
└── Backup Job Success Rate (PBS)
💡 可搭配 Alertmanager 設定 Email / Slack 通知,實現 24/7 智能告警。
🧠 四、進階整合:自動化 + 監控的融合
| 功能 | 實作工具 | 說明 |
|---|---|---|
| 自動資源擴充 | Ansible / Terraform | 根據監控數據自動建立新 VM |
| 異常告警回應 | Alertmanager + API | 自動關閉異常 VM 或重新啟動服務 |
| 動態儲存調整 | Ceph CLI + API | 根據磁碟使用率擴增 Pool 容量 |
| 報表與審計 | Grafana Report / Loki | 定期輸出使用報表與操作紀錄 |
🗄️ 五、實際部署建議
1️⃣ Prometheus / Grafana 建議獨立於叢集外運行
2️⃣ 採用 HTTPS 與 API Token 保護 Exporter 資料
3️⃣ 監控數據保留期建議 30~90 天,依業務量調整
4️⃣ 建立多層告警策略(Critical / Warning / Info)
5️⃣ 導入自動化佈署工具,確保環境一致性
✅ 結語
透過 API + 自動化腳本 + 監控整合,
Proxmox 不僅是一個虛擬化平台,
更可成為 智能化、可觀測 (Observable) 的私有雲核心。
在這樣的架構下:
- 系統能自我監測、自動調整
- 管理者能即時掌握效能與風險
- 運維效率大幅提升,同時減少人為錯誤
💬 下一篇將介紹:
「Proxmox 安全強化與零信任存取架構」,
深入探討 API 安全性、RBAC 權限與遠端存取控管策略。