VMwareZabbixMonitoring Tutorial

How to Monitor VMware ESXi with Zabbix

Configure native VMware monitoring in Zabbix to discover ESXi hypervisors, vCenter inventory and virtual machines, then track availability, resource usage, datastore capacity and infrastructure health.

Zabbix monitoring dashboard for VMware ESXi and vCenter infrastructure
Zabbix monitoring for VMware ESXi, vCenter and virtual machines

Monitoring VMware infrastructure is essential for identifying host failures, resource pressure, datastore capacity problems and virtual machine performance issues before they affect workloads. Zabbix includes native VMware monitoring capabilities, so administrators can monitor VMware vCenter and ESXi without building a custom script-based integration.

This guide explains how to configure VMware monitoring in Zabbix, connect it to vCenter or a standalone ESXi host, use the built-in VMware templates, discover hypervisors and virtual machines, and validate that metrics are being collected. The examples use the native VMware integration and template workflow. Menu labels and template names can differ between Zabbix releases, so always select the template set that matches your installed Zabbix version.

Key Takeaways

  • Zabbix has built-in VMware templates for vCenter and ESXi monitoring, including low-level discovery of hypervisors and virtual machines.
  • The VMware integration collects data through VMware web services using SOAP; Zabbix VMware collector processes gather and cache the data.
  • The monitoring endpoint uses the VMware SDK URL, normally https://vcenter.example.com/sdk or https://esxi.example.com/sdk.
  • Configure StartVMwareCollectors and ensure the Zabbix server build includes the required libxml2 and libcurl support.
  • Use a dedicated read-only VMware account and the permissions required by the template documentation for your Zabbix release.
  • For a vCenter-managed environment, monitoring through vCenter is usually the most useful starting point because it provides inventory-wide discovery.

How Zabbix VMware Monitoring Works

Zabbix uses its VMware monitoring subsystem to communicate with VMware services. VMware collector processes request configuration and performance information from the VMware API, process the returned data and store it in Zabbix shared memory. Zabbix poller processes then retrieve the required values using VMware monitoring item keys.

With the built-in VMware templates, Zabbix can use low-level discovery to find VMware hypervisors and virtual machines and create monitored hosts from predefined host prototypes. This reduces the need to manually create a Zabbix host for every discovered VM.

High-level data flow

  1. Zabbix server or proxy is configured for VMware data collection.
  2. Zabbix connects to the VMware SDK endpoint on vCenter or ESXi.
  3. VMware collector processes retrieve inventory and performance data.
  4. VMware discovery rules identify hypervisors and virtual machines.
  5. Templates create items, triggers and graphs for the discovered objects.
  6. Dashboards and notifications present availability, capacity and performance information.

For most vCenter-managed environments, start by monitoring the vCenter endpoint. This provides a central view of inventory and enables discovery across the managed environment. Direct ESXi monitoring can be useful for standalone hosts or targeted troubleshooting, but it may not provide the same centralized inventory context as vCenter.

Prerequisites and Recommended Architecture

ComponentRequirement or recommendation
ZabbixUse a supported Zabbix release and import or select the VMware templates shipped for that same release.
VMware platformvCenter Server or ESXi/vSphere endpoint supported by the installed Zabbix version. Zabbix documentation lists VMware vCenter/vSphere 5.1 as the minimum for its VMware monitoring feature.
Network connectivityZabbix data-collection component must reach the VMware SDK endpoint over HTTPS, normally TCP 443.
API accountDedicated account with the read permissions required by the template and VMware version.
VMware collectorsAt least one VMware collector process; size the number based on monitored VMware services and collection intervals.
Build dependenciesZabbix server build must include VMware monitoring support, including libxml2 and libcurl.
Time and certificatesKeep clocks synchronized and use trusted TLS certificates for the VMware SDK endpoint.
Server or proxy placement: Decide which Zabbix data-collection component will perform VMware polling based on your topology and the documentation for your Zabbix release. Ensure that the component actually assigned to collect VMware data has the required VMware collector configuration and network access. Do not assume that installing a Zabbix agent on each ESXi host is required for the native VMware API integration.

Step 1: Create a Dedicated VMware Monitoring Account

