Available solutions
VMware
Overview
This template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.
- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
Note: VMware alarm item/trigger prototype names include the alarm entity name since template version 7.4.10. The entity name value itself is only returned by Zabbix server 7.4.12 and higher - on earlier servers, {#VMWARE.ALARMS.ENTITY.NAME} will remain unresolved.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl). - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more. - Create a new host.
- If you want to use a separate user for monitoring, make sure that the user is a member of the
SystemConfiguration.ReadOnlyandvStatsGroupgroups. Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to the host created earlier.
Note: To enable discovery of hardware sensors of VMware hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the discovered host level.
Additional resources:
- How to create a custom performance counter.
- How to get all supported counters and generate a path for the custom performance counter.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.PROXY} | Sets the HTTP proxy for script items. If this parameter is empty, then no proxy is used. |
|
| {$HTTP.TLS.VERIFY} | TLS certificate verification for script items: "none" - disabled, "peer" - verify the certificate chain and expiration, "full" - full verification. Any other value enables full verification. To override the setting for this template only, define the macro with the context "VMware", e.g. {$HTTP.TLS.VERIFY:"VMware"}. |
full |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.VM.POWERSTATE} | Possibility to filter out VMs by power state. |
poweredOn|poweredOff|suspended |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get alarms | Get alarm status. |
Simple check | vmware.alarms.get[{$VMWARE.URL}] |
| Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/7.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
| Get Overall Health VC State | Gets overall health of the system. This item works only with VMware vCenter versions above 6.5. |
Script | vmware.health.get |
| Overall Health VC State error check | Data collection error check. |
Dependent item | vmware.health.check Preprocessing
|
| Overall Health VC State | VMware Overall health of system. One of the following: - Gray: No health data is available for this service. - Green: Service is healthy. - Yellow: The service is in a healthy state, but experiencing some level of problems. - Orange: The service health is degraded. The service might have serious problems. - Red: The service is unavailable, not functioning properly, or will stop functioning soon. - Not available: The health status is unavailable (not supported on the vCenter or ESXi side). |
Dependent item | vmware.health.state Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Failed to get Overall Health VC State | Failed to get data. Check debug log for more information. |
length(last(/VMware/vmware.health.check))>0 |
Warning | |
| VMware: Overall Health VC State is not Green | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware/vmware.health.state)>0 and last(/VMware/vmware.health.state)<>6 |
Average |
LLD rule VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware alarm discovery | Discovery of alarms. |
Dependent item | vmware.alarms.discovery Preprocessing
|
Item prototypes for VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VMWARE.ALARMS.NAME} {#VMWARE.ALARMS.ENTITY.NAME} | VMware alarm status. |
Dependent item | vmware.alarms.status["{#VMWARE.ALARMS.KEY}"] Preprocessing
|
Trigger prototypes for VMware alarm discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#VMWARE.ALARMS.NAME} {#VMWARE.ALARMS.ENTITY.NAME} | '{#VMWARE.ALARMS.DESC}' |
last(/VMware/vmware.alarms.status["{#VMWARE.ALARMS.KEY}"])<>-1 |
Not_classified |
LLD rule VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware cluster discovery | Discovery of clusters. |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Status of [{#CLUSTER.NAME}] cluster | VMware cluster status. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for VMware cluster discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The [{#CLUSTER.NAME}] status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, when resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware: The [{#CLUSTER.NAME}] status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all the resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | IOPS for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
Trigger prototypes for VMware datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule VMware hypervisor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware hypervisor discovery | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule VMware VM discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware VM discovery | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.VM.FS.PFREE.MIN.WARN} | VMware guest free space threshold for the warning trigger. |
20 |
| {$VMWARE.VM.FS.PFREE.MIN.CRIT} | VMware guest free space threshold for the critical trigger. |
10 |
| {$VMWARE.VM.FS.TRIGGER.USED} | VMware guest used free space trigger. Set to "1"/"0" to enable or disable the trigger. |
0 |
| {$VMWARE.HYPERVISOR.MAINTENANCE} | If the hypervisor is in maintenance mode, all other problems on the VM will be suppressed automatically. Set to "1"/"0" to enable or disable this feature. |
1 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Snapshot consolidation needed | Displays whether snapshot consolidation is needed or not. One of the following: - True; - False. |
Simple check | vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot count | Snapshot count of the guest VM. |
Dependent item | vmware.vm.snapshot.count Preprocessing
|
| Get snapshots | Snapshots of the guest VM. |
Simple check | vmware.vm.snapshot.get[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot latest date | Latest snapshot date of the guest VM. |
Dependent item | vmware.vm.snapshot.latestdate Preprocessing
|
| VM state | VMware virtual machine state. One of the following: - Not running; - Resetting; - Running; - Shutting down; - Standby; - Unknown. |
Simple check | vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware Tools status | Monitoring of VMware Tools. One of the following: - Guest tools executing scripts: VMware Tools is starting. - Guest tools not running: VMware Tools is not running. - Guest tools running: VMware Tools is running. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status] Preprocessing
|
| VMware Tools version | Monitoring of the VMware Tools version. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},version] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| CPU ready | Time that the VM was ready, but unable to get scheduled to run on the physical CPU during the last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds). |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the VM is current running on, as well as limits configured on the VM itself or any parent resource pool. Valid while the VM is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor maintenance mode | Hypervisor maintenance mode. One of the following: - Normal mode; - Maintenance mode. |
Simple check | vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage | The amount of host physical memory allocated to the VM, accounting for the amount saved from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Power state | The current power state of the VM. One of the following: - Powered off; - Powered on; - Suspended. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Committed storage space | Total storage space, in bytes, committed to this VM across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uncommitted storage space | Additional storage space, in bytes, potentially used by this VM on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Unshared storage space | Total storage space, in bytes, occupied by the VM across all datastores that is not shared with any other VM. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Boot time | System boot time. |
Simple check | vmware.vm.property[{$VMWARE.URL},{$VMWARE.VM.UUID},runtime.bootTime] Preprocessing
|
| Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage in percent | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU latency in percent | Percentage of time the VM is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU readiness latency in percent | Percentage of time that the virtual machine was ready, but was unable to get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU swap-in latency in percent | Percentage of CPU time spent waiting for a swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). Data is collected if Guest OS Add-ons (VMware Tools) are installed. |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: Snapshot consolidation needed | Snapshot consolidation needed. |
last(/VMware Guest/vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}])=0 |
Average | Manual close: Yes Depends on:
|
| VMware Guest: VM is not running | VMware virtual machine is not running. |
last(/VMware Guest/vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}]) <> 2 |
Average | Depends on:
|
| VMware Guest: VMware Tools is not running | VMware Tools is not running on the VM. |
last(/VMware Guest/vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status]) = 1 |
Warning | Depends on:
|
| VMware Guest: Hypervisor is in the maintenance mode | Hypervisor is in the maintenance mode. All other problem on the host will be suppressed. |
last(/VMware Guest/vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}])=1 and {$VMWARE.HYPERVISOR.MAINTENANCE}=1 |
Info | |
| VMware Guest: VM has been restarted | Uptime is less than 10 minutes. |
(now() - last(/VMware Guest/vmware.vm.property[{$VMWARE.URL},{$VMWARE.VM.UUID},runtime.bootTime]) < 10m) and last(/VMware Guest/vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}]) = 1 |
Warning | Manual close: Yes Depends on:
|
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of bytes received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Number of bytes transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Network utilization on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network utilization (combined transmit and receive rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] |
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average number of bytes read from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of reads from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of bytes written to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of writes to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of outstanding read requests to the disk [{#DISKDESC}] | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average number of outstanding write requests to the disk [{#DISKDESC}] | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average write latency to the disk [{#DISKDESC}] | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average read latency from the disk [{#DISKDESC}] | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Free disk space on [{#FSNAME}] | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| Free disk space on [{#FSNAME}] (percentage) | VMware virtual machine file system statistics (percentage). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| Total disk space on [{#FSNAME}] | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| Used disk space on [{#FSNAME}] | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Trigger prototypes for Mounted filesystem discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: [{#FSNAME}]: Disk space is critically low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.CRIT:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Average | Manual close: Yes Depends on:
|
| VMware Guest: [{#FSNAME}]: Disk space is low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.WARN:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Warning | Manual close: Yes Depends on:
|
VMware Hypervisor
Overview
This template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn't require any external scripts.
This template can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
To use this template as manually linked to a host, attach it to the host and manually set the value of the {$VMWARE.HV.UUID} macro.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
To use this template as manually linked to a host:
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl). - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more. - Create a new host.
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.
- Run the following command and specify the UUID in the macro
{$VMWARE.HV.UUID}:
vim-cmd hostsvc/hostsummary | grep uuid
- Add the agent interface on the host with the address (IP or DNS) of the VMware hypervisor.
- Link the template to the host created earlier.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.HV.UUID} | UUID of hypervisor. |
|
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable the monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Connection state | VMware hypervisor connection state. One of the following: - Connected; - Disconnected; - Not responding. |
Simple check | vmware.hv.connectionstate[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Number of errors received | VMware hypervisor network input statistics (errors). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Number of broadcasts received | VMware hypervisor network input statistics (broadcasts). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped received packets | VMware hypervisor network input statistics (packets dropped). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of broadcasts transmitted | VMware hypervisor network output statistics (broadcasts). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped transmitted packets | VMware hypervisor network output statistics (packets dropped). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of errors transmitted | VMware hypervisor network output statistics (errors). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. One of the following: - Down; - Up. |
Simple check | icmpping[] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU utilization | CPU utilization as a percentage during the interval depends on power management or hyper-threading. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and the number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Overall status | The overall alarm status of the host. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Get sensors | Master item for sensor data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Hypervisor is down | The service is unavailable or is not accepting ICMP pings. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware Hypervisor: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of VMware hypervisor network interfaces. |
Simple check | vmware.hv.net.if.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| [{#IFNAME}] network interface speed | VMware hypervisor network interface speed. |
Simple check | vmware.hv.network.linkspeed[{$VMWARE.URL},{$VMWARE.HV.UUID},{#IFNAME}] Preprocessing
|
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | Average IOPS for a read operation from the datastore. |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | Average IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Multipath count for datastore [{#DATASTORE}] | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware Hypervisor: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware Hypervisor: The multipath count has been changed | The number of available datastore paths is less than registered ( |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number discovery | VMware hypervisor serial number discovery. This item works only with VMware hypervisor versions above 6.7. |
Dependent item | vmware.hv.serial.number.discovery Preprocessing
|
Item prototypes for Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number | VMware hypervisor serial number. |
Simple check | vmware.hv.hw.serialnumber[{$VMWARE.URL},{#VMWARE.HV.UUID}] Preprocessing
|
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Health state rollup | The host's Rollup Health State sensor value. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=3 |
High | Depends on:
|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=2 |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware Hypervisor: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware
Overview
This template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.
- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
Requirements
Zabbix version: 7.2 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more - Create a new host
- If you want to use a separate user for monitoring, make sure that the user is a member of the
SystemConfiguration.ReadOnlyandvStatsGroupgroups Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to the host created earlier
Note: To enable discovery of hardware sensors of VMware hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the discovered host level.
Additional resources:
- How to create a custom performance counter
- How to get all supported counters and generate a path for the custom performance counter
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.PROXY} | Sets the HTTP proxy for script items. If this parameter is empty, then no proxy is used. |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.VM.POWERSTATE} | Possibility to filter out VMs by power state. |
poweredOn|poweredOff|suspended |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get alarms | Get alarm status. |
Simple check | vmware.alarms.get[{$VMWARE.URL}] |
| Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/7.2/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
| Get Overall Health VC State | Gets overall health of the system. This item works only with VMware vCenter versions above 6.5. |
Script | vmware.health.get |
| Overall Health VC State error check | Data collection error check. |
Dependent item | vmware.health.check Preprocessing
|
| Overall Health VC State | VMware Overall health of system. One of the following: - Gray: No health data is available for this service. - Green: Service is healthy. - Yellow: The service is in a healthy state, but experiencing some level of problems. - Orange: The service health is degraded. The service might have serious problems. - Red: The service is unavailable, not functioning properly, or will stop functioning soon. - Not available: The health status is unavailable (not supported on the vCenter or ESXi side). |
Dependent item | vmware.health.state Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Failed to get Overall Health VC State | Failed to get data. Check debug log for more information. |
length(last(/VMware/vmware.health.check))>0 |
Warning | |
| VMware: Overall Health VC State is not Green | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware/vmware.health.state)>0 and last(/VMware/vmware.health.state)<>6 |
Average |
LLD rule VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware alarm discovery | Discovery of alarms. |
Dependent item | vmware.alarms.discovery Preprocessing
|
Item prototypes for VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VMWARE.ALARMS.NAME} | VMware alarm status. |
Dependent item | vmware.alarms.status["{#VMWARE.ALARMS.KEY}"] Preprocessing
|
Trigger prototypes for VMware alarm discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#VMWARE.ALARMS.NAME} | {#VMWARE.ALARMS.DESC} |
last(/VMware/vmware.alarms.status["{#VMWARE.ALARMS.KEY}"])<>-1 |
Not_classified |
LLD rule VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware cluster discovery | Discovery of clusters. |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Status of [{#CLUSTER.NAME}] cluster | VMware cluster status. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for VMware cluster discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The [{#CLUSTER.NAME}] status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, when resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware: The [{#CLUSTER.NAME}] status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all the resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | IOPS for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
Trigger prototypes for VMware datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule VMware hypervisor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware hypervisor discovery | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule VMware VM discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware VM discovery | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.VM.FS.PFREE.MIN.WARN} | VMware guest free space threshold for the warning trigger. |
20 |
| {$VMWARE.VM.FS.PFREE.MIN.CRIT} | VMware guest free space threshold for the critical trigger. |
10 |
| {$VMWARE.VM.FS.TRIGGER.USED} | VMware guest used free space trigger. Set to "1"/"0" to enable or disable the trigger. |
0 |
| {$VMWARE.HYPERVISOR.MAINTENANCE} | If the hypervisor is in maintenance mode, all other problems on the VM will be suppressed automatically. Set to "1"/"0" to enable or disable this feature. |
1 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Snapshot consolidation needed | Displays whether snapshot consolidation is needed or not. One of the following: - True; - False. |
Simple check | vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot count | Snapshot count of the guest VM. |
Dependent item | vmware.vm.snapshot.count Preprocessing
|
| Get snapshots | Snapshots of the guest VM. |
Simple check | vmware.vm.snapshot.get[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot latest date | Latest snapshot date of the guest VM. |
Dependent item | vmware.vm.snapshot.latestdate Preprocessing
|
| VM state | VMware virtual machine state. One of the following: - Not running; - Resetting; - Running; - Shutting down; - Standby; - Unknown. |
Simple check | vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware Tools status | Monitoring of VMware Tools. One of the following: - Guest tools executing scripts: VMware Tools is starting. - Guest tools not running: VMware Tools is not running. - Guest tools running: VMware Tools is running. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status] Preprocessing
|
| VMware Tools version | Monitoring of the VMware Tools version. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},version] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| CPU ready | Time that the VM was ready, but unable to get scheduled to run on the physical CPU during the last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds). |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the VM is current running on, as well as limits configured on the VM itself or any parent resource pool. Valid while the VM is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor maintenance mode | Hypervisor maintenance mode. One of the following: - Normal mode; - Maintenance mode. |
Simple check | vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage | The amount of host physical memory allocated to the VM, accounting for the amount saved from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Power state | The current power state of the VM. One of the following: - Powered off; - Powered on; - Suspended. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Committed storage space | Total storage space, in bytes, committed to this VM across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uncommitted storage space | Additional storage space, in bytes, potentially used by this VM on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Unshared storage space | Total storage space, in bytes, occupied by the VM across all datastores that is not shared with any other VM. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage in percent | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU latency in percent | Percentage of time the VM is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU readiness latency in percent | Percentage of time that the virtual machine was ready, but was unable to get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU swap-in latency in percent | Percentage of CPU time spent waiting for a swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: Snapshot consolidation needed | Snapshot consolidation needed. |
last(/VMware Guest/vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}])=0 |
Average | Manual close: Yes Depends on:
|
| VMware Guest: VM is not running | VMware virtual machine is not running. |
last(/VMware Guest/vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}]) <> 2 |
Average | Depends on:
|
| VMware Guest: VMware Tools is not running | VMware Tools is not running on the VM. |
last(/VMware Guest/vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status]) = 1 |
Warning | Depends on:
|
| VMware Guest: Hypervisor is in the maintenance mode | Hypervisor is in the maintenance mode. All other problem on the host will be suppressed. |
last(/VMware Guest/vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}])=1 and {$VMWARE.HYPERVISOR.MAINTENANCE}=1 |
Info | |
| VMware Guest: VM has been restarted | Uptime is less than 10 minutes. |
(between(last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}]),1,10m)=1 or between(last(/VMware Guest/vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}]),1,10m)=1) and last(/VMware Guest/vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}]) = 1 |
Warning | Manual close: Yes Depends on:
|
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of bytes received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Number of bytes transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Network utilization on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network utilization (combined transmit and receive rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] |
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average number of bytes read from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of reads from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of bytes written to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of writes to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of outstanding read requests to the disk [{#DISKDESC}] | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average number of outstanding write requests to the disk [{#DISKDESC}] | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average write latency to the disk [{#DISKDESC}] | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average read latency from the disk [{#DISKDESC}] | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Free disk space on [{#FSNAME}] | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| Free disk space on [{#FSNAME}] (percentage) | VMware virtual machine file system statistics (percentage). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| Total disk space on [{#FSNAME}] | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| Used disk space on [{#FSNAME}] | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Trigger prototypes for Mounted filesystem discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: [{#FSNAME}]: Disk space is critically low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.CRIT:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Average | Manual close: Yes Depends on:
|
| VMware Guest: [{#FSNAME}]: Disk space is low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.WARN:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Warning | Manual close: Yes Depends on:
|
VMware Hypervisor
Overview
This template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn't require any external scripts.
This template can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
To use this template as manually linked to a host, attach it to the host and manually set the value of the {$VMWARE.HV.UUID} macro.
Requirements
Zabbix version: 7.2 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
To use this template as manually linked to a host:
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more - Create a new host
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.
- Run the following command and specify the UUID in the macro
{$VMWARE.HV.UUID}:
vim-cmd hostsvc/hostsummary | grep uuid
- Add the agent interface on the host with the address (IP or DNS) of the VMware hypervisor
- Link the template to the host created earlier
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set to "true"/"false" to enable or disable the monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.HV.UUID} | UUID of hypervisor. |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Connection state | VMware hypervisor connection state. One of the following: - Connected; - Disconnected; - Not responding. |
Simple check | vmware.hv.connectionstate[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Number of errors received | VMware hypervisor network input statistics (errors). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Number of broadcasts received | VMware hypervisor network input statistics (broadcasts). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped received packets | VMware hypervisor network input statistics (packets dropped). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of broadcasts transmitted | VMware hypervisor network output statistics (broadcasts). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped transmitted packets | VMware hypervisor network output statistics (packets dropped). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of errors transmitted | VMware hypervisor network output statistics (errors). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. One of the following: - Down; - Up. |
Simple check | icmpping[] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU utilization | CPU utilization as a percentage during the interval depends on power management or hyper-threading. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and the number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Overall status | The overall alarm status of the host. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Get sensors | Master item for sensor data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Hypervisor is down | The service is unavailable or is not accepting ICMP pings. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware Hypervisor: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of VMware hypervisor network interfaces. |
Simple check | vmware.hv.net.if.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| [{#IFNAME}] network interface speed | VMware hypervisor network interface speed. |
Simple check | vmware.hv.network.linkspeed[{$VMWARE.URL},{$VMWARE.HV.UUID},{#IFNAME}] Preprocessing
|
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | Average IOPS for a read operation from the datastore. |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | Average IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Multipath count for datastore [{#DATASTORE}] | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware Hypervisor: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware Hypervisor: The multipath count has been changed | The number of available datastore paths is less than registered ( |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number discovery | VMware hypervisor serial number discovery. This item works only with VMware hypervisor versions above 6.7. |
Dependent item | vmware.hv.serial.number.discovery Preprocessing
|
Item prototypes for Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number | VMware hypervisor serial number. |
Simple check | vmware.hv.hw.serialnumber[{$VMWARE.URL},{#VMWARE.HV.UUID}] Preprocessing
|
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Health state rollup | The host's Rollup Health State sensor value. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=3 |
High | Depends on:
|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=2 |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware Hypervisor: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware
Overview
This template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.
- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
Note: VMware alarm item/trigger prototype names include the alarm entity name since template version 7.0.26. The entity name value itself is only returned by Zabbix server 7.0.28 and higher - on earlier servers, {#VMWARE.ALARMS.ENTITY.NAME} will remain unresolved.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl). - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more. - Create a new host.
- If you want to use a separate user for monitoring, make sure that the user is a member of the
SystemConfiguration.ReadOnlyandvStatsGroupgroups. Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to the host created earlier.
Note: To enable discovery of hardware sensors of VMware hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the discovered host level.
Additional resources:
- How to create a custom performance counter.
- How to get all supported counters and generate a path for the custom performance counter.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.PROXY} | Sets the HTTP proxy for script items. If this parameter is empty, then no proxy is used. |
|
| {$HTTP.TLS.VERIFY} | TLS certificate verification for script items: "none" - disabled, "peer" - verify the certificate chain and expiration, "full" - full verification. Any other value enables full verification. To override the setting for this template only, define the macro with the context "VMware", e.g. {$HTTP.TLS.VERIFY:"VMware"}. |
full |
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.VM.POWERSTATE} | Possibility to filter out VMs by power state. |
poweredOn|poweredOff|suspended |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get alarms | Get alarm status. |
Simple check | vmware.alarms.get[{$VMWARE.URL}] |
| Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/7.0/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
| Get Overall Health VC State | Gets overall health of the system. This item works only with VMware vCenter versions above 6.5. |
Script | vmware.health.get |
| Overall Health VC State error check | Data collection error check. |
Dependent item | vmware.health.check Preprocessing
|
| Overall Health VC State | VMware Overall health of system. One of the following: - Gray: No health data is available for this service. - Green: Service is healthy. - Yellow: The service is in a healthy state, but experiencing some level of problems. - Orange: The service health is degraded. The service might have serious problems. - Red: The service is unavailable, not functioning properly, or will stop functioning soon. - Not available: The health status is unavailable (not supported on the vCenter or ESXi side). |
Dependent item | vmware.health.state Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Failed to get Overall Health VC State | Failed to get data. Check debug log for more information. |
length(last(/VMware/vmware.health.check))>0 |
Warning | |
| VMware: Overall Health VC State is not Green | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware/vmware.health.state)>0 and last(/VMware/vmware.health.state)<>6 |
Average |
LLD rule VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware alarm discovery | Discovery of alarms. |
Dependent item | vmware.alarms.discovery Preprocessing
|
Item prototypes for VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VMWARE.ALARMS.NAME} {#VMWARE.ALARMS.ENTITY.NAME} | VMware alarm status. |
Dependent item | vmware.alarms.status["{#VMWARE.ALARMS.KEY}"] Preprocessing
|
Trigger prototypes for VMware alarm discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#VMWARE.ALARMS.NAME} {#VMWARE.ALARMS.ENTITY.NAME} | '{#VMWARE.ALARMS.DESC}' |
last(/VMware/vmware.alarms.status["{#VMWARE.ALARMS.KEY}"])<>-1 |
Not_classified |
LLD rule VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware cluster discovery | Discovery of clusters. |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Status of [{#CLUSTER.NAME}] cluster | VMware cluster status. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for VMware cluster discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The [{#CLUSTER.NAME}] status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, when resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware: The [{#CLUSTER.NAME}] status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all the resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | IOPS for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
Trigger prototypes for VMware datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule VMware hypervisor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware hypervisor discovery | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule VMware VM discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware VM discovery | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.VM.FS.PFREE.MIN.WARN} | VMware guest free space threshold for the warning trigger. |
20 |
| {$VMWARE.VM.FS.PFREE.MIN.CRIT} | VMware guest free space threshold for the critical trigger. |
10 |
| {$VMWARE.VM.FS.TRIGGER.USED} | VMware guest used free space trigger. Set to "1"/"0" to enable or disable the trigger. |
0 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Snapshot consolidation needed | Displays whether snapshot consolidation is needed or not. One of the following: - True; - False. |
Simple check | vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot count | Snapshot count of the guest VM. |
Dependent item | vmware.vm.snapshot.count Preprocessing
|
| Get snapshots | Snapshots of the guest VM. |
Simple check | vmware.vm.snapshot.get[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot latest date | Latest snapshot date of the guest VM. |
Dependent item | vmware.vm.snapshot.latestdate Preprocessing
|
| VM state | VMware virtual machine state. One of the following: - Not running; - Resetting; - Running; - Shutting down; - Standby; - Unknown. |
Simple check | vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware Tools status | Monitoring of VMware Tools. One of the following: - Guest tools executing scripts: VMware Tools is starting. - Guest tools not running: VMware Tools is not running. - Guest tools running: VMware Tools is running. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status] Preprocessing
|
| VMware Tools version | Monitoring of the VMware Tools version. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},version] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| CPU ready | Time that the VM was ready, but unable to get scheduled to run on the physical CPU during the last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds). |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the VM is current running on, as well as limits configured on the VM itself or any parent resource pool. Valid while the VM is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage | The amount of host physical memory allocated to the VM, accounting for the amount saved from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Power state | The current power state of the VM. One of the following: - Powered off; - Powered on; - Suspended. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Committed storage space | Total storage space, in bytes, committed to this VM across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uncommitted storage space | Additional storage space, in bytes, potentially used by this VM on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Unshared storage space | Total storage space, in bytes, occupied by the VM across all datastores that is not shared with any other VM. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Boot time | System boot time. |
Simple check | vmware.vm.property[{$VMWARE.URL},{$VMWARE.VM.UUID},runtime.bootTime] Preprocessing
|
| Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage in percent | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU latency in percent | Percentage of time the VM is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU readiness latency in percent | Percentage of time that the virtual machine was ready, but was unable to get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU swap-in latency in percent | Percentage of CPU time spent waiting for a swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). Data is collected if Guest OS Add-ons (VMware Tools) are installed. |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: Snapshot consolidation needed | Snapshot consolidation needed. |
last(/VMware Guest/vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}])=0 |
Average | Manual close: Yes |
| VMware Guest: VM is not running | VMware virtual machine is not running. |
last(/VMware Guest/vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}]) <> 2 |
Average | |
| VMware Guest: VMware Tools is not running | VMware Tools is not running on the VM. |
last(/VMware Guest/vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status]) = 1 |
Warning | Depends on:
|
| VMware Guest: VM has been restarted | Uptime is less than 10 minutes. |
(now() - last(/VMware Guest/vmware.vm.property[{$VMWARE.URL},{$VMWARE.VM.UUID},runtime.bootTime]) < 10m) and last(/VMware Guest/vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}]) = 1 |
Warning | Manual close: Yes |
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of bytes received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Number of bytes transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Network utilization on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network utilization (combined transmit and receive rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] |
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average number of bytes read from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of reads from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of bytes written to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of writes to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of outstanding read requests to the disk [{#DISKDESC}] | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average number of outstanding write requests to the disk [{#DISKDESC}] | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average write latency to the disk [{#DISKDESC}] | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average read latency from the disk [{#DISKDESC}] | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Free disk space on [{#FSNAME}] | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| Free disk space on [{#FSNAME}] (percentage) | VMware virtual machine file system statistics (percentage). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| Total disk space on [{#FSNAME}] | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| Used disk space on [{#FSNAME}] | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Trigger prototypes for Mounted filesystem discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: [{#FSNAME}]: Disk space is critically low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.CRIT:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Average | Manual close: Yes |
| VMware Guest: [{#FSNAME}]: Disk space is low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.WARN:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Warning | Manual close: Yes Depends on:
|
VMware Hypervisor
Overview
This template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn't require any external scripts.
This template can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
To use this template as manually linked to a host, attach it to the host and manually set the value of the {$VMWARE.HV.UUID} macro.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
To use this template as manually linked to a host:
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl). - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more. - Create a new host.
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.
- Run the following command and specify the UUID in the macro
{$VMWARE.HV.UUID}:
vim-cmd hostsvc/hostsummary | grep uuid
- Add the agent interface on the host with the address (IP or DNS) of the VMware hypervisor.
- Link the template to the host created earlier.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set to "true"/"false" to enable or disable the monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.HV.UUID} | UUID of hypervisor. |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Connection state | VMware hypervisor connection state. One of the following: - Connected; - Disconnected; - Not responding. |
Simple check | vmware.hv.connectionstate[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Number of errors received | VMware hypervisor network input statistics (errors). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Number of broadcasts received | VMware hypervisor network input statistics (broadcasts). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped received packets | VMware hypervisor network input statistics (packets dropped). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of broadcasts transmitted | VMware hypervisor network output statistics (broadcasts). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped transmitted packets | VMware hypervisor network output statistics (packets dropped). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of errors transmitted | VMware hypervisor network output statistics (errors). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. One of the following: - Down; - Up. |
Simple check | icmpping[] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU utilization | CPU utilization as a percentage during the interval depends on power management or hyper-threading. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and the number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Overall status | The overall alarm status of the host. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Get sensors | Master item for sensor data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Hypervisor is down | The service is unavailable or is not accepting ICMP pings. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware Hypervisor: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of VMware hypervisor network interfaces. |
Simple check | vmware.hv.net.if.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| [{#IFNAME}] network interface speed | VMware hypervisor network interface speed. |
Simple check | vmware.hv.network.linkspeed[{$VMWARE.URL},{$VMWARE.HV.UUID},{#IFNAME}] Preprocessing
|
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | Average IOPS for a read operation from the datastore. |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | Average IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Multipath count for datastore [{#DATASTORE}] | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware Hypervisor: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware Hypervisor: The multipath count has been changed | The number of available datastore paths is less than registered ( |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number discovery | VMware hypervisor serial number discovery. This item works only with VMware hypervisor versions above 6.7. |
Dependent item | vmware.hv.serial.number.discovery Preprocessing
|
Item prototypes for Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number | VMware hypervisor serial number. |
Simple check | vmware.hv.hw.serialnumber[{$VMWARE.URL},{#VMWARE.HV.UUID}] Preprocessing
|
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Health state rollup | The host's Rollup Health State sensor value. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=3 |
High | Depends on:
|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=2 |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware Hypervisor: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware
Overview
This template is designed for the effortless deployment of both VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
The "VMware Hypervisor" and "VMware Guest" templates are used by discovery and normally should not be manually linked to a host. For additional information please check https://www.zabbix.com/documentation/6.4/manual/vm_monitoring
Requirements
Zabbix version: 6.4 and higher.
Tested versions
This template has been tested on:
- VMware 6.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in Zabbix server configuration file to "1" or more - Create a new host
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to host created earlier
Note: To enable discovery of hardware sensors of VMware Hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the discovered host level.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
|
| {$VMWARE.USERNAME} | VMware service user name |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to allow in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to ignore in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/6.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware: Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| VMware: Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
LLD rule Discover VMware clusters
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for Discover VMware clusters
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for Discover VMware clusters
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {#CLUSTER.NAME} status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware: The {#CLUSTER.NAME} status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule Discover VMware datastores
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware datastores | Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for Discover VMware datastores
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore free space in percentage from total. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Trigger prototypes for Discover VMware datastores
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#DATASTORE}: Free space is critically low | Datastore free space has fallen below critical threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware: {#DATASTORE}: Free space is low | Datastore free space has fallen below warning threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule Discover VMware hypervisors
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware hypervisors | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule Discover VMware VMs
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware VMs | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
|
| {$VMWARE.USERNAME} | VMware service user name |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Power state | The current power state of the virtual machine. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory usage in percents | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU latency in percents | Percentage of time the virtual machine is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU readiness latency in percents | Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU swap-in latency in percents | Percentage of CPU time spent waiting for swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: VM has been restarted | Uptime is less than 10 minutes. |
last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware: Network utilization on interface {#IFDESC} | VMware virtual machine network utilization (combined transmit-rates and receive-rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] Preprocessing
|
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware: Average number of outstanding read requests to the disk {#DISKDESC} | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average number of outstanding write requests to the disk {#DISKDESC} | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average write latency to the disk {#DISKDESC} | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average read latency to the disk {#DISKDESC} | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
VMware Hypervisor
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password. |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to allow in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to ignore in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
Simple check | icmpping[] Preprocessing
|
| VMware: Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU utilization | CPU usage as a percentage during the interval depends on power management or HT. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| VMware: Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Get sensors | Master item for sensors data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore free space in percentage from total. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree] |
| VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware: Multipath count for datastore {#DATASTORE} | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#DATASTORE}: Free space is critically low | Datastore free space has fallen below critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware: {#DATASTORE}: Free space is low | Datastore free space has fallen below warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware: The multipath count has been changed | The number of available datastore paths less than registered ({#MULTIPATH.COUNT}). |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Red" |
High | Depends on:
|
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Yellow" |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Unknown - Green - Yellow - Red |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware
Overview
For Zabbix version: 6.2 and higher
The template to monitor VMware vCenter and ESX hypervisor.
The "VMware Hypervisor" and "VMware Guest" templates are used by discovery and normally should not be manually linked to a host.
For additional information please check https://www.zabbix.com/documentation/6.2/manual/vm_monitoring
Setup
- Compile zabbix server with required options (--with-libxml2 and --with-libcurl)
- Set the StartVMwareCollectors option in Zabbix server configuration file to 1 or more
- Create a new host
- Set the host macros (on host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to host created early
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
SIMPLE | vmware.cluster.discovery[{$VMWARE.URL}] |
| Discover VMware datastores | - |
SIMPLE | vmware.datastore.discovery[{$VMWARE.URL}] |
| Discover VMware hypervisors | Discovery of hypervisors. |
SIMPLE | vmware.hv.discovery[{$VMWARE.URL}] |
| Discover VMware VMs | Discovery of guest virtual machines. |
SIMPLE | vmware.vm.discovery[{$VMWARE.URL}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/6.2/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
SIMPLE | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware | VMware: Full name | VMware service full name. |
SIMPLE | vmware.fullname[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Version | VMware service version. |
SIMPLE | vmware.version[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
SIMPLE | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
VMware Guest
Overview
For Zabbix version: 6.2 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
SIMPLE | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Mounted filesystem discovery | Discovery of all guest file systems. |
SIMPLE | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Network device discovery | Discovery of all network devices. |
SIMPLE | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
SIMPLE | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
SIMPLE | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
SIMPLE | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Datacenter name | Datacenter name of the guest VM. |
SIMPLE | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Hypervisor name | Hypervisor name of the guest VM. |
SIMPLE | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
SIMPLE | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
SIMPLE | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Private memory | Amount of memory backed by host memory and not being shared. |
SIMPLE | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
SIMPLE | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
SIMPLE | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
SIMPLE | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
SIMPLE | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Memory size | Total size of configured memory. |
SIMPLE | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Power state | The current power state of the virtual machine. |
SIMPLE | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
SIMPLE | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
SIMPLE | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
SIMPLE | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
SIMPLE | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
SIMPLE | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory usage in percents | Percentage of host physical memory that has been consumed. |
SIMPLE | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
SIMPLE | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU latency in percents | Percentage of time the virtual machine is unable to run because it is contending for access to the physical CPU(s). |
SIMPLE | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU readiness latency in percents | Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. |
SIMPLE | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU swap-in latency in percents | Percentage of CPU time spent waiting for swap-in. |
SIMPLE | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
SIMPLE | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware | VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware | VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware | VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware | VMware: Network utilization on interface {#IFDESC} | VMware virtual machine network utilization (combined transmit-rates and receive-rates) during the interval. |
SIMPLE | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] Preprocessing: - MULTIPLIER: |
| VMware | VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware | VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware | VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware | VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware | VMware: Average number of outstanding read requests to the disk {#DISKDESC} | Average number of outstanding read requests to the virtual disk during the collection interval. |
SIMPLE | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average number of outstanding write requests to the disk {#DISKDESC} | Average number of outstanding write requests to the virtual disk during the collection interval. |
SIMPLE | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average write latency to the disk {#DISKDESC} | The average time a write to the virtual disk takes. |
SIMPLE | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average read latency to the disk {#DISKDESC} | The average time a read from the virtual disk takes. |
SIMPLE | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| VMware | VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| VMware | VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: VM has been restarted | Uptime is less than 10 minutes. |
last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware Hypervisor
Overview
For Zabbix version: 6.2 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | - |
SIMPLE | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Healthcheck discovery | VMware Rollup Health State sensor discovery |
DEPENDENT | vmware.hv.healthcheck.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
SIMPLE | icmpping[] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
SIMPLE | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
SIMPLE | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU utilization | CPU usage as a percentage during the interval depends on power management or HT. |
SIMPLE | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Power usage | Current power usage. |
SIMPLE | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Power usage maximum allowed | Maximum allowed power usage. |
SIMPLE | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Datacenter name | Datacenter name of the hypervisor. |
SIMPLE | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Full name | The complete product name, including the version information. |
SIMPLE | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
SIMPLE | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU model | The CPU model. |
SIMPLE | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
SIMPLE | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU threads | Number of physical CPU threads on the host. |
SIMPLE | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Total memory | The physical memory size. |
SIMPLE | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Model | The system model identification. |
SIMPLE | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Bios UUID | The hardware BIOS identification. |
SIMPLE | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Vendor | The hardware vendor identification. |
SIMPLE | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
SIMPLE | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Used memory | Physical memory usage on the host. |
SIMPLE | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
SIMPLE | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware | VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
SIMPLE | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware | VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
SIMPLE | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Version | Dot-separated version string. |
SIMPLE | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Number of guest VMs | Number of guest virtual machines. |
SIMPLE | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware | VMware: Multipath count for datastore {#DATASTORE} | Number of available datastore paths. |
SIMPLE | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware | VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
DEPENDENT | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix raw items | VMware: Get sensors | Master item for sensors data. |
SIMPLE | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
last(/VMware Hypervisor/icmpping[])=0 |
AVERAGE | Manual close: YES |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
HIGH | |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
AVERAGE | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red |
| VMware: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
WARNING | Manual close: YES |
| VMware: The multipath count has been changed | The number of available datastore paths less than registered ({#MULTIPATH.COUNT}). |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT} |
AVERAGE | Manual close: YES |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Red" |
HIGH | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Yellow" |
AVERAGE | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red - VMware: The {$VMWARE.HV.UUID} health is Red - VMware: The {$VMWARE.HV.UUID} health is Yellow |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware
Overview
This template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.
- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
- VMware 6.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more - Create a new host
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to the host created earlier
Note: To enable discovery of hardware sensors of VMware Hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the host level.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
|
| {$VMWARE.USERNAME} | VMware service user name |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to allow in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to ignore in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/6.0/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware: Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| VMware: Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
LLD rule Discover VMware clusters
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for Discover VMware clusters
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for Discover VMware clusters
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {#CLUSTER.NAME} status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware: The {#CLUSTER.NAME} status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule Discover VMware datastores
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware datastores | Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for Discover VMware datastores
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore free space in percentage from total. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Trigger prototypes for Discover VMware datastores
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#DATASTORE}: Free space is critically low | Datastore free space has fallen below critical threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware: {#DATASTORE}: Free space is low | Datastore free space has fallen below warning threshold. |
last(/VMware/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule Discover VMware hypervisors
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware hypervisors | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule Discover VMware VMs
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware VMs | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
|
| {$VMWARE.USERNAME} | VMware service user name |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Power state | The current power state of the virtual machine. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory usage in percents | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU latency in percents | Percentage of time the virtual machine is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU readiness latency in percents | Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU swap-in latency in percents | Percentage of CPU time spent waiting for swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: VM has been restarted | Uptime is less than 10 minutes. |
last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware: Network utilization on interface {#IFDESC} | VMware virtual machine network utilization (combined transmit-rates and receive-rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] Preprocessing
|
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware: Average number of outstanding read requests to the disk {#DISKDESC} | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average number of outstanding write requests to the disk {#DISKDESC} | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average write latency to the disk {#DISKDESC} | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average read latency to the disk {#DISKDESC} | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
VMware Hypervisor
Overview
This template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn't require any external scripts.
This template can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
To use this template as manually linked to a host, attach it to the host and manually set the value of the {$VMWARE.HV.UUID} macro.
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
To use this template as manually linked to a host:
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more - Create a new host
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.
- Run the following command and specify the UUID in the macro
{$VMWARE.HV.UUID}:
vim-cmd hostsvc/hostsummary | grep uuid
- Add the agent interface on the host with the address (IP or DNS) of the VMware hypervisor
- Link the template to the host created earlier
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password. |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to allow in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to ignore in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.HV.UUID} | UUID of hypervisor. |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
Simple check | icmpping[] Preprocessing
|
| VMware: Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU utilization | CPU usage as a percentage during the interval depends on power management or HT. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| VMware: Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Get sensors | Master item for sensors data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore free space in percentage from total. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree] |
| VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware: Multipath count for datastore {#DATASTORE} | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#DATASTORE}: Free space is critically low | Datastore free space has fallen below critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware: {#DATASTORE}: Free space is low | Datastore free space has fallen below warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware: The multipath count has been changed | The number of available datastore paths less than registered ({#MULTIPATH.COUNT}). |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Red" |
High | Depends on:
|
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Yellow" |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Unknown - Green - Yellow - Red |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware
Overview
For Zabbix version: 5.4 and higher
The template to monitor VMware vCenter and ESX hypervisor.
The "VMware Hypervisor" and "VMware Guest" templates are used by discovery and normally should not be manually linked to a host.
For additional information please check https://www.zabbix.com/documentation/5.4/manual/vm_monitoring
Setup
- Compile zabbix server with required options (--with-libxml2 and --with-libcurl)
- Set the StartVMwareCollectors option in Zabbix server configuration file to 1 or more
- Create a new host
- Set the host macros (on host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to host created early
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
SIMPLE | vmware.cluster.discovery[{$VMWARE.URL}] |
| Discover VMware datastores | - |
SIMPLE | vmware.datastore.discovery[{$VMWARE.URL}] |
| Discover VMware hypervisors | Discovery of hypervisors. |
SIMPLE | vmware.hv.discovery[{$VMWARE.URL}] |
| Discover VMware VMs | Discovery of guest virtual machines. |
SIMPLE | vmware.vm.discovery[{$VMWARE.URL}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/5.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
SIMPLE | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware | VMware: Full name | VMware service full name. |
SIMPLE | vmware.fullname[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Version | VMware service version. |
SIMPLE | vmware.version[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
SIMPLE | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
VMware Guest
Overview
For Zabbix version: 5.4 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
SIMPLE | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Disk device discovery | Discovery of all disk devices. |
SIMPLE | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Mounted filesystem discovery | Discovery of all guest file systems. |
SIMPLE | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
SIMPLE | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
SIMPLE | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
SIMPLE | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Datacenter name | Datacenter name of the guest VM. |
SIMPLE | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Hypervisor name | Hypervisor name of the guest VM. |
SIMPLE | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
SIMPLE | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
SIMPLE | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Private memory | Amount of memory backed by host memory and not being shared. |
SIMPLE | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
SIMPLE | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
SIMPLE | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
SIMPLE | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
SIMPLE | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Memory size | Total size of configured memory. |
SIMPLE | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Power state | The current power state of the virtual machine. |
SIMPLE | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
SIMPLE | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
SIMPLE | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
SIMPLE | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
SIMPLE | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
SIMPLE | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory usage in percents | Percentage of host physical memory that has been consumed. |
SIMPLE | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
SIMPLE | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU latency in percents | Percentage of time the virtual machine is unable to run because it is contending for access to the physical CPU(s). |
SIMPLE | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU readiness latency in percents | Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. |
SIMPLE | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU swap-in latency in percents | Percentage of CPU time spent waiting for swap-in. |
SIMPLE | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
SIMPLE | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware | VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware | VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware | VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware | VMware: Network utilization on interface {#IFDESC} | VMware virtual machine network utilization (combined transmit-rates and receive-rates) during the interval. |
SIMPLE | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] Preprocessing: - MULTIPLIER: |
| VMware | VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware | VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware | VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware | VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware | VMware: Average number of outstanding read requests to the disk {#DISKDESC} | Average number of outstanding read requests to the virtual disk during the collection interval. |
SIMPLE | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average number of outstanding write requests to the disk {#DISKDESC} | Average number of outstanding write requests to the virtual disk during the collection interval. |
SIMPLE | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average write latency to the disk {#DISKDESC} | The average time a write to the virtual disk takes. |
SIMPLE | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average read latency to the disk {#DISKDESC} | The average time a read from the virtual disk takes. |
SIMPLE | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| VMware | VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| VMware | VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: VM has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware Hypervisor
Overview
For Zabbix version: 5.4 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | - |
SIMPLE | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Healthcheck discovery | VMware Rollup Health State sensor discovery |
DEPENDENT | vmware.hv.healthcheck.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
SIMPLE | icmpping[] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
SIMPLE | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
SIMPLE | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU utilization | CPU usage as a percentage during the interval depends on power management or HT. |
SIMPLE | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Power usage | Current power usage. |
SIMPLE | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Power usage maximum allowed | Maximum allowed power usage. |
SIMPLE | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Datacenter name | Datacenter name of the hypervisor. |
SIMPLE | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Full name | The complete product name, including the version information. |
SIMPLE | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
SIMPLE | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU model | The CPU model. |
SIMPLE | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
SIMPLE | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU threads | Number of physical CPU threads on the host. |
SIMPLE | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Total memory | The physical memory size. |
SIMPLE | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Model | The system model identification. |
SIMPLE | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Bios UUID | The hardware BIOS identification. |
SIMPLE | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Vendor | The hardware vendor identification. |
SIMPLE | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
SIMPLE | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Used memory | Physical memory usage on the host. |
SIMPLE | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
SIMPLE | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware | VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
SIMPLE | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware | VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
SIMPLE | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Version | Dot-separated version string. |
SIMPLE | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Number of guest VMs | Number of guest virtual machines. |
SIMPLE | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware | VMware: Multipath count for datastore {#DATASTORE} | Number of available datastore paths. |
SIMPLE | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware | VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
DEPENDENT | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix raw items | VMware: Get sensors | Master item for sensors data. |
SIMPLE | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
last(/VMware Hypervisor/icmpping[])=0 |
AVERAGE | Manual close: YES |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
HIGH | |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
AVERAGE | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red |
| VMware: Hypervisor has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
WARNING | Manual close: YES |
| VMware: The multipath count has been changed | The number of available datastore paths less than registered ({#MULTIPATH.COUNT}). |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT} |
AVERAGE | Manual close: YES |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Red" |
HIGH | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Yellow" |
AVERAGE | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red - VMware: The {$VMWARE.HV.UUID} health is Red - VMware: The {$VMWARE.HV.UUID} health is Yellow |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware macros
Overview
For Zabbix version: 5.4 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
Template VM VMware
Overview
For Zabbix version: 5.0 and higher
The template to monitor VMware vCenter and ESX hypervisor.
The "VMware Hypervisor" and "VMware Guest" templates are used by discovery and normally should not be manually linked to a host.
For additional information please check https://www.zabbix.com/documentation/5.0/manual/vm_monitoring
Setup
- Compile zabbix server with required options (--with-libxml2 and --with-libcurl)
- Set the StartVMwareCollectors option in Zabbix server configuration file to 1 or more
- Create a new host
- Set the host macros (on host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to host created early
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
SIMPLE | vmware.cluster.discovery[{$VMWARE.URL}] |
| Discover VMware datastores | - |
SIMPLE | vmware.datastore.discovery[{$VMWARE.URL}] |
| Discover VMware hypervisors | Discovery of hypervisors. |
SIMPLE | vmware.hv.discovery[{$VMWARE.URL}] |
| Discover VMware VMs | Discovery of guest virtual machines. |
SIMPLE | vmware.vm.discovery[{$VMWARE.URL}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/5.0/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
SIMPLE | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware | VMware: Full name | VMware service full name. |
SIMPLE | vmware.fullname[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Version | VMware service version. |
SIMPLE | vmware.version[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
SIMPLE | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Template VM VMware Guest
Overview
For Zabbix version: 5.0 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
SIMPLE | vmware.vm.net.if.discovery[{$VMWARE.URL},{HOST.HOST}] |
| Disk device discovery | Discovery of all disk devices. |
SIMPLE | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{HOST.HOST}] |
| Mounted filesystem discovery | Discovery of all guest file systems. |
SIMPLE | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{HOST.HOST}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.vm.cluster.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
SIMPLE | vmware.vm.cpu.num[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
SIMPLE | vmware.vm.cpu.ready[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
SIMPLE | vmware.vm.cpu.usage[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Datacenter name | Datacenter name of the guest VM. |
SIMPLE | vmware.vm.datacenter.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Hypervisor name | Hypervisor name of the guest VM. |
SIMPLE | vmware.vm.hv.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
SIMPLE | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
SIMPLE | vmware.vm.memory.size.compressed[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Private memory | Amount of memory backed by host memory and not being shared. |
SIMPLE | vmware.vm.memory.size.private[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
SIMPLE | vmware.vm.memory.size.shared[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
SIMPLE | vmware.vm.memory.size.swapped[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
SIMPLE | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
SIMPLE | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Memory size | Total size of configured memory. |
SIMPLE | vmware.vm.memory.size[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Power state | The current power state of the virtual machine. |
SIMPLE | vmware.vm.powerstate[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
SIMPLE | vmware.vm.storage.committed[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
SIMPLE | vmware.vm.storage.uncommitted[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
SIMPLE | vmware.vm.storage.unshared[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.vm.uptime[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{HOST.HOST},{#IFNAME},bps] |
| VMware | VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{HOST.HOST},{#IFNAME},pps] |
| VMware | VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{HOST.HOST},{#IFNAME},bps] |
| VMware | VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{HOST.HOST},{#IFNAME},pps] |
| VMware | VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{HOST.HOST},{#DISKNAME},bps] |
| VMware | VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{HOST.HOST},{#DISKNAME},ops] |
| VMware | VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{HOST.HOST},{#DISKNAME},bps] |
| VMware | VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{HOST.HOST},{#DISKNAME},ops] |
| VMware | VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{HOST.HOST},{#FSNAME},free] |
| VMware | VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{HOST.HOST},{#FSNAME},pfree] |
| VMware | VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{HOST.HOST},{#FSNAME},total] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{HOST.HOST},{#FSNAME},used] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {HOST.HOST} has been restarted (uptime < 10m) | Uptime is less than 10 minutes. |
{TEMPLATE_NAME:vmware.vm.uptime[{$VMWARE.URL},{HOST.HOST}].last()}<10m |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
Template VM VMware Hypervisor
Overview
For Zabbix version: 5.0 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | - |
SIMPLE | vmware.hv.datastore.discovery[{$VMWARE.URL},{HOST.HOST}] |
| Healthcheck discovery | VMware Rollup Health State sensor discovery |
DEPENDENT | vmware.hv.healthcheck.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
SIMPLE | icmpping[] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.hv.cluster.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
SIMPLE | vmware.hv.cpu.usage[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Datacenter name | Datacenter name of the hypervisor. |
SIMPLE | vmware.hv.datacenter.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Full name | The complete product name, including the version information. |
SIMPLE | vmware.hv.fullname[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
SIMPLE | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: CPU model | The CPU model. |
SIMPLE | vmware.hv.hw.cpu.model[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
SIMPLE | vmware.hv.hw.cpu.num[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU threads | Number of physical CPU threads on the host. |
SIMPLE | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Total memory | The physical memory size. |
SIMPLE | vmware.hv.hw.memory[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Model | The system model identification. |
SIMPLE | vmware.hv.hw.model[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Bios UUID | The hardware BIOS identification. |
SIMPLE | vmware.hv.hw.uuid[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Vendor | The hardware vendor identification. |
SIMPLE | vmware.hv.hw.vendor[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
SIMPLE | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Used memory | Physical memory usage on the host. |
SIMPLE | vmware.hv.memory.used[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
SIMPLE | vmware.hv.network.in[{$VMWARE.URL},{HOST.HOST},bps] |
| VMware | VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
SIMPLE | vmware.hv.network.out[{$VMWARE.URL},{HOST.HOST},bps] |
| VMware | VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
SIMPLE | vmware.hv.status[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.hv.uptime[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Version | Dot-separated version string. |
SIMPLE | vmware.hv.version[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Number of guest VMs | Number of guest virtual machines. |
SIMPLE | vmware.hv.vm.num[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.read[{$VMWARE.URL},{HOST.HOST},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{HOST.HOST},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{HOST.HOST},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.write[{$VMWARE.URL},{HOST.HOST},{#DATASTORE},latency] |
| VMware | VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
DEPENDENT | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | VMware: Get sensors | Master item for sensors data. |
SIMPLE | vmware.hv.sensors.get[{$VMWARE.URL},{HOST.HOST}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
{TEMPLATE_NAME:icmpping[].last()}=0 |
AVERAGE | Manual close: YES |
| VMware: The {HOST.HOST} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
{TEMPLATE_NAME:vmware.hv.status[{$VMWARE.URL},{HOST.HOST}].last()}=3 |
HIGH | |
| VMware: The {HOST.HOST} health is Yellow | One or more components in the appliance might become overloaded soon. |
{TEMPLATE_NAME:vmware.hv.status[{$VMWARE.URL},{HOST.HOST}].last()}=2 |
AVERAGE | Depends on: - VMware: The {HOST.HOST} health is Red |
| VMware: Hypervisor has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:vmware.hv.uptime[{$VMWARE.URL},{HOST.HOST}].last()}<10m |
WARNING | Manual close: YES |
| VMware: The {HOST.HOST} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
{TEMPLATE_NAME:vmware.hv.sensor.health.state[{#SINGLETON}].str("Red")}=1 |
HIGH | |
| VMware: The {HOST.HOST} health is Yellow | One or more components in the appliance might become overloaded soon. |
{TEMPLATE_NAME:vmware.hv.sensor.health.state[{#SINGLETON}].str("Yellow")}=1 |
AVERAGE | Depends on: - VMware: The {HOST.HOST} health is Red |
Feedback
Please report any issues with the template at https://support.zabbix.com
Template VM VMware macros
Overview
For Zabbix version: 5.0 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
Template VM VMware macros
Overview
For Zabbix version: 4.0
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
Template VM VMware
Overview
For Zabbix version: 4.0
The template to monitor VMware vCenter and ESX hypervisor.
The "Template VM VMware Hypervisor" and "Template VM VMware Guest" templates are used by discovery and normally should not be manually linked to a host.
For additional information please check https://www.zabbix.com/documentation/current/manual/vm_monitoring
Setup
- Compile zabbix server with required options (--with-libxml2 and --with-libcurl)
- Set the StartVMwareCollectors option in Zabbix server configuration file to 1 or more
- Create a new host
- Set the host macros (on host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to host created early
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| Template VM VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
SIMPLE | vmware.cluster.discovery[{$VMWARE.URL}] |
| Discover VMware datastores | - |
SIMPLE | vmware.datastore.discovery[{$VMWARE.URL}] |
| Discover VMware hypervisors | Discovery of hypervisors. |
SIMPLE | vmware.hv.discovery[{$VMWARE.URL}] |
| Discover VMware VMs | Discovery of guest virtual machines. |
SIMPLE | vmware.vm.discovery[{$VMWARE.URL}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/current/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
SIMPLE | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware | VMware: Full name | VMware service full name. |
SIMPLE | vmware.fullname[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Version | VMware service version. |
SIMPLE | vmware.version[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
SIMPLE | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Template VM VMware Guest
Overview
For Zabbix version: 4.0
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| Template VM VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
SIMPLE | vmware.vm.net.if.discovery[{$VMWARE.URL},{HOST.HOST}] |
| Disk device discovery | Discovery of all disk devices. |
SIMPLE | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{HOST.HOST}] |
| Mounted filesystem discovery | Discovery of all guest file systems. |
SIMPLE | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{HOST.HOST}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.vm.cluster.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
SIMPLE | vmware.vm.cpu.num[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
SIMPLE | vmware.vm.cpu.ready[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
SIMPLE | vmware.vm.cpu.usage[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Datacenter name | Datacenter name of the guest VM. |
SIMPLE | vmware.vm.datacenter.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Hypervisor name | Hypervisor name of the guest VM. |
SIMPLE | vmware.vm.hv.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
SIMPLE | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
SIMPLE | vmware.vm.memory.size.compressed[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Private memory | Amount of memory backed by host memory and not being shared. |
SIMPLE | vmware.vm.memory.size.private[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
SIMPLE | vmware.vm.memory.size.shared[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
SIMPLE | vmware.vm.memory.size.swapped[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
SIMPLE | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
SIMPLE | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Memory size | Total size of configured memory. |
SIMPLE | vmware.vm.memory.size[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Power state | The current power state of the virtual machine. |
SIMPLE | vmware.vm.powerstate[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
SIMPLE | vmware.vm.storage.committed[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
SIMPLE | vmware.vm.storage.uncommitted[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
SIMPLE | vmware.vm.storage.unshared[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.vm.uptime[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{HOST.HOST},{#IFNAME},bps] |
| VMware | VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{HOST.HOST},{#IFNAME},pps] |
| VMware | VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{HOST.HOST},{#IFNAME},bps] |
| VMware | VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{HOST.HOST},{#IFNAME},pps] |
| VMware | VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{HOST.HOST},{#DISKNAME},bps] |
| VMware | VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{HOST.HOST},{#DISKNAME},ops] |
| VMware | VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{HOST.HOST},{#DISKNAME},bps] |
| VMware | VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{HOST.HOST},{#DISKNAME},ops] |
| VMware | VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{HOST.HOST},{#FSNAME},free] |
| VMware | VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{HOST.HOST},{#FSNAME},pfree] |
| VMware | VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{HOST.HOST},{#FSNAME},total] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{HOST.HOST},{#FSNAME},used] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {HOST.HOST} has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:vmware.vm.uptime[{$VMWARE.URL},{HOST.HOST}].last()}<10m |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
Template VM VMware Hypervisor
Overview
For Zabbix version: 4.0
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| Template VM VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | - |
SIMPLE | vmware.hv.datastore.discovery[{$VMWARE.URL},{HOST.HOST}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.hv.cluster.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
SIMPLE | vmware.hv.cpu.usage[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Datacenter name | Datacenter name of the hypervisor. |
SIMPLE | vmware.hv.datacenter.name[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Full name | The complete product name, including the version information. |
SIMPLE | vmware.hv.fullname[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
SIMPLE | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: CPU model | The CPU model. |
SIMPLE | vmware.hv.hw.cpu.model[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
SIMPLE | vmware.hv.hw.cpu.num[{$VMWARE.URL},{HOST.HOST}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU threads | Number of physical CPU threads on the host. |
SIMPLE | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Total memory | The physical memory size. |
SIMPLE | vmware.hv.hw.memory[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Model | The system model identification. |
SIMPLE | vmware.hv.hw.model[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Bios UUID | The hardware BIOS identification. |
SIMPLE | vmware.hv.hw.uuid[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Vendor | The hardware vendor identification. |
SIMPLE | vmware.hv.hw.vendor[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
SIMPLE | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Used memory | Physical memory usage on the host. |
SIMPLE | vmware.hv.memory.used[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
SIMPLE | vmware.hv.network.in[{$VMWARE.URL},{HOST.HOST},bps] |
| VMware | VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
SIMPLE | vmware.hv.network.out[{$VMWARE.URL},{HOST.HOST},bps] |
| VMware | VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
SIMPLE | vmware.hv.sensor.health.state[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
SIMPLE | vmware.hv.status[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.hv.uptime[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Version | Dot-separated version string. |
SIMPLE | vmware.hv.version[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Number of guest VMs | Number of guest virtual machines. |
SIMPLE | vmware.hv.vm.num[{$VMWARE.URL},{HOST.HOST}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.read[{$VMWARE.URL},{HOST.HOST},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{HOST.HOST},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{HOST.HOST},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.write[{$VMWARE.URL},{HOST.HOST},{#DATASTORE},latency] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {HOST.HOST} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
{TEMPLATE_NAME:vmware.hv.sensor.health.state[{$VMWARE.URL},{HOST.HOST}].last()}=3 |
HIGH | Depends on: - VMware: The {HOST.HOST} health is Red |
| VMware: The {HOST.HOST} health is Yellow | One or more components in the appliance might become overloaded soon. |
{TEMPLATE_NAME:vmware.hv.sensor.health.state[{$VMWARE.URL},{HOST.HOST}].last()}=2 |
AVERAGE | Depends on: - VMware: The {HOST.HOST} health is Red - VMware: The {HOST.HOST} health is Red - VMware: The {HOST.HOST} health is Yellow |
| VMware: The {HOST.HOST} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
{TEMPLATE_NAME:vmware.hv.status[{$VMWARE.URL},{HOST.HOST}].last()}=3 |
HIGH | |
| VMware: The {HOST.HOST} health is Yellow | One or more components in the appliance might become overloaded soon. |
{TEMPLATE_NAME:vmware.hv.status[{$VMWARE.URL},{HOST.HOST}].last()}=2 |
AVERAGE | Depends on: - VMware: The {HOST.HOST} health is Red |
| VMware: {HOST.HOST} has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:vmware.hv.uptime[{$VMWARE.URL},{HOST.HOST}].last()}<10m |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware FQDN
Overview
This template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.
- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
Note: VMware alarm item/trigger prototype names include the alarm entity name since template version 7.4.10. The entity name value itself is only returned by Zabbix server 7.4.12 and higher - on earlier servers, {#VMWARE.ALARMS.ENTITY.NAME} will remain unresolved.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl). - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more. - Create a new host.
- If you want to use a separate user for monitoring, make sure that the user is a member of the
SystemConfiguration.ReadOnlyandvStatsGroupgroups. Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to the host created earlier.
Note: To enable discovery of hardware sensors of VMware hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the discovered host level.
Additional resources:
- How to create a custom performance counter.
- How to get all supported counters and generate a path for the custom performance counter.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.PROXY} | Sets the HTTP proxy for script items. If this parameter is empty, then no proxy is used. |
|
| {$HTTP.TLS.VERIFY} | TLS certificate verification for script items: "none" - disabled, "peer" - verify the certificate chain and expiration, "full" - full verification. Any other value enables full verification. To override the setting for this template only, define the macro with the context "VMware FQDN", e.g. {$HTTP.TLS.VERIFY:"VMware FQDN"}. |
full |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.VM.POWERSTATE} | Possibility to filter out VMs by power state. |
poweredOn|poweredOff|suspended |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get alarms | Get alarm status. |
Simple check | vmware.alarms.get[{$VMWARE.URL}] |
| Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/7.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
| Get Overall Health VC State | Gets overall health of the system. This item works only with VMware vCenter versions above 6.5. |
Script | vmware.health.get |
| Overall Health VC State error check | Data collection error check. |
Dependent item | vmware.health.check Preprocessing
|
| Overall Health VC State | VMware Overall health of system. One of the following: - Gray: No health data is available for this service. - Green: Service is healthy. - Yellow: The service is in a healthy state, but experiencing some level of problems. - Orange: The service health is degraded. The service might have serious problems. - Red: The service is unavailable, not functioning properly, or will stop functioning soon. - Not available: The health status is unavailable (not supported on the vCenter or ESXi side). |
Dependent item | vmware.health.state Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: Failed to get Overall Health VC State | Failed to get data. Check debug log for more information. |
length(last(/VMware FQDN/vmware.health.check))>0 |
Warning | |
| VMware FQDN: Overall Health VC State is not Green | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware FQDN/vmware.health.state)>0 and last(/VMware FQDN/vmware.health.state)<>6 |
Average |
LLD rule VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware alarm discovery | Discovery of alarms. |
Dependent item | vmware.alarms.discovery Preprocessing
|
Item prototypes for VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VMWARE.ALARMS.NAME} {#VMWARE.ALARMS.ENTITY.NAME} | VMware alarm status. |
Dependent item | vmware.alarms.status["{#VMWARE.ALARMS.KEY}"] Preprocessing
|
Trigger prototypes for VMware alarm discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: {#VMWARE.ALARMS.NAME} {#VMWARE.ALARMS.ENTITY.NAME} | '{#VMWARE.ALARMS.DESC}' |
last(/VMware FQDN/vmware.alarms.status["{#VMWARE.ALARMS.KEY}"])<>-1 |
Not_classified |
LLD rule VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware cluster discovery | Discovery of clusters. |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Status of [{#CLUSTER.NAME}] cluster | VMware cluster status. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for VMware cluster discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: The [{#CLUSTER.NAME}] status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, when resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware FQDN: The [{#CLUSTER.NAME}] status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all the resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | IOPS for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
Trigger prototypes for VMware datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware FQDN: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule VMware hypervisor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware hypervisor discovery | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule VMware VM FQDN discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware VM FQDN discovery | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.VM.FS.PFREE.MIN.WARN} | VMware guest free space threshold for the warning trigger. |
20 |
| {$VMWARE.VM.FS.PFREE.MIN.CRIT} | VMware guest free space threshold for the critical trigger. |
10 |
| {$VMWARE.VM.FS.TRIGGER.USED} | VMware guest used free space trigger. Set to "1"/"0" to enable or disable the trigger. |
0 |
| {$VMWARE.HYPERVISOR.MAINTENANCE} | If the hypervisor is in maintenance mode, all other problems on the VM will be suppressed automatically. Set to "1"/"0" to enable or disable this feature. |
1 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Snapshot consolidation needed | Displays whether snapshot consolidation is needed or not. One of the following: - True; - False. |
Simple check | vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot count | Snapshot count of the guest VM. |
Dependent item | vmware.vm.snapshot.count Preprocessing
|
| Get snapshots | Snapshots of the guest VM. |
Simple check | vmware.vm.snapshot.get[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot latest date | Latest snapshot date of the guest VM. |
Dependent item | vmware.vm.snapshot.latestdate Preprocessing
|
| VM state | VMware virtual machine state. One of the following: - Not running; - Resetting; - Running; - Shutting down; - Standby; - Unknown. |
Simple check | vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware Tools status | Monitoring of VMware Tools. One of the following: - Guest tools executing scripts: VMware Tools is starting. - Guest tools not running: VMware Tools is not running. - Guest tools running: VMware Tools is running. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status] Preprocessing
|
| VMware Tools version | Monitoring of the VMware Tools version. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},version] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| CPU ready | Time that the VM was ready, but unable to get scheduled to run on the physical CPU during the last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds). |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the VM is current running on, as well as limits configured on the VM itself or any parent resource pool. Valid while the VM is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor maintenance mode | Hypervisor maintenance mode. One of the following: - Normal mode; - Maintenance mode. |
Simple check | vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage | The amount of host physical memory allocated to the VM, accounting for the amount saved from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Power state | The current power state of the VM. One of the following: - Powered off; - Powered on; - Suspended. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Committed storage space | Total storage space, in bytes, committed to this VM across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uncommitted storage space | Additional storage space, in bytes, potentially used by this VM on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Unshared storage space | Total storage space, in bytes, occupied by the VM across all datastores that is not shared with any other VM. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Boot time | System boot time. |
Simple check | vmware.vm.property[{$VMWARE.URL},{$VMWARE.VM.UUID},runtime.bootTime] Preprocessing
|
| Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage in percent | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU latency in percent | Percentage of time the VM is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU readiness latency in percent | Percentage of time that the virtual machine was ready, but was unable to get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU swap-in latency in percent | Percentage of CPU time spent waiting for a swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). Data is collected if Guest OS Add-ons (VMware Tools) are installed. |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: Snapshot consolidation needed | Snapshot consolidation needed. |
last(/VMware Guest/vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}])=0 |
Average | Manual close: Yes Depends on:
|
| VMware Guest: VM is not running | VMware virtual machine is not running. |
last(/VMware Guest/vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}]) <> 2 |
Average | Depends on:
|
| VMware Guest: VMware Tools is not running | VMware Tools is not running on the VM. |
last(/VMware Guest/vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status]) = 1 |
Warning | Depends on:
|
| VMware Guest: Hypervisor is in the maintenance mode | Hypervisor is in the maintenance mode. All other problem on the host will be suppressed. |
last(/VMware Guest/vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}])=1 and {$VMWARE.HYPERVISOR.MAINTENANCE}=1 |
Info | |
| VMware Guest: VM has been restarted | Uptime is less than 10 minutes. |
(now() - last(/VMware Guest/vmware.vm.property[{$VMWARE.URL},{$VMWARE.VM.UUID},runtime.bootTime]) < 10m) and last(/VMware Guest/vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}]) = 1 |
Warning | Manual close: Yes Depends on:
|
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of bytes received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Number of bytes transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Network utilization on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network utilization (combined transmit and receive rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] |
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average number of bytes read from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of reads from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of bytes written to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of writes to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of outstanding read requests to the disk [{#DISKDESC}] | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average number of outstanding write requests to the disk [{#DISKDESC}] | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average write latency to the disk [{#DISKDESC}] | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average read latency from the disk [{#DISKDESC}] | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Free disk space on [{#FSNAME}] | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| Free disk space on [{#FSNAME}] (percentage) | VMware virtual machine file system statistics (percentage). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| Total disk space on [{#FSNAME}] | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| Used disk space on [{#FSNAME}] | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Trigger prototypes for Mounted filesystem discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: [{#FSNAME}]: Disk space is critically low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.CRIT:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Average | Manual close: Yes Depends on:
|
| VMware Guest: [{#FSNAME}]: Disk space is low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.WARN:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Warning | Manual close: Yes Depends on:
|
VMware Hypervisor
Overview
This template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn't require any external scripts.
This template can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
To use this template as manually linked to a host, attach it to the host and manually set the value of the {$VMWARE.HV.UUID} macro.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
To use this template as manually linked to a host:
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl). - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more. - Create a new host.
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.
- Run the following command and specify the UUID in the macro
{$VMWARE.HV.UUID}:
vim-cmd hostsvc/hostsummary | grep uuid
- Add the agent interface on the host with the address (IP or DNS) of the VMware hypervisor.
- Link the template to the host created earlier.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.HV.UUID} | UUID of hypervisor. |
|
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable the monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Connection state | VMware hypervisor connection state. One of the following: - Connected; - Disconnected; - Not responding. |
Simple check | vmware.hv.connectionstate[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Number of errors received | VMware hypervisor network input statistics (errors). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Number of broadcasts received | VMware hypervisor network input statistics (broadcasts). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped received packets | VMware hypervisor network input statistics (packets dropped). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of broadcasts transmitted | VMware hypervisor network output statistics (broadcasts). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped transmitted packets | VMware hypervisor network output statistics (packets dropped). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of errors transmitted | VMware hypervisor network output statistics (errors). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. One of the following: - Down; - Up. |
Simple check | icmpping[] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU utilization | CPU utilization as a percentage during the interval depends on power management or hyper-threading. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and the number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Overall status | The overall alarm status of the host. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Get sensors | Master item for sensor data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Hypervisor is down | The service is unavailable or is not accepting ICMP pings. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware Hypervisor: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of VMware hypervisor network interfaces. |
Simple check | vmware.hv.net.if.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| [{#IFNAME}] network interface speed | VMware hypervisor network interface speed. |
Simple check | vmware.hv.network.linkspeed[{$VMWARE.URL},{$VMWARE.HV.UUID},{#IFNAME}] Preprocessing
|
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | Average IOPS for a read operation from the datastore. |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | Average IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Multipath count for datastore [{#DATASTORE}] | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware Hypervisor: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware Hypervisor: The multipath count has been changed | The number of available datastore paths is less than registered ( |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number discovery | VMware hypervisor serial number discovery. This item works only with VMware hypervisor versions above 6.7. |
Dependent item | vmware.hv.serial.number.discovery Preprocessing
|
Item prototypes for Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number | VMware hypervisor serial number. |
Simple check | vmware.hv.hw.serialnumber[{$VMWARE.URL},{#VMWARE.HV.UUID}] Preprocessing
|
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Health state rollup | The host's Rollup Health State sensor value. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=3 |
High | Depends on:
|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=2 |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware Hypervisor: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware FQDN
Overview
This template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.
- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
Requirements
Zabbix version: 7.2 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more - Create a new host
- If you want to use a separate user for monitoring, make sure that the user is a member of the
SystemConfiguration.ReadOnlyandvStatsGroupgroups Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to the host created earlier
Note: To enable discovery of hardware sensors of VMware hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the discovered host level.
Additional resources:
- How to create a custom performance counter
- How to get all supported counters and generate a path for the custom performance counter
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.PROXY} | Sets the HTTP proxy for script items. If this parameter is empty, then no proxy is used. |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.VM.POWERSTATE} | Possibility to filter out VMs by power state. |
poweredOn|poweredOff|suspended |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get alarms | Get alarm status. |
Simple check | vmware.alarms.get[{$VMWARE.URL}] |
| Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/7.2/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
| Get Overall Health VC State | Gets overall health of the system. This item works only with VMware vCenter versions above 6.5. |
Script | vmware.health.get |
| Overall Health VC State error check | Data collection error check. |
Dependent item | vmware.health.check Preprocessing
|
| Overall Health VC State | VMware Overall health of system. One of the following: - Gray: No health data is available for this service. - Green: Service is healthy. - Yellow: The service is in a healthy state, but experiencing some level of problems. - Orange: The service health is degraded. The service might have serious problems. - Red: The service is unavailable, not functioning properly, or will stop functioning soon. - Not available: The health status is unavailable (not supported on the vCenter or ESXi side). |
Dependent item | vmware.health.state Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: Failed to get Overall Health VC State | Failed to get data. Check debug log for more information. |
length(last(/VMware FQDN/vmware.health.check))>0 |
Warning | |
| VMware FQDN: Overall Health VC State is not Green | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware FQDN/vmware.health.state)>0 and last(/VMware FQDN/vmware.health.state)<>6 |
Average |
LLD rule VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware alarm discovery | Discovery of alarms. |
Dependent item | vmware.alarms.discovery Preprocessing
|
Item prototypes for VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VMWARE.ALARMS.NAME} | VMware alarm status. |
Dependent item | vmware.alarms.status["{#VMWARE.ALARMS.KEY}"] Preprocessing
|
Trigger prototypes for VMware alarm discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: {#VMWARE.ALARMS.NAME} | {#VMWARE.ALARMS.DESC} |
last(/VMware FQDN/vmware.alarms.status["{#VMWARE.ALARMS.KEY}"])<>-1 |
Not_classified |
LLD rule VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware cluster discovery | Discovery of clusters. |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Status of [{#CLUSTER.NAME}] cluster | VMware cluster status. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for VMware cluster discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: The [{#CLUSTER.NAME}] status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, when resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware FQDN: The [{#CLUSTER.NAME}] status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all the resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | IOPS for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
Trigger prototypes for VMware datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware FQDN: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule VMware hypervisor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware hypervisor discovery | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule VMware VM FQDN discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware VM FQDN discovery | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.VM.FS.PFREE.MIN.WARN} | VMware guest free space threshold for the warning trigger. |
20 |
| {$VMWARE.VM.FS.PFREE.MIN.CRIT} | VMware guest free space threshold for the critical trigger. |
10 |
| {$VMWARE.VM.FS.TRIGGER.USED} | VMware guest used free space trigger. Set to "1"/"0" to enable or disable the trigger. |
0 |
| {$VMWARE.HYPERVISOR.MAINTENANCE} | If the hypervisor is in maintenance mode, all other problems on the VM will be suppressed automatically. Set to "1"/"0" to enable or disable this feature. |
1 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Snapshot consolidation needed | Displays whether snapshot consolidation is needed or not. One of the following: - True; - False. |
Simple check | vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot count | Snapshot count of the guest VM. |
Dependent item | vmware.vm.snapshot.count Preprocessing
|
| Get snapshots | Snapshots of the guest VM. |
Simple check | vmware.vm.snapshot.get[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot latest date | Latest snapshot date of the guest VM. |
Dependent item | vmware.vm.snapshot.latestdate Preprocessing
|
| VM state | VMware virtual machine state. One of the following: - Not running; - Resetting; - Running; - Shutting down; - Standby; - Unknown. |
Simple check | vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware Tools status | Monitoring of VMware Tools. One of the following: - Guest tools executing scripts: VMware Tools is starting. - Guest tools not running: VMware Tools is not running. - Guest tools running: VMware Tools is running. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status] Preprocessing
|
| VMware Tools version | Monitoring of the VMware Tools version. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},version] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| CPU ready | Time that the VM was ready, but unable to get scheduled to run on the physical CPU during the last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds). |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the VM is current running on, as well as limits configured on the VM itself or any parent resource pool. Valid while the VM is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor maintenance mode | Hypervisor maintenance mode. One of the following: - Normal mode; - Maintenance mode. |
Simple check | vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage | The amount of host physical memory allocated to the VM, accounting for the amount saved from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Power state | The current power state of the VM. One of the following: - Powered off; - Powered on; - Suspended. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Committed storage space | Total storage space, in bytes, committed to this VM across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uncommitted storage space | Additional storage space, in bytes, potentially used by this VM on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Unshared storage space | Total storage space, in bytes, occupied by the VM across all datastores that is not shared with any other VM. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage in percent | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU latency in percent | Percentage of time the VM is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU readiness latency in percent | Percentage of time that the virtual machine was ready, but was unable to get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU swap-in latency in percent | Percentage of CPU time spent waiting for a swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: Snapshot consolidation needed | Snapshot consolidation needed. |
last(/VMware Guest/vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}])=0 |
Average | Manual close: Yes Depends on:
|
| VMware Guest: VM is not running | VMware virtual machine is not running. |
last(/VMware Guest/vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}]) <> 2 |
Average | Depends on:
|
| VMware Guest: VMware Tools is not running | VMware Tools is not running on the VM. |
last(/VMware Guest/vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status]) = 1 |
Warning | Depends on:
|
| VMware Guest: Hypervisor is in the maintenance mode | Hypervisor is in the maintenance mode. All other problem on the host will be suppressed. |
last(/VMware Guest/vmware.vm.hv.maintenance[{$VMWARE.URL},{$VMWARE.VM.UUID}])=1 and {$VMWARE.HYPERVISOR.MAINTENANCE}=1 |
Info | |
| VMware Guest: VM has been restarted | Uptime is less than 10 minutes. |
(between(last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}]),1,10m)=1 or between(last(/VMware Guest/vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}]),1,10m)=1) and last(/VMware Guest/vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}]) = 1 |
Warning | Manual close: Yes Depends on:
|
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of bytes received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Number of bytes transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Network utilization on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network utilization (combined transmit and receive rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] |
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average number of bytes read from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of reads from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of bytes written to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of writes to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of outstanding read requests to the disk [{#DISKDESC}] | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average number of outstanding write requests to the disk [{#DISKDESC}] | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average write latency to the disk [{#DISKDESC}] | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average read latency from the disk [{#DISKDESC}] | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Free disk space on [{#FSNAME}] | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| Free disk space on [{#FSNAME}] (percentage) | VMware virtual machine file system statistics (percentage). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| Total disk space on [{#FSNAME}] | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| Used disk space on [{#FSNAME}] | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Trigger prototypes for Mounted filesystem discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: [{#FSNAME}]: Disk space is critically low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.CRIT:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Average | Manual close: Yes Depends on:
|
| VMware Guest: [{#FSNAME}]: Disk space is low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.WARN:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Warning | Manual close: Yes Depends on:
|
VMware Hypervisor
Overview
This template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn't require any external scripts.
This template can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
To use this template as manually linked to a host, attach it to the host and manually set the value of the {$VMWARE.HV.UUID} macro.
Requirements
Zabbix version: 7.2 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
To use this template as manually linked to a host:
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more - Create a new host
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.
- Run the following command and specify the UUID in the macro
{$VMWARE.HV.UUID}:
vim-cmd hostsvc/hostsummary | grep uuid
- Add the agent interface on the host with the address (IP or DNS) of the VMware hypervisor
- Link the template to the host created earlier
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set to "true"/"false" to enable or disable the monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.HV.UUID} | UUID of hypervisor. |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Connection state | VMware hypervisor connection state. One of the following: - Connected; - Disconnected; - Not responding. |
Simple check | vmware.hv.connectionstate[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Number of errors received | VMware hypervisor network input statistics (errors). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Number of broadcasts received | VMware hypervisor network input statistics (broadcasts). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped received packets | VMware hypervisor network input statistics (packets dropped). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of broadcasts transmitted | VMware hypervisor network output statistics (broadcasts). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped transmitted packets | VMware hypervisor network output statistics (packets dropped). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of errors transmitted | VMware hypervisor network output statistics (errors). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. One of the following: - Down; - Up. |
Simple check | icmpping[] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU utilization | CPU utilization as a percentage during the interval depends on power management or hyper-threading. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and the number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Overall status | The overall alarm status of the host. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Get sensors | Master item for sensor data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Hypervisor is down | The service is unavailable or is not accepting ICMP pings. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware Hypervisor: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of VMware hypervisor network interfaces. |
Simple check | vmware.hv.net.if.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| [{#IFNAME}] network interface speed | VMware hypervisor network interface speed. |
Simple check | vmware.hv.network.linkspeed[{$VMWARE.URL},{$VMWARE.HV.UUID},{#IFNAME}] Preprocessing
|
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | Average IOPS for a read operation from the datastore. |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | Average IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Multipath count for datastore [{#DATASTORE}] | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware Hypervisor: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware Hypervisor: The multipath count has been changed | The number of available datastore paths is less than registered ( |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number discovery | VMware hypervisor serial number discovery. This item works only with VMware hypervisor versions above 6.7. |
Dependent item | vmware.hv.serial.number.discovery Preprocessing
|
Item prototypes for Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number | VMware hypervisor serial number. |
Simple check | vmware.hv.hw.serialnumber[{$VMWARE.URL},{#VMWARE.HV.UUID}] Preprocessing
|
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Health state rollup | The host's Rollup Health State sensor value. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=3 |
High | Depends on:
|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=2 |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware Hypervisor: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware FQDN
Overview
This template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.
- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
Note: VMware alarm item/trigger prototype names include the alarm entity name since template version 7.0.26. The entity name value itself is only returned by Zabbix server 7.0.28 and higher - on earlier servers, {#VMWARE.ALARMS.ENTITY.NAME} will remain unresolved.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl). - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more. - Create a new host.
- If you want to use a separate user for monitoring, make sure that the user is a member of the
SystemConfiguration.ReadOnlyandvStatsGroupgroups. Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to the host created earlier.
Note: To enable discovery of hardware sensors of VMware hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the discovered host level.
Additional resources:
- How to create a custom performance counter.
- How to get all supported counters and generate a path for the custom performance counter.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.PROXY} | Sets the HTTP proxy for script items. If this parameter is empty, then no proxy is used. |
|
| {$HTTP.TLS.VERIFY} | TLS certificate verification for script items: "none" - disabled, "peer" - verify the certificate chain and expiration, "full" - full verification. Any other value enables full verification. To override the setting for this template only, define the macro with the context "VMware FQDN", e.g. {$HTTP.TLS.VERIFY:"VMware FQDN"}. |
full |
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.VM.POWERSTATE} | Possibility to filter out VMs by power state. |
poweredOn|poweredOff|suspended |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get alarms | Get alarm status. |
Simple check | vmware.alarms.get[{$VMWARE.URL}] |
| Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/7.0/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
| Get Overall Health VC State | Gets overall health of the system. This item works only with VMware vCenter versions above 6.5. |
Script | vmware.health.get |
| Overall Health VC State error check | Data collection error check. |
Dependent item | vmware.health.check Preprocessing
|
| Overall Health VC State | VMware Overall health of system. One of the following: - Gray: No health data is available for this service. - Green: Service is healthy. - Yellow: The service is in a healthy state, but experiencing some level of problems. - Orange: The service health is degraded. The service might have serious problems. - Red: The service is unavailable, not functioning properly, or will stop functioning soon. - Not available: The health status is unavailable (not supported on the vCenter or ESXi side). |
Dependent item | vmware.health.state Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: Failed to get Overall Health VC State | Failed to get data. Check debug log for more information. |
length(last(/VMware FQDN/vmware.health.check))>0 |
Warning | |
| VMware FQDN: Overall Health VC State is not Green | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware FQDN/vmware.health.state)>0 and last(/VMware FQDN/vmware.health.state)<>6 |
Average |
LLD rule VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware alarm discovery | Discovery of alarms. |
Dependent item | vmware.alarms.discovery Preprocessing
|
Item prototypes for VMware alarm discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VMWARE.ALARMS.NAME} {#VMWARE.ALARMS.ENTITY.NAME} | VMware alarm status. |
Dependent item | vmware.alarms.status["{#VMWARE.ALARMS.KEY}"] Preprocessing
|
Trigger prototypes for VMware alarm discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: {#VMWARE.ALARMS.NAME} {#VMWARE.ALARMS.ENTITY.NAME} | '{#VMWARE.ALARMS.DESC}' |
last(/VMware FQDN/vmware.alarms.status["{#VMWARE.ALARMS.KEY}"])<>-1 |
Not_classified |
LLD rule VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware cluster discovery | Discovery of clusters. |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for VMware cluster discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Status of [{#CLUSTER.NAME}] cluster | VMware cluster status. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for VMware cluster discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: The [{#CLUSTER.NAME}] status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, when resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware FQDN: The [{#CLUSTER.NAME}] status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all the resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for VMware datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | IOPS for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE.UUID},latency] |
Trigger prototypes for VMware datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware FQDN: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware FQDN: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE.UUID},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule VMware hypervisor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware hypervisor discovery | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule VMware VM FQDN discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware VM FQDN discovery | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.VM.FS.PFREE.MIN.WARN} | VMware guest free space threshold for the warning trigger. |
20 |
| {$VMWARE.VM.FS.PFREE.MIN.CRIT} | VMware guest free space threshold for the critical trigger. |
10 |
| {$VMWARE.VM.FS.TRIGGER.USED} | VMware guest used free space trigger. Set to "1"/"0" to enable or disable the trigger. |
0 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Snapshot consolidation needed | Displays whether snapshot consolidation is needed or not. One of the following: - True; - False. |
Simple check | vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot count | Snapshot count of the guest VM. |
Dependent item | vmware.vm.snapshot.count Preprocessing
|
| Get snapshots | Snapshots of the guest VM. |
Simple check | vmware.vm.snapshot.get[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Snapshot latest date | Latest snapshot date of the guest VM. |
Dependent item | vmware.vm.snapshot.latestdate Preprocessing
|
| VM state | VMware virtual machine state. One of the following: - Not running; - Resetting; - Running; - Shutting down; - Standby; - Unknown. |
Simple check | vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware Tools status | Monitoring of VMware Tools. One of the following: - Guest tools executing scripts: VMware Tools is starting. - Guest tools not running: VMware Tools is not running. - Guest tools running: VMware Tools is running. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status] Preprocessing
|
| VMware Tools version | Monitoring of the VMware Tools version. |
Simple check | vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},version] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| CPU ready | Time that the VM was ready, but unable to get scheduled to run on the physical CPU during the last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds). |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the VM is current running on, as well as limits configured on the VM itself or any parent resource pool. Valid while the VM is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage | The amount of host physical memory allocated to the VM, accounting for the amount saved from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Power state | The current power state of the VM. One of the following: - Powered off; - Powered on; - Suspended. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| Committed storage space | Total storage space, in bytes, committed to this VM across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uncommitted storage space | Additional storage space, in bytes, potentially used by this VM on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Unshared storage space | Total storage space, in bytes, occupied by the VM across all datastores that is not shared with any other VM. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Boot time | System boot time. |
Simple check | vmware.vm.property[{$VMWARE.URL},{$VMWARE.VM.UUID},runtime.bootTime] Preprocessing
|
| Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Host memory usage in percent | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU latency in percent | Percentage of time the VM is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU readiness latency in percent | Percentage of time that the virtual machine was ready, but was unable to get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| CPU swap-in latency in percent | Percentage of CPU time spent waiting for a swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). Data is collected if Guest OS Add-ons (VMware Tools) are installed. |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: Snapshot consolidation needed | Snapshot consolidation needed. |
last(/VMware Guest/vmware.vm.consolidationneeded[{$VMWARE.URL},{$VMWARE.VM.UUID}])=0 |
Average | Manual close: Yes |
| VMware Guest: VM is not running | VMware virtual machine is not running. |
last(/VMware Guest/vmware.vm.state[{$VMWARE.URL},{$VMWARE.VM.UUID}]) <> 2 |
Average | |
| VMware Guest: VMware Tools is not running | VMware Tools is not running on the VM. |
last(/VMware Guest/vmware.vm.tools[{$VMWARE.URL},{$VMWARE.VM.UUID},status]) = 1 |
Warning | Depends on:
|
| VMware Guest: VM has been restarted | Uptime is less than 10 minutes. |
(now() - last(/VMware Guest/vmware.vm.property[{$VMWARE.URL},{$VMWARE.VM.UUID},runtime.bootTime]) < 10m) and last(/VMware Guest/vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}]) = 1 |
Warning | Manual close: Yes |
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Number of bytes received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets received on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Number of bytes transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| Number of packets transmitted on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| Network utilization on interface [{#IFBACKINGDEVICE}]/[{#IFDESC}] | VMware virtual machine network utilization (combined transmit and receive rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] |
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average number of bytes read from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of reads from the disk [{#DISKDESC}] | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of bytes written to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| Average number of writes to the disk [{#DISKDESC}] | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| Average number of outstanding read requests to the disk [{#DISKDESC}] | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average number of outstanding write requests to the disk [{#DISKDESC}] | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average write latency to the disk [{#DISKDESC}] | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| Average read latency from the disk [{#DISKDESC}] | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Free disk space on [{#FSNAME}] | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| Free disk space on [{#FSNAME}] (percentage) | VMware virtual machine file system statistics (percentage). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| Total disk space on [{#FSNAME}] | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| Used disk space on [{#FSNAME}] | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Trigger prototypes for Mounted filesystem discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Guest: [{#FSNAME}]: Disk space is critically low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.CRIT:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Average | Manual close: Yes |
| VMware Guest: [{#FSNAME}]: Disk space is low | The disk free space on [{#FSNAME}] has been less than |
max(/VMware Guest/vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree],5m)<{$VMWARE.VM.FS.PFREE.MIN.WARN:"{#FSNAME}"} and {$VMWARE.VM.FS.TRIGGER.USED:"{#FSNAME}"}=1 |
Warning | Manual close: Yes Depends on:
|
VMware Hypervisor
Overview
This template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn't require any external scripts.
This template can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
To use this template as manually linked to a host, attach it to the host and manually set the value of the {$VMWARE.HV.UUID} macro.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
To use this template as manually linked to a host:
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl). - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more. - Create a new host.
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.
- Run the following command and specify the UUID in the macro
{$VMWARE.HV.UUID}:
vim-cmd hostsvc/hostsummary | grep uuid
- Add the agent interface on the host with the address (IP or DNS) of the VMware hypervisor.
- Link the template to the host created earlier.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set to "true"/"false" to enable or disable the monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to be allowed in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to be ignored in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.HV.UUID} | UUID of hypervisor. |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Connection state | VMware hypervisor connection state. One of the following: - Connected; - Disconnected; - Not responding. |
Simple check | vmware.hv.connectionstate[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Number of errors received | VMware hypervisor network input statistics (errors). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Number of broadcasts received | VMware hypervisor network input statistics (broadcasts). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped received packets | VMware hypervisor network input statistics (packets dropped). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of broadcasts transmitted | VMware hypervisor network output statistics (broadcasts). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},broadcast] |
| Number of dropped transmitted packets | VMware hypervisor network output statistics (packets dropped). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},dropped] |
| Number of errors transmitted | VMware hypervisor network output statistics (errors). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},errors] |
| Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. One of the following: - Down; - Up. |
Simple check | icmpping[] Preprocessing
|
| Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU usage in percent | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU utilization | CPU utilization as a percentage during the interval depends on power management or hyper-threading. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and the number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| Overall status | The overall alarm status of the host. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Get sensors | Master item for sensor data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Hypervisor is down | The service is unavailable or is not accepting ICMP pings. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware Hypervisor: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of VMware hypervisor network interfaces. |
Simple check | vmware.hv.net.if.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Network interface discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| [{#IFNAME}] network interface speed | VMware hypervisor network interface speed. |
Simple check | vmware.hv.network.linkspeed[{$VMWARE.URL},{$VMWARE.HV.UUID},{#IFNAME}] Preprocessing
|
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Discovery of VMware datastores. |
Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Average read IOPS of the datastore [{#DATASTORE}] | Average IOPS for a read operation from the datastore. |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average write IOPS of the datastore [{#DATASTORE}] | Average IOPS for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},rps] |
| Average read latency of the datastore [{#DATASTORE}] | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Free space on datastore [{#DATASTORE}] (percentage) | VMware datastore free space (percentage from the total). |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree] |
| Total size of datastore [{#DATASTORE}] | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] Preprocessing
|
| Average write latency of the datastore [{#DATASTORE}] | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},latency] |
| Multipath count for datastore [{#DATASTORE}] | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: [{#DATASTORE}]: Free space is critically low | Datastore free space has fallen below the critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware Hypervisor: [{#DATASTORE}]: Free space is low | Datastore free space has fallen below the warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware Hypervisor: The multipath count has been changed | The number of available datastore paths is less than registered ( |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE.UUID}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number discovery | VMware hypervisor serial number discovery. This item works only with VMware hypervisor versions above 6.7. |
Dependent item | vmware.hv.serial.number.discovery Preprocessing
|
Item prototypes for Serial number discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Serial number | VMware hypervisor serial number. |
Simple check | vmware.hv.hw.serialnumber[{$VMWARE.URL},{#VMWARE.HV.UUID}] Preprocessing
|
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Health state rollup | The host's Rollup Health State sensor value. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=3 |
High | Depends on:
|
| VMware Hypervisor: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])=2 |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Gray: Unknown; - Green: OK; - Yellow: It might have a problem; - Red: It has a problem. |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware Hypervisor: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might soon become unresponsive. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware Hypervisor: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might soon become overloaded. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware FQDN
Overview
This template is designed for the effortless deployment of both VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
The "VMware Hypervisor" and "VMware Guest" templates are used by discovery and normally should not be manually linked to a host. For additional information please check https://www.zabbix.com/documentation/6.4/manual/vm_monitoring
Requirements
Zabbix version: 6.4 and higher.
Tested versions
This template has been tested on:
- VMware 6.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in Zabbix server configuration file to "1" or more - Create a new host
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to host created earlier
Note: To enable discovery of hardware sensors of VMware Hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the discovered host level.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
|
| {$VMWARE.USERNAME} | VMware service user name |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to allow in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to ignore in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/6.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware: Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| VMware: Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
LLD rule Discover VMware clusters
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for Discover VMware clusters
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for Discover VMware clusters
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {#CLUSTER.NAME} status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware: The {#CLUSTER.NAME} status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule Discover VMware datastores
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware datastores | Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for Discover VMware datastores
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore free space in percentage from total. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Trigger prototypes for Discover VMware datastores
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#DATASTORE}: Free space is critically low | Datastore free space has fallen below critical threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware: {#DATASTORE}: Free space is low | Datastore free space has fallen below warning threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule Discover VMware hypervisors
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware hypervisors | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule Discover VMware VMs FQDN
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware VMs FQDN | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
|
| {$VMWARE.USERNAME} | VMware service user name |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Power state | The current power state of the virtual machine. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory usage in percents | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU latency in percents | Percentage of time the virtual machine is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU readiness latency in percents | Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU swap-in latency in percents | Percentage of CPU time spent waiting for swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: VM has been restarted | Uptime is less than 10 minutes. |
last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware: Network utilization on interface {#IFDESC} | VMware virtual machine network utilization (combined transmit-rates and receive-rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] Preprocessing
|
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware: Average number of outstanding read requests to the disk {#DISKDESC} | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average number of outstanding write requests to the disk {#DISKDESC} | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average write latency to the disk {#DISKDESC} | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average read latency to the disk {#DISKDESC} | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
VMware Hypervisor
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password. |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to allow in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to ignore in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
Simple check | icmpping[] Preprocessing
|
| VMware: Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU utilization | CPU usage as a percentage during the interval depends on power management or HT. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| VMware: Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Get sensors | Master item for sensors data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore free space in percentage from total. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree] |
| VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware: Multipath count for datastore {#DATASTORE} | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#DATASTORE}: Free space is critically low | Datastore free space has fallen below critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware: {#DATASTORE}: Free space is low | Datastore free space has fallen below warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware: The multipath count has been changed | The number of available datastore paths less than registered ({#MULTIPATH.COUNT}). |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Red" |
High | Depends on:
|
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Yellow" |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Unknown - Green - Yellow - Red |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware FQDN
Overview
For Zabbix version: 6.2 and higher
The template to monitor VMware vCenter and ESX hypervisor.
The "VMware Hypervisor" and "VMware Guest" templates are used by discovery and normally should not be manually linked to a host.
For additional information please check https://www.zabbix.com/documentation/6.2/manual/vm_monitoring
Setup
- Compile zabbix server with required options (--with-libxml2 and --with-libcurl)
- Set the StartVMwareCollectors option in Zabbix server configuration file to 1 or more
- Create a new host
- Set the host macros (on host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to host created early
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
SIMPLE | vmware.cluster.discovery[{$VMWARE.URL}] |
| Discover VMware datastores | - |
SIMPLE | vmware.datastore.discovery[{$VMWARE.URL}] |
| Discover VMware hypervisors | Discovery of hypervisors. |
SIMPLE | vmware.hv.discovery[{$VMWARE.URL}] |
| Discover VMware VMs FQDN | Discovery of guest virtual machines. |
SIMPLE | vmware.vm.discovery[{$VMWARE.URL}] Filter: AND- {#VM.DNS} NOT_MATCHES_REGEX |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/6.2/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
SIMPLE | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware | VMware: Full name | VMware service full name. |
SIMPLE | vmware.fullname[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Version | VMware service version. |
SIMPLE | vmware.version[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
SIMPLE | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
VMware Guest
Overview
For Zabbix version: 6.2 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
SIMPLE | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Mounted filesystem discovery | Discovery of all guest file systems. |
SIMPLE | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Network device discovery | Discovery of all network devices. |
SIMPLE | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
SIMPLE | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
SIMPLE | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
SIMPLE | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Datacenter name | Datacenter name of the guest VM. |
SIMPLE | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Hypervisor name | Hypervisor name of the guest VM. |
SIMPLE | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
SIMPLE | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
SIMPLE | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Private memory | Amount of memory backed by host memory and not being shared. |
SIMPLE | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
SIMPLE | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
SIMPLE | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
SIMPLE | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
SIMPLE | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Memory size | Total size of configured memory. |
SIMPLE | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Power state | The current power state of the virtual machine. |
SIMPLE | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
SIMPLE | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
SIMPLE | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
SIMPLE | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
SIMPLE | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
SIMPLE | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory usage in percents | Percentage of host physical memory that has been consumed. |
SIMPLE | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
SIMPLE | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU latency in percents | Percentage of time the virtual machine is unable to run because it is contending for access to the physical CPU(s). |
SIMPLE | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU readiness latency in percents | Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. |
SIMPLE | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU swap-in latency in percents | Percentage of CPU time spent waiting for swap-in. |
SIMPLE | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
SIMPLE | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware | VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware | VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware | VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware | VMware: Network utilization on interface {#IFDESC} | VMware virtual machine network utilization (combined transmit-rates and receive-rates) during the interval. |
SIMPLE | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] Preprocessing: - MULTIPLIER: |
| VMware | VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware | VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware | VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware | VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware | VMware: Average number of outstanding read requests to the disk {#DISKDESC} | Average number of outstanding read requests to the virtual disk during the collection interval. |
SIMPLE | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average number of outstanding write requests to the disk {#DISKDESC} | Average number of outstanding write requests to the virtual disk during the collection interval. |
SIMPLE | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average write latency to the disk {#DISKDESC} | The average time a write to the virtual disk takes. |
SIMPLE | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average read latency to the disk {#DISKDESC} | The average time a read from the virtual disk takes. |
SIMPLE | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| VMware | VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| VMware | VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: VM has been restarted | Uptime is less than 10 minutes. |
last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware Hypervisor
Overview
For Zabbix version: 6.2 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | - |
SIMPLE | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Healthcheck discovery | VMware Rollup Health State sensor discovery |
DEPENDENT | vmware.hv.healthcheck.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
SIMPLE | icmpping[] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
SIMPLE | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
SIMPLE | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU utilization | CPU usage as a percentage during the interval depends on power management or HT. |
SIMPLE | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Power usage | Current power usage. |
SIMPLE | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Power usage maximum allowed | Maximum allowed power usage. |
SIMPLE | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Datacenter name | Datacenter name of the hypervisor. |
SIMPLE | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Full name | The complete product name, including the version information. |
SIMPLE | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
SIMPLE | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU model | The CPU model. |
SIMPLE | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
SIMPLE | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU threads | Number of physical CPU threads on the host. |
SIMPLE | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Total memory | The physical memory size. |
SIMPLE | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Model | The system model identification. |
SIMPLE | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Bios UUID | The hardware BIOS identification. |
SIMPLE | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Vendor | The hardware vendor identification. |
SIMPLE | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
SIMPLE | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Used memory | Physical memory usage on the host. |
SIMPLE | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
SIMPLE | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware | VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
SIMPLE | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware | VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
SIMPLE | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Version | Dot-separated version string. |
SIMPLE | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Number of guest VMs | Number of guest virtual machines. |
SIMPLE | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware | VMware: Multipath count for datastore {#DATASTORE} | Number of available datastore paths. |
SIMPLE | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware | VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
DEPENDENT | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix raw items | VMware: Get sensors | Master item for sensors data. |
SIMPLE | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
last(/VMware Hypervisor/icmpping[])=0 |
AVERAGE | Manual close: YES |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
HIGH | |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
AVERAGE | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red |
| VMware: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
WARNING | Manual close: YES |
| VMware: The multipath count has been changed | The number of available datastore paths less than registered ({#MULTIPATH.COUNT}). |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT} |
AVERAGE | Manual close: YES |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Red" |
HIGH | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Yellow" |
AVERAGE | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red - VMware: The {$VMWARE.HV.UUID} health is Red - VMware: The {$VMWARE.HV.UUID} health is Yellow |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware FQDN
Overview
This template set is designed for the effortless deployment of VMware vCenter and ESX hypervisor monitoring and doesn't require any external scripts.
- The template "VMware Guest" is used in discovery and normally should not be manually linked to a host.
- The template "VMware Hypervisor" can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
- VMware 6.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more - Create a new host
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to the host created earlier
Note: To enable discovery of hardware sensors of VMware Hypervisors, set the macro {$VMWARE.HV.SENSOR.DISCOVERY} to the value true on the host level.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
|
| {$VMWARE.USERNAME} | VMware service user name |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to allow in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to ignore in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/6.0/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
Simple check | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware: Full name | VMware service full name. |
Simple check | vmware.fullname[{$VMWARE.URL}] Preprocessing
|
| VMware: Version | VMware service version. |
Simple check | vmware.version[{$VMWARE.URL}] Preprocessing
|
LLD rule Discover VMware clusters
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
Simple check | vmware.cluster.discovery[{$VMWARE.URL}] |
Item prototypes for Discover VMware clusters
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
Simple check | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
Trigger prototypes for Discover VMware clusters
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {#CLUSTER.NAME} status is Red | A cluster enabled for DRS becomes invalid (red) when the tree is no longer internally consistent, that is, resource constraints are not observed. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-C7417CAA-BD38-41D0-9529-9E7A5898BB12.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=3 |
High | |
| VMware: The {#CLUSTER.NAME} status is Yellow | A cluster becomes overcommitted (yellow) when the tree of resource pools and virtual machines is internally consistent but the cluster does not have the capacity to support all resources reserved by the child resource pools. See also: https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-ED8240A0-FB54-4A31-BD3D-F23FE740F10C.html |
last(/VMware FQDN/vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}])=2 |
Average | Depends on:
|
LLD rule Discover VMware datastores
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware datastores | Simple check | vmware.datastore.discovery[{$VMWARE.URL}] |
Item prototypes for Discover VMware datastores
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore free space in percentage from total. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
Simple check | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Trigger prototypes for Discover VMware datastores
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#DATASTORE}: Free space is critically low | Datastore free space has fallen below critical threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree])<{$VMWARE.DATASTORE.SPACE.CRIT} |
High | |
| VMware: {#DATASTORE}: Free space is low | Datastore free space has fallen below warning threshold. |
last(/VMware FQDN/vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree])<{$VMWARE.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
LLD rule Discover VMware hypervisors
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware hypervisors | Discovery of hypervisors. |
Simple check | vmware.hv.discovery[{$VMWARE.URL}] |
LLD rule Discover VMware VMs FQDN
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware VMs FQDN | Discovery of guest virtual machines. |
Simple check | vmware.vm.discovery[{$VMWARE.URL}] |
VMware Guest
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
|
| {$VMWARE.USERNAME} | VMware service user name |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Cluster name | Cluster name of the guest VM. |
Simple check | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
Simple check | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
Simple check | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
Simple check | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Datacenter name | Datacenter name of the guest VM. |
Simple check | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Hypervisor name | Hypervisor name of the guest VM. |
Simple check | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
Simple check | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
Simple check | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Private memory | Amount of memory backed by host memory and not being shared. |
Simple check | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
Simple check | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
Simple check | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
Simple check | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
Simple check | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Memory size | Total size of configured memory. |
Simple check | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Power state | The current power state of the virtual machine. |
Simple check | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing
|
| VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
Simple check | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
Simple check | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
Simple check | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uptime | System uptime. |
Simple check | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
Simple check | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
Simple check | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Host memory usage in percents | Percentage of host physical memory that has been consumed. |
Simple check | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
Simple check | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU latency in percents | Percentage of time the virtual machine is unable to run because it is contending for access to the physical CPU(s). |
Simple check | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU readiness latency in percents | Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. |
Simple check | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: CPU swap-in latency in percents | Percentage of CPU time spent waiting for swap-in. |
Simple check | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware: Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
Simple check | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: VM has been restarted | Uptime is less than 10 minutes. |
last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
Simple check | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
Simple check | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
Simple check | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware: Network utilization on interface {#IFDESC} | VMware virtual machine network utilization (combined transmit-rates and receive-rates) during the interval. |
Simple check | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] Preprocessing
|
LLD rule Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disk device discovery | Discovery of all disk devices. |
Simple check | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Disk device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
Simple check | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware: Average number of outstanding read requests to the disk {#DISKDESC} | Average number of outstanding read requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average number of outstanding write requests to the disk {#DISKDESC} | Average number of outstanding write requests to the virtual disk during the collection interval. |
Simple check | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average write latency to the disk {#DISKDESC} | The average time a write to the virtual disk takes. |
Simple check | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware: Average read latency to the disk {#DISKDESC} | The average time a read from the virtual disk takes. |
Simple check | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
LLD rule Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of all guest file systems. |
Simple check | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Item prototypes for Mounted filesystem discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing
|
| VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
Simple check | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
VMware Hypervisor
Overview
This template is designed for the effortless deployment of VMware ESX hypervisor monitoring and doesn't require any external scripts.
This template can be used in discovery as well as manually linked to a host.
For additional information, please see Zabbix documentation on VM monitoring.
To use this template as manually linked to a host, attach it to the host and manually set the value of the {$VMWARE.HV.UUID} macro.
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
- VMware 6.0, 6.7, 7.0, 8.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
To use this template as manually linked to a host:
- Compile Zabbix server with the required options (
--with-libxml2and--with-libcurl) - Set the
StartVMwareCollectorsoption in the Zabbix server configuration file to "1" or more - Create a new host
- Set the host macros (on the host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- To get the hypervisor UUID, enable access to the hypervisor via SSH and log in via SSH using a valid login and password.
- Run the following command and specify the UUID in the macro
{$VMWARE.HV.UUID}:
vim-cmd hostsvc/hostsummary | grep uuid
- Add the agent interface on the host with the address (IP or DNS) of the VMware hypervisor
- Link the template to the host created earlier
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk). |
|
| {$VMWARE.USERNAME} | VMware service user name. |
|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password. |
|
| {$VMWARE.HV.SENSOR.DISCOVERY} | Set "true"/"false" to enable or disable monitoring of hardware sensors. |
false |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.MATCHES} | Sets the regex string of hardware sensor names to allow in discovery. |
.* |
| {$VMWARE.HV.SENSOR.DISCOVERY.NAME.NOT_MATCHES} | Sets the regex string of hardware sensor names to ignore in discovery. |
CHANGE_IF_NEEDED |
| {$VMWARE.HV.DATASTORE.SPACE.CRIT} | The critical threshold of the datastore free space. |
10 |
| {$VMWARE.HV.DATASTORE.SPACE.WARN} | The warning threshold of the datastore free space. |
20 |
| {$VMWARE.HV.UUID} | UUID of hypervisor. |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
Simple check | icmpping[] Preprocessing
|
| VMware: Cluster name | Cluster name of the guest VM. |
Simple check | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
Simple check | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
Simple check | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU utilization | CPU usage as a percentage during the interval depends on power management or HT. |
Simple check | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Power usage | Current power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Power usage maximum allowed | Maximum allowed power usage. |
Simple check | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing
|
| VMware: Datacenter name | Datacenter name of the hypervisor. |
Simple check | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: Full name | The complete product name, including the version information. |
Simple check | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
Simple check | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU model | The CPU model. |
Simple check | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
Simple check | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing
|
| VMware: CPU threads | Number of physical CPU threads on the host. |
Simple check | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Total memory | The physical memory size. |
Simple check | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Model | The system model identification. |
Simple check | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Bios UUID | The hardware BIOS identification. |
Simple check | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Vendor | The hardware vendor identification. |
Simple check | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
Simple check | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Used memory | Physical memory usage on the host. |
Simple check | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
Simple check | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
Simple check | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
Simple check | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Uptime | System uptime. |
Simple check | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Version | Dot-separated version string. |
Simple check | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Number of guest VMs | Number of guest virtual machines. |
Simple check | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware: Get sensors | Master item for sensors data. |
Simple check | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
last(/VMware Hypervisor/icmpping[])=0 |
Average | Manual close: Yes |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
High | |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
Average | Depends on:
|
| VMware: Hypervisor has been restarted | Uptime is less than 10 minutes. |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
Warning | Manual close: Yes |
LLD rule Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | Simple check | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Item prototypes for Datastore discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
Simple check | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore free space in percentage from total. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree] |
| VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
Simple check | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
Simple check | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware: Multipath count for datastore {#DATASTORE} | Number of available datastore paths. |
Simple check | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
Trigger prototypes for Datastore discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: {#DATASTORE}: Free space is critically low | Datastore free space has fallen below critical threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree])<{$VMWARE.HV.DATASTORE.SPACE.CRIT} |
High | |
| VMware: {#DATASTORE}: Free space is low | Datastore free space has fallen below warning threshold. |
last(/VMware Hypervisor/vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree])<{$VMWARE.HV.DATASTORE.SPACE.WARN} |
Warning | Depends on:
|
| VMware: The multipath count has been changed | The number of available datastore paths less than registered ({#MULTIPATH.COUNT}). |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT} |
Average | Manual close: Yes |
LLD rule Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Healthcheck discovery | VMware Rollup Health State sensor discovery. |
Dependent item | vmware.hv.healthcheck.discovery Preprocessing
|
Item prototypes for Healthcheck discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
Dependent item | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing
|
Trigger prototypes for Healthcheck discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Red" |
High | Depends on:
|
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Yellow" |
Average | Depends on:
|
LLD rule Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Sensor discovery | VMware hardware sensor discovery. The data is retrieved from numeric sensor probes and provides information about the health of the physical system. |
Dependent item | vmware.hv.sensors.discovery Preprocessing
|
Item prototypes for Sensor discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| VMware: Sensor [{#NAME}] health state | VMware hardware sensor health state. One of the following: - Unknown - Green - Yellow - Red |
Dependent item | vmware.hv.sensor.state["{#NAME}"] Preprocessing
|
Trigger prototypes for Sensor discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Sensor [{#NAME}] health state is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=3 |
High | Depends on:
|
| VMware: Sensor [{#NAME}] health state is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.state["{#NAME}"])=2 |
Average | Depends on:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
VMware FQDN
Overview
For Zabbix version: 5.4 and higher
The template to monitor VMware vCenter and ESX hypervisor.
The "VMware Hypervisor" and "VMware Guest" templates are used by discovery and normally should not be manually linked to a host.
For additional information please check https://www.zabbix.com/documentation/5.4/manual/vm_monitoring
Setup
- Compile zabbix server with required options (--with-libxml2 and --with-libcurl)
- Set the StartVMwareCollectors option in Zabbix server configuration file to 1 or more
- Create a new host
- Set the host macros (on host or template level) required for VMware authentication:
{$VMWARE.URL}
{$VMWARE.USERNAME}
{$VMWARE.PASSWORD}
- Link the template to host created early
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Discover VMware clusters | Discovery of clusters |
SIMPLE | vmware.cluster.discovery[{$VMWARE.URL}] |
| Discover VMware datastores | - |
SIMPLE | vmware.datastore.discovery[{$VMWARE.URL}] |
| Discover VMware hypervisors | Discovery of hypervisors. |
SIMPLE | vmware.hv.discovery[{$VMWARE.URL}] |
| Discover VMware VMs FQDN | Discovery of guest virtual machines. |
SIMPLE | vmware.vm.discovery[{$VMWARE.URL}] Filter: AND- {#VM.DNS} NOT_MATCHES_REGEX |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Event log | Collect VMware event log. See also: https://www.zabbix.com/documentation/5.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records |
SIMPLE | vmware.eventlog[{$VMWARE.URL},skip] |
| VMware | VMware: Full name | VMware service full name. |
SIMPLE | vmware.fullname[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Version | VMware service version. |
SIMPLE | vmware.version[{$VMWARE.URL}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Status of "{#CLUSTER.NAME}" cluster | VMware cluster status. |
SIMPLE | vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
VMware Guest
Overview
For Zabbix version: 5.4 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of all network devices. |
SIMPLE | vmware.vm.net.if.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Disk device discovery | Discovery of all disk devices. |
SIMPLE | vmware.vm.vfs.dev.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| Mounted filesystem discovery | Discovery of all guest file systems. |
SIMPLE | vmware.vm.vfs.fs.discovery[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.vm.cluster.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Number of virtual CPUs | Number of virtual CPUs assigned to the guest. |
SIMPLE | vmware.vm.cpu.num[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU ready | Time that the virtual machine was ready, but could not get scheduled to run on the physical CPU during last measurement interval (VMware vCenter/ESXi Server performance counter sampling interval - 20 seconds) |
SIMPLE | vmware.vm.cpu.ready[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU usage | Current upper-bound on CPU usage. The upper-bound is based on the host the virtual machine is current running on, as well as limits configured on the virtual machine itself or any parent resource pool. Valid while the virtual machine is running. |
SIMPLE | vmware.vm.cpu.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Datacenter name | Datacenter name of the guest VM. |
SIMPLE | vmware.vm.datacenter.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Hypervisor name | Hypervisor name of the guest VM. |
SIMPLE | vmware.vm.hv.name[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. |
SIMPLE | vmware.vm.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Compressed memory | The amount of memory currently in the compression cache for this VM. |
SIMPLE | vmware.vm.memory.size.compressed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Private memory | Amount of memory backed by host memory and not being shared. |
SIMPLE | vmware.vm.memory.size.private[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Shared memory | The amount of guest physical memory shared through transparent page sharing. |
SIMPLE | vmware.vm.memory.size.shared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Swapped memory | The amount of guest physical memory swapped out to the VM's swap device by ESX. |
SIMPLE | vmware.vm.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Guest memory usage | The amount of guest physical memory that is being used by the VM. |
SIMPLE | vmware.vm.memory.size.usage.guest[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory usage | The amount of host physical memory allocated to the VM, accounting for saving from memory sharing with other VMs. |
SIMPLE | vmware.vm.memory.size.usage.host[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Memory size | Total size of configured memory. |
SIMPLE | vmware.vm.memory.size[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Power state | The current power state of the virtual machine. |
SIMPLE | vmware.vm.powerstate[{$VMWARE.URL},{$VMWARE.VM.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Committed storage space | Total storage space, in bytes, committed to this virtual machine across all datastores. |
SIMPLE | vmware.vm.storage.committed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uncommitted storage space | Additional storage space, in bytes, potentially used by this virtual machine on all datastores. |
SIMPLE | vmware.vm.storage.uncommitted[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Unshared storage space | Total storage space, in bytes, occupied by the virtual machine across all datastores, that is not shared with any other virtual machine. |
SIMPLE | vmware.vm.storage.unshared[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.vm.uptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Guest memory swapped | Amount of guest physical memory that is swapped out to the swap space. |
SIMPLE | vmware.vm.guest.memory.size.swapped[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory consumed | Amount of host physical memory consumed for backing up guest physical memory pages. |
SIMPLE | vmware.vm.memory.size.consumed[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Host memory usage in percents | Percentage of host physical memory that has been consumed. |
SIMPLE | vmware.vm.memory.usage[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
SIMPLE | vmware.vm.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU latency in percents | Percentage of time the virtual machine is unable to run because it is contending for access to the physical CPU(s). |
SIMPLE | vmware.vm.cpu.latency[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU readiness latency in percents | Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. |
SIMPLE | vmware.vm.cpu.readiness[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: CPU swap-in latency in percents | Percentage of CPU time spent waiting for swap-in. |
SIMPLE | vmware.vm.cpu.swapwait[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Uptime of guest OS | Total time elapsed since the last operating system boot-up (in seconds). |
SIMPLE | vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}] |
| VMware | VMware: Number of bytes received on interface {#IFDESC} | VMware virtual machine network interface input statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware | VMware: Number of packets received on interface {#IFDESC} | VMware virtual machine network interface input statistics (packets per second). |
SIMPLE | vmware.vm.net.if.in[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware | VMware: Number of bytes transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (bytes per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},bps] |
| VMware | VMware: Number of packets transmitted on interface {#IFDESC} | VMware virtual machine network interface output statistics (packets per second). |
SIMPLE | vmware.vm.net.if.out[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME},pps] |
| VMware | VMware: Network utilization on interface {#IFDESC} | VMware virtual machine network utilization (combined transmit-rates and receive-rates) during the interval. |
SIMPLE | vmware.vm.net.if.usage[{$VMWARE.URL},{$VMWARE.VM.UUID},{#IFNAME}] Preprocessing: - MULTIPLIER: |
| VMware | VMware: Average number of bytes read from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware | VMware: Average number of reads from the disk {#DISKDESC} | VMware virtual machine disk device read statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.read[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware | VMware: Average number of bytes written to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (bytes per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},bps] |
| VMware | VMware: Average number of writes to the disk {#DISKDESC} | VMware virtual machine disk device write statistics (operations per second). |
SIMPLE | vmware.vm.vfs.dev.write[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME},ops] |
| VMware | VMware: Average number of outstanding read requests to the disk {#DISKDESC} | Average number of outstanding read requests to the virtual disk during the collection interval. |
SIMPLE | vmware.vm.storage.readoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average number of outstanding write requests to the disk {#DISKDESC} | Average number of outstanding write requests to the virtual disk during the collection interval. |
SIMPLE | vmware.vm.storage.writeoio[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average write latency to the disk {#DISKDESC} | The average time a write to the virtual disk takes. |
SIMPLE | vmware.vm.storage.totalwritelatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Average read latency to the disk {#DISKDESC} | The average time a read from the virtual disk takes. |
SIMPLE | vmware.vm.storage.totalreadlatency[{$VMWARE.URL},{$VMWARE.VM.UUID},{#DISKNAME}] |
| VMware | VMware: Free disk space on {#FSNAME} | VMware virtual machine file system statistics (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},free] |
| VMware | VMware: Free disk space on {#FSNAME} (percentage) | VMware virtual machine file system statistics (percentages). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},pfree] |
| VMware | VMware: Total disk space on {#FSNAME} | VMware virtual machine total disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},total] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Used disk space on {#FSNAME} | VMware virtual machine used disk space (bytes). |
SIMPLE | vmware.vm.vfs.fs.size[{$VMWARE.URL},{$VMWARE.VM.UUID},{#FSNAME},used] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: VM has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware Hypervisor
Overview
For Zabbix version: 5.4 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Template links
| Name |
|---|
| VMware macros |
Discovery rules
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Datastore discovery | - |
SIMPLE | vmware.hv.datastore.discovery[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| Healthcheck discovery | VMware Rollup Health State sensor discovery |
DEPENDENT | vmware.hv.healthcheck.discovery Preprocessing: - JSONPATH: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| VMware | VMware: Hypervisor ping | Checks if the hypervisor is running and accepting ICMP pings. |
SIMPLE | icmpping[] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Cluster name | Cluster name of the guest VM. |
SIMPLE | vmware.hv.cluster.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU usage | Aggregated CPU usage across all cores on the host in Hz. This is only available if the host is connected. |
SIMPLE | vmware.hv.cpu.usage[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU usage in percents | CPU usage as a percentage during the interval. |
SIMPLE | vmware.hv.cpu.usage.perf[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU utilization | CPU usage as a percentage during the interval depends on power management or HT. |
SIMPLE | vmware.hv.cpu.utilization[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Power usage | Current power usage. |
SIMPLE | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Power usage maximum allowed | Maximum allowed power usage. |
SIMPLE | vmware.hv.power[{$VMWARE.URL},{$VMWARE.HV.UUID},max] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Datacenter name | Datacenter name of the hypervisor. |
SIMPLE | vmware.hv.datacenter.name[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: Full name | The complete product name, including the version information. |
SIMPLE | vmware.hv.fullname[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU frequency | The speed of the CPU cores. This is an average value if there are multiple speeds. The product of CPU frequency and number of cores is approximately equal to the sum of the MHz for all the individual cores on the host. |
SIMPLE | vmware.hv.hw.cpu.freq[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU model | The CPU model. |
SIMPLE | vmware.hv.hw.cpu.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: CPU cores | Number of physical CPU cores on the host. Physical CPU cores are the processors contained by a CPU package. |
SIMPLE | vmware.hv.hw.cpu.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| VMware | VMware: CPU threads | Number of physical CPU threads on the host. |
SIMPLE | vmware.hv.hw.cpu.threads[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Total memory | The physical memory size. |
SIMPLE | vmware.hv.hw.memory[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Model | The system model identification. |
SIMPLE | vmware.hv.hw.model[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Bios UUID | The hardware BIOS identification. |
SIMPLE | vmware.hv.hw.uuid[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Vendor | The hardware vendor identification. |
SIMPLE | vmware.hv.hw.vendor[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Ballooned memory | The amount of guest physical memory that is currently reclaimed through the balloon driver. Sum of all guest VMs. |
SIMPLE | vmware.hv.memory.size.ballooned[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Used memory | Physical memory usage on the host. |
SIMPLE | vmware.hv.memory.used[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Number of bytes received | VMware hypervisor network input statistics (bytes per second). |
SIMPLE | vmware.hv.network.in[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware | VMware: Number of bytes transmitted | VMware hypervisor network output statistics (bytes per second). |
SIMPLE | vmware.hv.network.out[{$VMWARE.URL},{$VMWARE.HV.UUID},bps] |
| VMware | VMware: Overall status | The overall alarm status of the host: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
SIMPLE | vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Uptime | System uptime. |
SIMPLE | vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Version | Dot-separated version string. |
SIMPLE | vmware.hv.version[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Number of guest VMs | Number of guest virtual machines. |
SIMPLE | vmware.hv.vm.num[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
| VMware | VMware: Average read latency of the datastore {#DATASTORE} | Average amount of time for a read operation from the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.read[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware | VMware: Free space on datastore {#DATASTORE} (percentage) | VMware datastore space in percentage from total. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},pfree] |
| VMware | VMware: Total size of datastore {#DATASTORE} | VMware datastore space in bytes. |
SIMPLE | vmware.hv.datastore.size[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware | VMware: Average write latency of the datastore {#DATASTORE} | Average amount of time for a write operation to the datastore (milliseconds). |
SIMPLE | vmware.hv.datastore.write[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE},latency] |
| VMware | VMware: Multipath count for datastore {#DATASTORE} | Number of available datastore paths. |
SIMPLE | vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}] |
| VMware | VMware: Health state rollup | The host health state rollup sensor value: gray - unknown, green - ok, red - it has a problem, yellow - it might have a problem. |
DEPENDENT | vmware.hv.sensor.health.state[{#SINGLETON}] Preprocessing: - JSONPATH: |
| Zabbix raw items | VMware: Get sensors | Master item for sensors data. |
SIMPLE | vmware.hv.sensors.get[{$VMWARE.URL},{$VMWARE.HV.UUID}] |
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| VMware: Hypervisor is down | The service is unavailable or does not accept ICMP ping. |
last(/VMware Hypervisor/icmpping[])=0 |
AVERAGE | Manual close: YES |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3 |
HIGH | |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2 |
AVERAGE | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red |
| VMware: Hypervisor has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m |
WARNING | Manual close: YES |
| VMware: The multipath count has been changed | The number of available datastore paths less than registered ({#MULTIPATH.COUNT}). |
last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2) and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT} |
AVERAGE | Manual close: YES |
| VMware: The {$VMWARE.HV.UUID} health is Red | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Red" |
HIGH | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red |
| VMware: The {$VMWARE.HV.UUID} health is Yellow | One or more components in the appliance might become overloaded soon. |
last(/VMware Hypervisor/vmware.hv.sensor.health.state[{#SINGLETON}])="Yellow" |
AVERAGE | Depends on: - VMware: The {$VMWARE.HV.UUID} health is Red - VMware: The {$VMWARE.HV.UUID} health is Red - VMware: The {$VMWARE.HV.UUID} health is Yellow |
Feedback
Please report any issues with the template at https://support.zabbix.com
VMware macros
Overview
For Zabbix version: 5.4 and higher
Setup
Refer to the vendor documentation.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
| Name | Description | Default |
|---|---|---|
| {$VMWARE.PASSWORD} | VMware service {$USERNAME} user password |
`` |
| {$VMWARE.URL} | VMware service (vCenter or ESX hypervisor) SDK URL (https://servername/sdk) |
`` |
| {$VMWARE.USERNAME} | VMware service user name |
`` |
Template links
There are no template links in this template.
Discovery rules
Items collected
| Group | Name | Description | Type | Key and additional info |
|---|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Feedback
Please report any issues with the template at https://support.zabbix.com
Vendor and Community integrations are created by third parties and are not verified by Zabbix. Zabbix is not responsible for their functionality or quality.
Zabbix community templates
12 Contributed to the zabbix/community-templates repositoryTemplate for SNMP check of VMware vCenter 6.7THIS TEMPLATE BOTH FOR ZABBIX 3.4 & 4.0based on the SNMP check vCenter (VCSA 6.5) template09/nov/2018Template has been completely rebuilt!Now it use autodiscovery and LLD.Setup procedure:For Zabbix 3.4:Attach templateCreate Regular Expression as shown below:Name: VMWARESVCResult is TRUE ^(.*?)((?=.)|(?=$))Result is FALSE ^saslauth|bas|anacro|pythoPut the linked script to Externalscripts directory on Zabbix Server with replace $vcsa and given name "vcsa_discovery"Done.For Zabbix 4.0:Attach templatePut the linked script to Externalscripts directory on Zabbix Server with replace $vcsa and given name "vcsa_discovery"Done.Script link: https://yadi.sk/d/uYPmitqbaRwpewThere is a few important things!!In update 6.7U1 VMWare cut service names in OID:berfore: vpxdafter: vpxSo, in discovered item names there will be a little bit strange names.https://support.zabbix.com/browse/ZBXNEXT-3753 - renaming discovered items still unavailable
VMware Tools Windows performance counters Template
Standalone template modified from Zabbix´s "VM VMware Guest" for monitoring selected VMs instead of all VMs as per Zabbix´s auto-discovery template. Modified from 3.4.7 and 3.0.15RequirementsRead-only ESXi user credentialsESXi server IP addressVM (Virtual Machine not host) UUIDVMware Tools installed in VMTo obtain VM UUID (http://www-01.ibm.com/support/docview.wss?uid=swg21682150)Login to vSphere clientGo to Virtual MachinesVerify column headers include UUID. If not, right button click on column header and select UUIDSelect desire VM, right button click and "Copy to Clipboard"CTRL-V into text editor, select UUID, copy and paste.UUID value can also be obtained by viewing the VM´s .vmx file via SSH shell. Value is defined as uuid.bios but must be formatted in the correct form. So if uuid.bios="42 10 c1 62 e3 1e 70 e6-4a 03 b4 6a bb e1 7b 4f", UUID is "4210c162-e31e-70e6-4a03-b46abbe17b4f"To useCreate new HostGo to TemplatesSearch for, select "VMware UUID VM Standalone" and addGo to Macros, Inherited and Host MacrosClick Change to modify the values for{$USERNAME} : ESXi username{$PASSWORD} : ESXi password{$URL} : https://{ESXi-IP-Address}/sdk{$UUID} : UUID in lower caseClick AddFor those using Grafana, I have uploaded the dashboard to https://grafana.com/dashboards/4809OthersEdit zabbix_server.conf and update value of StartVMwareCollectors to more than 0 and restart zabbix-server.
Standalone template modified from Zabbix´s "VM VMware Hypervisor" template that includes ESXI event log from Zabbix´s "VM VMware" template. Modified from 3.4.7 and 3.0.15RequirementsRead-only ESXi user credentialsESXi server UUID#ESXi server IP addressZabbix config requiredEdit zabbix_server.conf, update StartVMwareCollectors value to more than 0 and restart zabbix-server. For more details, refer to https://www.zabbix.com/documentation/4.0/manual/vm_monitoring#configurationTo useCreate new Host* (preferably in host group VMware)Go to TemplatesSearch for, select "VMware UUID ESXi Standalone" and addGo to Macros, Inherited and host MacrosClick Change to modify the values for{$USERNAME} : ESXi username{$PASSWORD} : ESXi password{$URL} : https://{ESXi-IP-Address}/sdk{$UUID} : UUID in lower case#Click Add**#**Obtaining UUIDLogin to your ESXi server, runesxcfg-info -u |awk ´{print tolower($0)}´ from SSH shell (Thanks to Travis Quinnelly)ElseVsphere Advanced Settings, Config, Hostagent, plugins, solo, check "Config.HostAgent.plugins.solo.enableMob"Browse to https:///mob/?moid=ha-host&doPath=hardware.systemInfoCopy down valueUncheck as in step 1*Grafana dashboardFor those using Grafana, I have uploaded dashboard to https://grafana.com/dashboards/4812. Note that your host must be in Zabbix host group VMware.OthersIf template does not work, try using the official Zabbix VMware monitoring (e.g. https://www.zabbix.com/documentation/4.0/manual/vm_monitoring)
Reprocessing the SNMP check vCenter template for Zabbix 3.0.4 and VCSA 6.5 (5318154)Thanks Olivier LAHOUZE
Template for supervision SNMP of vCenter.*/!* vCenter 6.0.2a or later (error with previous version: https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2145388) */!*Note1: Triggers for services check use timer of 70 sec because check SNMP is configured with 60sec. If you change timer SNMP, change timer triggerNote 2: SNMP check of CPU is not usable because it return alwaus 100%Note 3: I have not Zabbix
Contact: [email protected]: andreantunes.siIncluied: Datastore free, free %, TotalMemory: Used memory, Used memory %, Total Memory,How to obtain ESXi UUIDYou need to enable MOB vib, esxcli does not seems to provide the valid uuid for this.enable MOB vib : Go to you´re vsphere Advanced Settings, Config, Hostagent, plugins, solo, check "Config.HostAgent.plugins.solo.enableMob"Browse to https://esxi.hostname/mob/?moid=ha-host&doPath=hardware.systemInfodisable MOB vib again (uncheck Config.HostAgent.plugins.solo.enableMob)Your HOSTNAME will be your UUIDElse:esxcfg-info -uUsed Macros:{$USERNAME} -> User connect ESxi{$PASSWORD} Password access to Esxi{$URL} - https://Your ip Esxi/sdk
Community repositories
3 Independent projects on GitHubVmBix is a multi-threaded TCP proxy for the VMWare Sphere API written in Java. It accepts connections from a Zabbix server/proxy/agent or the zabbix_get binary and translates them to VMWare API calls.
This template allows you to monitor a standalone ESXi host without any kind of host discovery that is required by zabbix official vmware template.
VIMbix is a VMware Virtual Infrastructure Methodology RESTfull proxy for Zabbix. 3 years ago was updated