主流两种方案:
- 官方 HTTP 模板(推荐,无需装 Agent,采集宿主机 / VM/LXC/ 存储全量虚拟化指标)
- Zabbix Agent 本地监控(侧重宿主机硬件、系统指标,虚拟化数据需脚本扩展)
方案一:官方模板 Proxmox VE by HTTP(最简、原生支持)
一、PVE 后台创建监控专用账号 + API Token
- 新建监控用户 数据中心 → 用户 → 添加
- 用户名:
zabbix - 域:
Proxmox VE Authentication(pve) - 设置密码,勾选启用 → 添加

- 用户名:
- 分配只读审计权限(最小权限原则) 数据中心 → 权限 → 添加 → 用户权限
- 路径:
/ - 用户:
zabbix@pve - 角色:
PVEAuditor - 勾选传播 → 添加

- 路径:
- 生成 API Token(关键,仅显示一次 Secret) 数据中心 → API Tokens → 添加
- 用户:
zabbix@pve - Token ID:
zabbix-monitor(自定义) - 取消勾选权限分离 Privilege Separation
- 过期:永不过期 保存弹窗里的 Token ID + Secret,后面 Zabbix 要填。

- 用户:
- 给 Token 分配全局审计权限 数据中心 → 权限 → 添加 → API Token 权限
- 路径:
/ - API Token:选中刚创建的 token
- 角色:
PVEAuditor,勾选传播
- 路径:
二、Zabbix 导入官方 PVE 模板
- 下载官方模板文件 地址:https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/proxmox/template_app_proxmox.yaml 右键 raw 保存为
template_app_proxmox.yaml - Zabbix Web:数据采集 → 模板 → 导入,选择 yaml 文件导入。
- 导入成功后模板名称:
Proxmox VE by HTTP
三、Zabbix 添加 PVE 主机并配置宏

- 数据采集 → 主机 → 创建主机
- 主机名称:PVE 节点主机名
- 可见名称:自定义
- 接口:HTTP 代理接口,地址填 PVE 管理 IP,端口
8006(PVE API 默认端口)
- 关联模板:搜索
Proxmox VE by HTTP链接到主机 - 主机宏(必须填,模板内置变量)
宏名称 填入内容 {$PVE.URL.HOST}PVE 服务器 IP {$PVE.URL.PORT}8006{$PVE.TOKEN.ID}刚才生成的 Token ID {$PVE.TOKEN.SECRET}Token Secret 密钥 - 保存主机,等待 3-5 分钟自动发现节点、虚拟机、容器、存储。
四、可监控指标(官方模板自带)
- 宿主机:CPU / 内存 / 磁盘 IO / 网卡 / 温度 / 负载 / 系统状态
- 虚拟机 VM:CPU、内存、磁盘、网络、开机状态、磁盘使用率
- LXC 容器:资源占用、运行状态
- 存储:local、lvm、ceph、nfs 容量 / 使用率
- 自动发现:节点、VMID、容器 ID、存储池,自动创建监控项与触发器
方案二:PVE 宿主机安装 Zabbix Agent(补充硬件监控)
适合同时监控宿主机系统、硬盘健康、RAID、硬件温度,搭配 HTTP 模板互补。
1. PVE(Debian)安装 Agent
# 导入zabbix源(替换对应zabbix版本,如6.0/7.0) wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-2+debian12_all.deb dpkg -i zabbix-release_7.0-2+debian12_all.deb apt update apt install zabbix-agent
2. 配置 Agent
编辑 /etc/zabbix/zabbix_agentd.conf
Server=Zabbix服务端IP ServerActive=Zabbix服务端IP Hostname=PVE节点主机名
systemctl enable --now zabbix-agent systemctl restart zabbix-agent
3. Zabbix 主机额外关联模板
Template OS Linux by Zabbix agent:系统基础监控- 再叠加上面的
Proxmox VE by HTTP模板,兼顾系统 + 虚拟化指标
常见问题排查
- 无法获取 PVE 数据,监控项报错 401 Unauthorized
- Token Secret 复制错误、权限分离没取消
- Token 未分配
PVEAuditor全局权限
- 8006 端口不通 PVE 防火墙放行 Zabbix 服务器 IP:
pvefirewall add rule in ACCEPT source ZABBIX_IP port 8006 proto tcp
- 自动发现不出虚拟机 确认 Token 权限传播到
/vms路径,重启 Zabbix 服务。 - 测试 API 连通性(PVE 服务器执行)
curl -H "Authorization: PVEAPIToken=zabbix@pve!zabbix-monitor=你的Secret" https://127.0.0.1:8006/api2/json/nodes
返回 JSON 即账号 Token 正常。
两种方案对比
| 方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 官方 HTTP 模板 | 无需 Agent、原生全虚拟化指标、自动发现 VM/CT | 仅虚拟化数据,无底层硬件细粒度指标 | 只监控虚拟化资源、多集群批量监控 |
| Agent+HTTP 双模板 | 宿主机硬件 + 虚拟化全覆盖 | 需要安装 agent、多一层维护 | 完整服务器运维监控 |
PVE 防火墙放行 Zabbix的一键脚本,或者 Zabbix 告警触发器(VM 关机、存储使用率 90%、宿主机高负载)