Use a dedicated service account instead of embedding a personal administrator account in Zabbix. Assign only the permissions required for the VMware inventory and performance information you intend to collect.

  1. Sign in to the vSphere Client using an account authorized to manage users and permissions.
  2. Create a dedicated account in the identity source used by your vCenter environment, following your organization’s account policy.
  3. Assign the least-privilege role required for read-only monitoring.
  4. For the current Zabbix VMware template documentation, verify the required membership and permissions. The template guidance identifies SystemConfiguration.ReadOnly and vStatsGroup for a separate monitoring user.
  5. Apply the permissions at the appropriate vCenter scope so the account can read the inventory you want Zabbix to discover.
  6. Test the account by signing in or validating access according to your VMware security procedures.
Permission warning: VMware permissions and vStats requirements can differ by vCenter version, template release and enabled counters. Follow the documentation shipped with your exact Zabbix template. Do not grant Global Administrator or full vCenter Administrator privileges merely to make monitoring work.

Step 2: Configure Zabbix VMware Collectors

VMware monitoring requires the Zabbix server to be built with the required libraries and configured to start VMware collector processes. Verify this before adding the VMware host in the frontend.

2.1 Verify VMware support in the Zabbix build

Use the Zabbix server configuration or build information available in your installation to confirm that VMware monitoring support is present. Official Zabbix setup instructions specify compiling with:

--with-libxml2
--with-libcurl

If you installed Zabbix from a vendor-supported package repository, check the package build features and distribution package documentation rather than rebuilding it automatically.

2.2 Set StartVMwareCollectors

Open the Zabbix server configuration file, commonly /etc/zabbix/zabbix_server.conf on Linux package installations. Locate or add the VMware collector parameter:

StartVMwareCollectors=2

This is an example starting value for a small environment with one monitored VMware service, not a universal sizing rule. Zabbix documentation gives guidance that collector count should generally be at least 2 and should not exceed twice the number of monitored VMware services; the appropriate value also depends on inventory size and collection frequency.

Other VMware-related parameters you may need to tune include:

VMwareCacheSize=64M
VMwareFrequency=60
VMwarePerfFrequency=60
VMwareTimeout=10

These are illustrative values only. Review the defaults and parameter ranges in the configuration reference for your installed Zabbix release. Increase cache and collector capacity only after reviewing queueing, VMware response times and server resource use.

2.3 Restart and verify Zabbix server

After backing up the configuration file and making the change, validate the configuration using the service’s supported checks, then restart the Zabbix server during an appropriate maintenance window.

sudo systemctl restart zabbix-server
sudo systemctl status zabbix-server --no-pager

These commands apply to common systemd-based Linux package installations. Service names and service managers vary by operating system and deployment method. Check the Zabbix server log for startup errors related to VMware collectors, missing libraries or invalid configuration parameters.

Step 3: Add VMware vCenter or ESXi as a Host in Zabbix

Once VMware collectors are running, create a host object in the Zabbix frontend to represent the VMware API endpoint.

  1. Sign in to the Zabbix frontend with an account that can configure hosts.
  2. Navigate to Data collection → Hosts (the exact menu label can differ by version).
  3. Select Create host.
  4. Enter a clear host name, such as vCenter-Production or ESXi-Standalone-01.
  5. Assign the host to an appropriate host group, for example VMware Infrastructure.
  6. Do not add an agent interface solely for the VMware API connection; the VMware endpoint is configured through the VMware macros or host wizard fields.
  7. Save the host and continue with the VMware connection details.

For a vCenter-managed cluster, use the vCenter SDK endpoint. For a standalone ESXi host, use that ESXi host’s SDK endpoint.

Step 4: Configure VMware Connection Macros

The VMware templates use host macros to store the service URL and authentication details. The traditional macro names are:

MacroExample valuePurpose
{$VMWARE.URL}https://vcenter.example.com/sdkVMware SDK service URL.
{$VMWARE.USERNAME}zbx-vmware-monitorDedicated monitoring account.
{$VMWARE.PASSWORD}Stored securely in ZabbixPassword for the monitoring account.
  1. Open the host configuration and locate Macros or the VMware template configuration fields.
  2. Add the VMware URL, including the /sdk path.
  3. Enter the monitoring username.
  4. Enter the password and mark it as a secret or password-type macro if the frontend offers that option.
  5. Save the configuration.
