📞 IT 峰哥团队 · 企业信息化落地服务
IT 峰哥深耕企业 IT 基础设施领域多年,专注为各类型企业提供网络安全规划、设备选型、上网行为管理、超融合部署、文档加密、考勤门禁、视频监控等信息化项目整包落地服务。从方案设计、设备选型、上门实施到后期运维,全程跟进。
承接规模:小微企业 / 成长型企业 / 中大型企业,均提供定制化方案
服务范围:防火墙、上网行为、AP+AC、域控、NAS、超融合、文档加密、人脸考勤、视频监控、机房动环等
合作流程:需求沟通 → 方案设计 → 设备选型 → 落地实施 → 持续运维
📱 17712677007(微信同号)
📞 24 小时全天候响应 · 紧急项目优先安排

VMware vCenter 集中管理着数据中心中的集群、ESXi 主机、虚拟机、数据存储和虚拟网络,但 vCenter 自带告警往往侧重虚拟化平台本身。当企业还需要统一监控 Linux、Windows、数据库、网络设备和业务应用时,把 vCenter 接入 Zabbix,可以在同一平台完成资源趋势、容量预警、故障告警和统一通知。
本文以 Zabbix 7.4 与 VMware vCenter Server 为主线,详细说明监控原理、只读账号、Zabbix Server 参数、VMware 模板、宏配置、自动发现、监控验证、告警调优和常见故障排查。Zabbix 通过 VMware Web Services SDK 从 vCenter 拉取数据,不需要在 vCenter Appliance 或 ESXi 上安装 Zabbix Agent。
一、Zabbix 监控 vCenter 的架构与数据流
Zabbix Server 内置 VMware collector 进程。collector 根据主机宏中的 vCenter SDK 地址、用户名和密码登录 VMware API,把服务状态、数据中心、集群、Hypervisor、虚拟机、数据存储和性能计数器写入 VMware cache,再由模板中的监控项、发现规则和触发器处理。
| 组件 | 作用 | 通信方向 |
|---|---|---|
| Zabbix Server | 运行 VMware collector、发现和告警逻辑 | 主动访问 vCenter |
| vCenter Server | 提供 vSphere SDK/API 与集中清单 | TCP 443 响应查询 |
| VMware 模板 | 定义服务、主机、虚拟机、数据存储监控 | 配置层 |
| 只读服务账号 | 允许 Zabbix 查询清单和性能数据 | 身份认证 |
| 自动发现 | 发现 ESXi 和虚拟机并创建主机原型 | 周期执行 |
最常见的部署方式是 Zabbix Server 访问 vCenter 443,而不是逐台访问每个 ESXi。这样只需维护一套凭据,新增虚拟机和 ESXi 后也能通过低级别发现自动纳管。大型环境可使用 Zabbix Proxy 分担远程站点采集,但必须确认所用版本对 VMware 监控和 Proxy 的支持方式。
二、安装前检查:版本、网络、DNS、时间与容量
开始配置前先确认 Zabbix Server 已正常运行,前端与 Server 版本一致,并且模板库包含 VMware 相关模板。本文按 Zabbix 7.4 写作,不同版本的模板名称、宏和发现结构可能略有变化,应以当前系统自带模板与官方文档为准。
| 检查项 | 要求 | 验证方式 |
|---|---|---|
| 网络 | Zabbix Server 能访问 vCenter TCP 443 | curl、openssl、nc |
| DNS | 能解析 vCenter FQDN | getent hosts / dig |
| 时间 | Zabbix 与 vCenter 时间准确 | timedatectl / chronyc |
| TLS | 证书有效或已明确自签名处理方案 | openssl s_client |
| 账号 | 专用只读账号,权限从 vCenter 根对象向下传播 | vSphere Client 测试 |
| 容量 | 数据库、history、trends 和 cache 有余量 | 队列、DB 容量、内部监控 |
getent hosts vcenter.example.com
nc -vz vcenter.example.com 443
curl -vk --connect-timeout 10 https://vcenter.example.com/sdk
openssl s_client -connect vcenter.example.com:443 -servername vcenter.example.com
访问 /sdk 返回 SOAP/XML、HTTP 方法提示或认证相关响应,都能说明网络已到达 SDK 服务。连接超时、拒绝或 DNS 解析失败必须先修复,不能靠调整 Zabbix 模板解决。
三、在 vCenter 创建 Zabbix 专用只读账号
不要使用 administrator@vsphere.local,更不要把 ESXi root 密码写进 Zabbix。建议创建专用账号,例如 zabbix-monitor@vsphere.local,分配 Read-only 角色,并在 vCenter 清单根对象上勾选向子对象传播。这样账号可以读取数据中心、集群、主机、虚拟机、数据存储和性能信息,但不能修改资源。
典型流程是:在 vSphere Client 的 Single Sign-On 用户与组中创建用户;进入全局清单根层级的权限管理;添加该用户;角色选择 Read-only;启用 Propagate to children。不同 vCenter 版本界面名称可能变化,最终要以“账号登录后可以看到全部待监控对象,但无法修改配置”为验收标准。
- 账号密码设置足够强度,并纳入密码保管和轮换。
- 不要和个人管理员账号共用,便于审计与停用。
- 多个 vCenter 建议分别使用服务账号或明确权限边界。
- 如果只监控部分数据中心,可在相应对象授予只读权限,但要验证发现范围。
- 密码变更后同步更新 Zabbix Secret macro,避免明文展示。
四、启用 Zabbix VMware collectors
默认安装后 VMware collector 数量可能为 0。编辑 Zabbix Server 配置文件,常见路径为 /etc/zabbix/zabbix_server.conf,启用 collector 并根据规模设置缓存和超时:
StartVMwareCollectors=2
VMwareFrequency=60
VMwarePerfFrequency=60
VMwareCacheSize=256M
VMwareTimeout=30
这些数字只是中小环境起点,不是所有环境通用答案。vCenter 数量、ESXi 数量、虚拟机数量、性能计数器和更新间隔都会影响 collector 与 cache。先以保守值上线,再观察 Zabbix Server 日志、内部进程 busy、队列和 VMware cache 使用率后调整。
| 参数 | 含义 | 调优原则 |
|---|---|---|
| StartVMwareCollectors | VMware collector 进程数 | 至少大于 0;多 vCenter/大规模适当增加 |
| VMwareFrequency | 服务清单数据更新频率 | 过短增加 API 与数据库压力 |
| VMwarePerfFrequency | 性能计数器更新频率 | 与业务告警时效平衡 |
| VMwareCacheSize | VMware 数据共享缓存 | 缓存不足时按日志提示增加 |
| VMwareTimeout | VMware 查询超时 | 跨 WAN 或大环境可适度提高 |
修改后先检查配置,再重启 Zabbix Server:
zabbix_server -R config_cache_reload
systemctl restart zabbix-server
systemctl status zabbix-server --no-pager
journalctl -u zabbix-server -n 100 --no-pager
部分进程参数只有重启后才能生效,单纯 reload 不一定会启动新的 collector。上线前应在日志中确认 VMware collector 已启动,而不是只看服务为 active。
五、在 Zabbix 创建 vCenter 主机
进入数据采集或配置中的主机页面,创建一个代表 vCenter 服务的主机,例如 VCENTER-PROD。主机组可建立 VMware/vCenter。此主机通常不需要 Agent 接口,因为数据由 VMware SDK 采集;如果前端版本强制要求接口,可按模板要求处理,不要随意填写 ESXi Agent 地址。
给主机链接系统自带的 VMware 模板。Zabbix 不同版本可能显示为 VMware、VMware by HTTP 或拆分成 service、hypervisor、guest 等模板,必须以当前版本模板说明为准。不要从旧博客导入与 7.4 不兼容的 XML 模板,否则会出现宏、主机原型和监控项键值冲突。
六、配置 vCenter 宏
在 vCenter 主机的宏页填写模板要求的 URL、用户名与密码。经典内置 VMware 监控使用以下宏:
{$VMWARE.URL} = https://vcenter.example.com/sdk
{$VMWARE.USERNAME} = zabbix-monitor@vsphere.local
{$VMWARE.PASSWORD} = 强密码
密码宏应设置为 Secret text,避免普通用户直接看到。URL 应使用 vCenter FQDN,路径通常为 /sdk,不要只填管理首页地址,也不要指向单台 ESXi,除非你的目标就是绕过 vCenter 单独监控 ESXi。
如果系统自带模板使用不同宏,例如基于 HTTP template 的宏命名,应完全按该模板“Macros”或 README 配置,不能把经典 VMware 模板与新版 HTTP 模板的宏混搭。
七、等待自动发现并验证监控对象
保存主机和宏后,Zabbix 会先查询 VMware 服务,再执行发现规则。vCenter 规模越大,首次发现越久。不要刚保存一分钟就反复删建主机。可在“最新数据”、主机发现、队列与 Zabbix Server 日志中观察。
正常情况下应逐步看到以下对象与指标:
| 对象 | 典型数据 |
|---|---|
| vCenter 服务 | 版本、可用性、事件、状态 |
| 数据中心/集群 | 集群发现、主机数量、总体状态 |
| ESXi Hypervisor | CPU、内存、运行时间、状态、硬件健康 |
| 虚拟机 Guest | 电源状态、CPU、内存、磁盘、网络 |
| Datastore | 容量、空闲空间、使用率、可访问性 |
| 事件与告警 | 主机断连、虚拟机不可用、数据存储空间不足 |
验证时选择一台 ESXi、一台虚拟机和一个数据存储,对照 vSphere Client 与 Zabbix 最新数据。两边数值不必在瞬间完全一致,因为采集窗口、聚合和单位可能不同,但趋势与数量级应匹配。
八、监控项与触发器如何设置才实用
模板开箱即用只是起点。虚拟化环境容易产生大量低价值告警,应根据业务等级做宏调优和依赖关系。优先关注影响业务的指标,而不是把每个波动都变成告警。
- vCenter 可用性:SDK 无法访问、认证失败、服务状态异常。
- ESXi:主机断连、维护模式、硬件健康、CPU/内存长期高负载。
- 虚拟机:异常关机、不可访问、CPU ready、高内存压力。
- 数据存储:空闲空间不足、不可访问、延迟持续升高。
- 容量趋势:集群剩余资源、Datastore 增长、虚拟机数量变化。
例如数据存储告警不要只设一个统一百分比。容量很大的存储即使剩余 10% 仍可能有数 TB,而小存储剩余 10% 可能很快耗尽。更合理的是同时使用剩余百分比与剩余绝对容量,并结合增长速率设置预警。
九、通知、维护期和告警降噪
将 VMware 告警接入企业微信、邮件或短信前,先建立动作条件和维护期。计划维护 ESXi 或 vCenter 时,未设置维护期会产生主机不可达、虚拟机状态变化和关联服务告警风暴。
- 按生产、测试和灾备环境设置主机组与严重级别。
- ESXi 故障引起的虚拟机连锁问题应设置触发器依赖。
- 维护窗口使用 Maintenance,避免临时停用整个模板。
- 恢复通知必须开启,便于确认故障闭环。
- 先观察一周基线,再确定 CPU、内存和延迟阈值。
十、性能与数据库容量调优
vCenter 监控会快速增加监控项、历史数据和趋势数据。大环境必须关注 Zabbix queue、VMware collector busy、history syncer、数据库增长和 Housekeeper。不要单纯把采集间隔全部改为 30 秒。
建议把高频性能指标保留较短历史,把长期容量分析依赖 trends;按业务价值关闭不需要的监控项;数据库使用合理分区与备份;多个 vCenter 分批接入,观察每次接入后的 new values per second 与数据库增量。
# 查看 VMware 相关日志
journalctl -u zabbix-server --since "30 min ago" | grep -i vmware
# Zabbix Server 主日志常见路径
less /var/log/zabbix/zabbix_server.log
# 检查配置参数
grep -E '^(StartVMwareCollectors|VMwareFrequency|VMwarePerfFrequency|VMwareCacheSize|VMwareTimeout)=' /etc/zabbix/zabbix_server.conf
十一、常见故障与排查步骤
| 现象 | 常见原因 | 处理 |
|---|---|---|
| No VMware collectors started | StartVMwareCollectors 为 0 | 启用 collector 并重启 server |
| Cannot complete login | 账号、密码、SSO 域或权限错误 | 用账号登录 vSphere Client 验证 |
| URL 不可用 | 宏没写 /sdk、DNS 或 443 不通 | curl vCenter SDK URL |
| 发现不到 ESXi/VM | 权限未向子对象传播、发现规则未执行 | 检查 Read-only 权限和发现状态 |
| VMware cache is too small | 虚拟化清单或性能数据超过缓存 | 提高 VMwareCacheSize 并重启 |
| 数据更新慢 | collector 不足、API 慢、队列积压 | 查 busy、queue、日志和 vCenter 负载 |
| TLS 失败 | 证书过期、主机名不匹配或信任链问题 | 修复证书/DNS,不建议长期忽略 |
| 大量 Unsupported | 模板版本不匹配、性能计数器不可用 | 用系统模板并查看具体错误 |
排障顺序应固定为:DNS → 443 网络 → SDK 响应 → 账号登录 → 权限传播 → collector 进程 → 宏 → 模板 → 发现 → 数据库与队列。跳过前面直接重装 Zabbix,通常解决不了问题。
十二、安全加固与凭据轮换
vCenter 凭据属于高价值信息。即使是只读账号,也能看到企业虚拟化资产、命名、网络与容量。应将密码宏设为 Secret,限制谁能读取或修改主机配置,使用专用服务账号并定期轮换。
- 不使用 vCenter 管理员和 ESXi root。
- 限制 Zabbix Server 到 vCenter 的网络访问路径。
- 优先使用有效企业证书和 FQDN。
- 对宏修改、模板变更和权限变更保留审计。
- 离职和系统下线时及时禁用服务账号。
- Zabbix 数据库备份同样需要加密与访问控制。
十三、上线验收清单
| 验收项目 | 通过标准 |
|---|---|
| SDK 网络 | Zabbix Server 可访问 vCenter FQDN:443/sdk |
| 服务账号 | 只读、向下传播、无法修改资源 |
| Collector | 日志确认进程启动,无持续 busy |
| 宏 | URL、用户名、Secret 密码准确 |
| 模板 | 使用当前版本系统模板,无旧模板冲突 |
| 发现 | ESXi、VM、Datastore 数量与 vCenter 基本一致 |
| 数据 | 关键性能和状态持续更新 |
| 告警 | 测试告警、恢复、通知和维护期正常 |
| 容量 | 队列、数据库、VMware cache 有余量 |
| 安全 | 无管理员凭据,宏权限与轮换机制明确 |
十四、总结
使用 Zabbix 监控 vCenter 的核心并不复杂:创建只读账号、启用 VMware collectors、为 vCenter 主机链接正确模板并填写 URL/用户名/密码宏,然后等待低级别发现自动生成 ESXi、虚拟机和数据存储监控对象。真正决定效果的是账号权限、模板版本、采集容量和告警降噪。
上线时不要只验证“有数据”,还要验证资源数量、关键指标、故障通知、恢复通知、维护期和容量趋势。先接入一个测试 vCenter,完成一周基线观察,再逐步接入生产环境,能显著降低告警风暴和数据库容量失控的风险。
官方参考:Zabbix 7.4 VMware monitoring、Zabbix VMware integrations。模板名称与宏可能随版本调整,具体以当前 Zabbix 前端自带模板和官方 README 为准。
👉 相关阅读:Zabbix 与 vSphere 企业运维
🚀 IT峰哥软件库
更多 Zabbix、VMware、服务器监控和企业信息化实战资料,可访问 IT峰哥软件库 获取。