3分钟搞定Proxmox VE监控:Prometheus Exporter从部署到告警全攻略
你是否还在为Proxmox VE集群的资源监控而烦恼?面对虚拟机CPU飙高、存储IO异常却无法及时预警?本文将带你通过社区版Helper-Scripts,3分钟部署Prometheus监控体系,实时掌握集群健康状态。读完你将获得:
- 一键式Exporter部署脚本使用指南
- 自定义监控指标配置方法
- Prometheus+Grafana可视化实践
- 异常指标告警规则设置
为什么选择Prometheus监控Proxmox VE
Proxmox VE作为企业级虚拟化平台,原生监控功能较为基础。通过Prometheus+Exporter方案,可实现:
- 集群节点CPU/内存/存储的实时采样
- 虚拟机/容器资源使用率趋势分析
- 自定义阈值告警(如磁盘空间<10%)
- 历史性能数据对比(支持15个月数据 retention)
项目提供的三类Exporter实现全方位监控覆盖:
- PVE集群专用:ct/prometheus-pve-exporter.sh
- 网络连通性检测:ct/prometheus-blackbox-exporter.sh
- 应用层指标采集:install/prometheus-paperless-ngx-exporter-install.sh
一键部署PVE Exporter的技术实现
核心部署脚本解析
ct/prometheus-pve-exporter.sh脚本采用Python虚拟环境隔离设计,关键实现包括:
# 创建隔离环境
export PVE_VENV_PATH="/opt/prometheus-pve-exporter/.venv"
uv venv "$PVE_VENV_PATH"
$PVE_VENV_PATH/bin/python -m pip install prometheus-pve-exporter
# 系统服务配置
cat <<EOF >/etc/systemd/system/prometheus-pve-exporter.service
[Service]
ExecStart=/opt/prometheus-pve-exporter/.venv/bin/pve_exporter \
--config.file=/opt/prometheus-pve-exporter/pve.yml \
--web.listen-address=0.0.0.0:9221
EOF
配置文件详解
认证配置文件pve.yml采用YAML格式,支持多集群配置:
default:
user: prometheus@pve # PVE专用监控账号
password: sEcr3T! # 建议使用PVE API Token
verify_ssl: false # 自签名证书设置
安全最佳实践:通过
pveum user add创建具有只读权限的监控账号,避免使用root@pam
部署步骤与验证方法
快速安装流程
- 下载社区脚本库
git clone https://gitcode.com/gh_mirrors/prox/ProxmoxVE
cd ProxmoxVE
- 执行容器化部署
# 创建LXC容器并自动配置Exporter
bash ct/prometheus-pve-exporter.sh
- 验证服务状态
systemctl status prometheus-pve-exporter
curl http://localhost:9221/metrics | grep pve_node_info
关键指标说明
成功部署后可采集到三类核心指标:
| 指标名称 | 含义 | 应用场景 |
|---|---|---|
| pve_node_cpu_usage_percent | 节点CPU使用率 | 识别超分节点 |
| pve_up | 集群连接状态 | 节点存活检测 |
| pve_storage_usage_bytes | 存储使用量 | 容量规划预警 |
完整指标列表参见官方文档
Grafana可视化与告警配置
推荐仪表盘模板
社区贡献的Proxmox监控面板(grafana/proxmox.json)包含:
- 集群资源总览页
- 节点性能详情页
- 虚拟机热度排行页
关键配置项:
{
"panels": [
{
"title": "CPU使用率",
"targets": [
{
"expr": "avg(pve_node_cpu_usage_percent) by (node)",
"interval": "1m"
}
]
}
]
}
告警规则设置
在Prometheus配置文件中添加:
groups:
- name: pve_alerts
rules:
- alert: HighCpuUsage
expr: avg(pve_node_cpu_usage_percent) by (node) > 85
for: 5m
labels:
severity: warning
annotations:
summary: "节点{{ \$labels.node }} CPU使用率过高"
高级扩展:自定义监控指标
通过修改Exporter源码(api/metrics/custom.py)可添加业务指标,例如:
from prometheus_client import Gauge
# 定义自定义指标
CUSTOM_VM_START_COUNT = Gauge(
'pve_custom_vm_start_count',
'虚拟机每日启动次数',
['vmid', 'node']
)
# 采集逻辑
def collect_vm_start_metrics():
for vm in get_all_vms():
count = get_vm_start_count(vm['vmid'])
CUSTOM_VM_START_COUNT.labels(vmid=vm['vmid'], node=vm['node']).set(count)
常见问题解决方案
证书验证失败
当PVE使用自签名证书时,修改pve.yml:
verify_ssl: false # 生产环境建议部署Let's Encrypt证书
指标采集超时
调整Exporter超时参数:
ExecStart=/opt/prometheus-pve-exporter/.venv/bin/pve_exporter \
--config.file=/opt/prometheus-pve-exporter/pve.yml \
--web.listen-address=0.0.0.0:9221 \
--timeout=15s
高可用集群配置
多节点部署时,通过tools/ha-sync.sh保持配置一致性:
bash tools/ha-sync.sh /opt/prometheus-pve-exporter/pve.yml node1 node2
总结与后续规划
通过本文介绍的Helper-Scripts,我们实现了Proxmox VE监控体系的快速搭建。社区版脚本每月更新,近期将支持:
- Prometheus Agent Mode(减少80%网络流量)
- PVE 8.1新特性监控(ZFS压缩率指标)
- 自动生成Grafana仪表盘
立即行动:
- Star本项目仓库
- 部署脚本:
bash install/prometheus-pve-exporter-install.sh - 关注CHANGELOG.md获取更新通知
提示:生产环境建议配合install/prometheus-install.sh与install/grafana-install.sh形成完整监控栈
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