Security: Never paste real passwords into screenshots, public documentation, tickets or shared configuration examples. Restrict who can view and edit host macros, use a dedicated account, rotate credentials according to policy and protect Zabbix database backups.

Recent Zabbix versions may expose VMware connection values through template wizard fields rather than requiring administrators to type every macro manually. Use the setup workflow provided by the template installed with your Zabbix version.

Step 5: Link the Correct VMware Templates

Zabbix provides ready-to-use VMware template sets. The template names and compatibility labels depend on the Zabbix release. In current template sets, the principal templates include:

TemplateRole
VMware / VMware by HTTP (release naming varies)Parent template for the VMware service endpoint and discovery rules.
VMware HypervisorCollects discovered or manually linked ESXi hypervisor metrics.
VMware GuestCollects metrics for discovered virtual machines.
VMware FQDN template setUses FQDN-based identifiers where its guest naming and VMware Tools prerequisites are met.
  1. Open the VMware endpoint host in the Zabbix frontend.
  2. Go to the Templates section.
  3. Click Select and search for the VMware template set matching your installed Zabbix version.
  4. Link the parent VMware template to the vCenter or ESXi endpoint host.
  5. Review the template’s required connection fields and macros.
  6. Save the host configuration.

The VMware Guest and VMware Hypervisor templates are normally used by low-level discovery and should not be manually linked to the parent vCenter host in a standard discovery deployment. The hypervisor template can also be manually linked in specific standalone-host workflows when its required hypervisor UUID macro is configured.

Template version matters: Do not import a template from the Zabbix development branch or another major release into a production server without checking compatibility. Use the templates shipped with your Zabbix release or the matching official template repository branch.

Step 6: Verify VMware Discovery and Metrics

After saving the host, allow the VMware discovery rules and data collection intervals to run. Initial discovery may take longer in large vCenter inventories.

Check latest data

  1. Open Monitoring → Latest data.
  2. Filter by the VMware endpoint host.
  3. Check whether VMware-related discovery and collection items are supported and receiving values.
  4. Review the discovered hosts list for ESXi hypervisors and virtual machines.
  5. Open a discovered hypervisor or VM and confirm that its template and latest data are present.

What can Zabbix monitor?

AreaExample monitoring information
vCenter inventoryDiscovered datacenters, clusters, hosts and virtual machines.
ESXi hypervisorsHost availability, CPU and memory utilization, hardware sensor discovery where enabled, and host-level status.
Virtual machinesPower state, virtual CPU count, memory configuration, resource usage and guest-related inventory information.
DatastoresCapacity, free space and datastore discovery.
VM virtual hardwareVirtual disk and network interface discovery and associated performance information, depending on the template and counters available.
Alarms and healthVMware alarm information and hardware health data where supported by the VMware API, template and permissions.

Exact metrics depend on the Zabbix template version, VMware API counters, vCenter configuration and permissions. Do not assume every possible vSphere performance counter is collected by default.

Step 7: Build Useful VMware Alerts

Start with a small set of actionable alerts, then expand after validating normal operating behavior. The built-in VMware templates include predefined items, discovery rules and triggers, but production thresholds should reflect the workload and operational policy.

Alert categorySuggested conditionOperational response
ESXi host unavailableHost reachability or VMware API data collection fails beyond the agreed interval.Check host power, management network, DNS, certificates and vCenter connectivity.
Datastore capacityFree space crosses warning and critical thresholds.Review growth, snapshots, thin-provisioned disks and capacity expansion options.
Host CPU pressureSustained CPU utilization or contention exceeds workload-specific limits.Review CPU ready/co-stop indicators, consolidation and workload scheduling.
Host memory pressureMemory utilization or contention remains high.Review ballooning, swapping, VM reservations and host capacity.
VM power stateCritical VM is unexpectedly powered off.Confirm maintenance activity, automation events and application owner status.
Hardware healthSupported sensor or health status reports warning/critical.Review iDRAC/iLO or vendor hardware management logs and physical components.

Use maintenance windows and dependencies to reduce alert noise during planned host patching, VM migrations and datastore maintenance. Avoid setting a single CPU or memory threshold for every workload without considering its normal operating profile.

Troubleshooting Zabbix VMware Monitoring

1. VMware items show “Not supported”

  • Confirm that the VMware SDK URL includes /sdk.
  • Check DNS resolution and TCP 443 connectivity from the actual Zabbix data-collection component.
  • Verify the username, password and VMware permissions.
  • Check TLS certificate validity and trust. Do not permanently disable certificate verification to hide a certificate problem.
  • Review Zabbix server logs for VMware API or collector errors.

2. No hypervisors or VMs are discovered

  • Confirm the parent VMware template is linked to the correct endpoint host.
  • Check that the endpoint is vCenter if you expect inventory-wide discovery.
  • Review the discovery rule status and last check time.
  • Verify the monitoring account can read the relevant datacenter, cluster, host and VM inventory.
  • Check whether discovery filters or power-state macros exclude the expected VMs.

3. VMware collector processes are not running

  • Check that StartVMwareCollectors is greater than zero in the active configuration file.
  • Confirm the Zabbix build includes libxml2 and libcurl support.
  • Check for configuration syntax errors and restart the correct Zabbix component.
  • Review logs for missing libraries, memory allocation or API connection failures.

4. Datastore capacity values are missing

Zabbix documentation notes that datastore capacity monitoring may require the VMware vCenter advanced setting vpxd.stats.maxQueryMetrics to be at least 64. Check the official Zabbix VMware monitoring documentation and applicable VMware guidance before changing this setting. Apply configuration changes under change control and verify their effect.

5. Monitoring is slow or data arrives late

  • Review the number of VMware collector processes and the number of monitored VMware services.
  • Inspect VMware cache utilization, collector busy time and Zabbix queue statistics.
  • Review VMwareFrequency, VMwarePerfFrequency, VMwareCacheSize and VMwareTimeout against the environment size.
  • Check vCenter API response time and the scope of discovered inventory.
  • Increase resources or adjust collection intervals based on measured bottlenecks, not guesswork.

Security and Operational Best Practices

  • Use a dedicated VMware monitoring identity with least-privilege permissions.
  • Protect VMware credentials stored in Zabbix macros and limit access to host configuration.
  • Use valid TLS certificates and keep DNS and time synchronization healthy.
  • Monitor vCenter as a central endpoint for vCenter-managed environments; add direct ESXi monitoring only where it provides operational value.
  • Use a Zabbix proxy when network segmentation, site locality or scale makes it appropriate, and confirm VMware collector support and configuration for your deployed version.
  • Size VMware collectors and caches based on measured inventory and performance collection load.
  • Use maintenance windows, trigger dependencies and sensible thresholds to control alert fatigue.
  • Test template updates in a non-production Zabbix environment before deploying them broadly.
  • Document the Zabbix version, template version, VMware endpoint, account permissions and collection settings.

Conclusion

Zabbix provides native VMware monitoring that can discover vCenter inventory, ESXi hypervisors and virtual machines without relying on a separate collection script. The essential setup steps are to enable VMware collector processes, create a least-privilege VMware monitoring account, add the SDK endpoint to Zabbix, configure the VMware connection macros and link the matching built-in template.

After discovery begins, validate latest data and tune collection frequency, cache size and alerts to match the scale of your vSphere environment. A carefully configured Zabbix deployment gives infrastructure teams a central view of VMware availability, performance and capacity while keeping monitoring permissions and operational overhead under control.

Official Documentation and References

VMC
About the Author

Khurram Shahzad — Hybrid Cloud & Virtualization Engineer

Khurram writes about VMware virtualization, hybrid cloud, Linux, backup and enterprise infrastructure. VMoreCloud focuses on practical technical tutorials, configuration guidance and technology updates for IT professionals and system administrators.

Visit VMoreCloud

Share This Article

VMware ESXiZabbixVMware MonitoringvCenterInfrastructure MonitoringVirtualizationDatastore MonitoringVMware Templates

Leave a Reply

Your email address will not be published. Required fields are marked *