# Remote Zabbix server health ## Overview This template is designed to monitor internal Zabbix metrics on the remote Zabbix server. ## Requirements Zabbix version: 7.0 and higher. ## Tested versions This template has been tested on: - Zabbix server 7.0 ## Configuration > Zabbix should be configured according to the instructions in the [Templates out of the box](https://www.zabbix.com/documentation/7.0/manual/config/templates_out_of_the_box) section. ## Setup Specify the address of the remote Zabbix server by changing `{$ZABBIX.SERVER.ADDRESS}` and `{$ZABBIX.SERVER.PORT}` macros. Don't forget to adjust the `StatsAllowedIP` parameter in the remote server's configuration file to allow the collection of statistics. ### Macros used |Name|Description|Default| |----|-----------|-------| |{$ZABBIX.SERVER.ADDRESS}|
IP/DNS/network mask list of servers to be remotely queried (default is 127.0.0.1).
|| |{$ZABBIX.SERVER.PORT}|Port of server to be remotely queried (default is 10051).
|| |{$PROXY.LAST_SEEN.MAX}|The maximum number of seconds that Zabbix proxy has not been seen.
|`600`| |{$ZABBIX.SERVER.NODATA_TIMEOUT}|The time threshold after which statistics are considered unavailable. Used in trigger expression.
|`5m`| ### Items |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Remote Zabbix server: Zabbix stats|The master item of Zabbix server statistics.
|Zabbix internal|zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]| |Zabbix proxies stats|The master item of Zabbix proxies' statistics.
|Dependent item|zabbix.proxies.stats**Preprocessing**
JSON Path: `$.data.proxy`
The number of monitored items in the queue, which are delayed at least by 10 minutes.
|Zabbix internal|zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue,10m]**Preprocessing**
JSON Path: `$.queue`
The number of monitored items in the queue, which are delayed at least by 6 seconds.
|Zabbix internal|zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue]**Preprocessing**
JSON Path: `$.queue`
The average percentage of the time during which the alert manager processes have been busy for the last minute.
|Dependent item|process.alert_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['alert manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "alert manager" processes started.`
The average percentage of the time during which the alert syncer processes have been busy for the last minute.
|Dependent item|process.alert_syncer.avg.busy**Preprocessing**
JSON Path: `$.data.process['alert syncer'].busy.avg`
⛔️Custom on fail: Set error to: `No "alert syncer" processes started.`
The average percentage of the time during which the alerter processes have been busy for the last minute.
|Dependent item|process.alerter.avg.busy**Preprocessing**
JSON Path: `$.data.process['alerter'].busy.avg`
⛔️Custom on fail: Set error to: `No "alerter" processes started.`
The average percentage of the time during which the availability manager processes have been busy for the last minute.
|Dependent item|process.availability_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['availability manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "availability manager" processes started.`
The average percentage of the time during which the configuration syncer processes have been busy for the last minute.
|Dependent item|process.configuration_syncer.avg.busy**Preprocessing**
JSON Path: `$.data.process['configuration syncer'].busy.avg`
⛔️Custom on fail: Set error to: `No "configuration syncer" processes started.`
The average percentage of the time during which the escalator processes have been busy for the last minute.
|Dependent item|process.escalator.avg.busy**Preprocessing**
JSON Path: `$.data.process['escalator'].busy.avg`
⛔️Custom on fail: Set error to: `No "escalator" processes started.`
The average percentage of the time during which the history poller processes have been busy for the last minute.
|Dependent item|process.history_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['history poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "history poller" processes started.`
The average percentage of the time during which the ODBC poller processes have been busy for the last minute.
|Dependent item|process.odbc_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['odbc poller'].busy.avg`
The average percentage of the time during which the history syncer processes have been busy for the last minute.
|Dependent item|process.history_syncer.avg.busy**Preprocessing**
JSON Path: `$.data.process['history syncer'].busy.avg`
⛔️Custom on fail: Set error to: `No "history syncer" processes started.`
The average percentage of the time during which the housekeeper processes have been busy for the last minute.
|Dependent item|process.housekeeper.avg.busy**Preprocessing**
JSON Path: `$.data.process['housekeeper'].busy.avg`
⛔️Custom on fail: Set error to: `No "housekeeper" processes started.`
The average percentage of the time during which the http poller processes have been busy for the last minute.
|Dependent item|process.http_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['http poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "http poller" processes started.`
The average percentage of the time during which the icmp pinger processes have been busy for the last minute.
|Dependent item|process.icmp_pinger.avg.busy**Preprocessing**
JSON Path: `$.data.process['icmp pinger'].busy.avg`
⛔️Custom on fail: Set error to: `No "icmp pinger" processes started.`
The average percentage of the time during which the ipmi manager processes have been busy for the last minute.
|Dependent item|process.ipmi_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['ipmi manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "ipmi manager" processes started.`
The average percentage of the time during which the ipmi poller processes have been busy for the last minute.
|Dependent item|process.ipmi_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['ipmi poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "ipmi poller" processes started.`
The average percentage of the time during which the java poller processes have been busy for the last minute.
|Dependent item|process.java_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['java poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "java poller" processes started.`
The average percentage of the time during which the lld manager processes have been busy for the last minute.
|Dependent item|process.lld_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['lld manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "LLD manager" processes started.`
The average percentage of the time during which the lld worker processes have been busy for the last minute.
|Dependent item|process.lld_worker.avg.busy**Preprocessing**
JSON Path: `$.data.process['lld worker'].busy.avg`
⛔️Custom on fail: Set error to: `No "LLD worker" processes started.`
The average percentage of the time during which the connector manager processes have been busy for the last minute.
|Dependent item|process.connector_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['connector manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "connector manager" processes started.`
The average percentage of the time during which the connector worker processes have been busy for the last minute.
|Dependent item|process.connector_worker.avg.busy**Preprocessing**
JSON Path: `$.data.process['connector worker'].busy.avg`
⛔️Custom on fail: Set error to: `No "connector worker" processes started.`
The average percentage of the time during which the discovery manager processes have been busy for the last minute.
|Dependent item|process.discovery_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['discovery manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "discovery manager" processes started.`
The average percentage of the time during which the discovery worker processes have been busy for the last minute.
|Dependent item|process.discovery_worker.avg.busy**Preprocessing**
JSON Path: `$.data.process['discovery worker'].busy.avg`
⛔️Custom on fail: Set error to: `No "discovery worker" processes started.`
The average percentage of the time during which the poller processes have been busy for the last minute.
|Dependent item|process.poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "poller" processes started.`
The average percentage of the time during which the preprocessing worker processes have been busy for the last minute.
|Dependent item|process.preprocessing_worker.avg.busy**Preprocessing**
JSON Path: `$.data.process['preprocessing worker'].busy.avg`
⛔️Custom on fail: Set error to: `No "preprocessing worker" processes started.`
The average percentage of the time during which the preprocessing manager processes have been busy for the last minute.
|Dependent item|process.preprocessing_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['preprocessing manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "preprocessing manager" processes started.`
The average percentage of the time during which the proxy poller processes have been busy for the last minute.
|Dependent item|process.proxy_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['proxy poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "proxy poller" processes started.`
The average percentage of the time during which the report manager processes have been busy for the last minute.
|Dependent item|process.report_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['report manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "report manager" processes started.`
The average percentage of the time during which the report writer processes have been busy for the last minute.
|Dependent item|process.report_writer.avg.busy**Preprocessing**
JSON Path: `$.data.process['report writer'].busy.avg`
⛔️Custom on fail: Set error to: `No "report writer" processes started.`
The average percentage of the time during which the self-monitoring processes have been busy for the last minute.
|Dependent item|process.self-monitoring.avg.busy**Preprocessing**
JSON Path: `$.data.process['self-monitoring'].busy.avg`
⛔️Custom on fail: Set error to: `No "self-monitoring" processes started.`
The average percentage of the time during which the snmp trapper processes have been busy for the last minute.
|Dependent item|process.snmp_trapper.avg.busy**Preprocessing**
JSON Path: `$.data.process['snmp trapper'].busy.avg`
⛔️Custom on fail: Set error to: `No "snmp trapper" processes started.`
The average percentage of the time during which the task manager processes have been busy for the last minute.
|Dependent item|process.task_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['task manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "task manager" processes started.`
The average percentage of the time during which the timer processes have been busy for the last minute.
|Dependent item|process.timer.avg.busy**Preprocessing**
JSON Path: `$.data.process['timer'].busy.avg`
⛔️Custom on fail: Set error to: `No "timer" processes started.`
The average percentage of the time during which the service manager processes have been busy for the last minute.
|Dependent item|process.service_manager.avg.busy**Preprocessing**
JSON Path: `$.data.process['service manager'].busy.avg`
⛔️Custom on fail: Set error to: `No "service manager" processes started.`
The average percentage of the time during which the trigger housekeeper processes have been busy for the last minute.
|Dependent item|process.trigger_housekeeper.avg.busy**Preprocessing**
JSON Path: `$.data.process['trigger housekeeper'].busy.avg`
⛔️Custom on fail: Set error to: `No "trigger housekeeper" processes started.`
The average percentage of the time during which the trapper processes have been busy for the last minute.
|Dependent item|process.trapper.avg.busy**Preprocessing**
JSON Path: `$.data.process['trapper'].busy.avg`
⛔️Custom on fail: Set error to: `No "trapper" processes started.`
The average percentage of the time during which the unreachable poller processes have been busy for the last minute.
|Dependent item|process.unreachable_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['unreachable poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "unreachable poller" processes started.`
The average percentage of the time during which the vmware collector processes have been busy for the last minute.
|Dependent item|process.vmware_collector.avg.busy**Preprocessing**
JSON Path: `$.data.process['vmware collector'].busy.avg`
⛔️Custom on fail: Set error to: `No "vmware collector" processes started.`
The average percentage of the time during which the agent poller processes have been busy for the last minute.
|Dependent item|process.agent_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['agent poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "agent poller" processes started.`
The average percentage of the time during which the http agent poller processes have been busy for the last minute.
|Dependent item|process.http_agent_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['http agent poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "http agent poller" processes started.`
The average percentage of the time during which the snmp poller processes have been busy for the last minute.
|Dependent item|process.snmp_poller.avg.busy**Preprocessing**
JSON Path: `$.data.process['snmp poller'].busy.avg`
⛔️Custom on fail: Set error to: `No "snmp poller" processes started.`
The availability statistics of Zabbix configuration cache. The percentage of used data buffer.
|Dependent item|rcache.buffer.pused**Preprocessing**
JSON Path: `$.data.rcache.pused`
The effectiveness statistics of Zabbix trend function cache. The percentage of cached items calculated from the sum of cached items plus requests.
Low percentage most likely means that the cache size can be reduced.
|Dependent item|tcache.pitems**Preprocessing**
JSON Path: `$.data.tcache.pitems`
⛔️Custom on fail: Set error to: `Not supported in this version.`
The effectiveness statistics of Zabbix trend function cache. The percentage of cache misses.
|Dependent item|tcache.pmisses**Preprocessing**
JSON Path: `$.data.tcache.pmisses`
⛔️Custom on fail: Set error to: `Not supported in this version.`
The availability statistics of Zabbix value cache. The percentage of used data buffer.
|Dependent item|vcache.buffer.pused**Preprocessing**
JSON Path: `$.data.vcache.buffer.pused`
The effectiveness statistics of Zabbix value cache. The number of cache hits (history values taken from the cache).
|Dependent item|vcache.cache.hits**Preprocessing**
JSON Path: `$.data.vcache.cache.hits`
The effectiveness statistics of Zabbix value cache. The number of cache misses (history values taken from the database).
|Dependent item|vcache.cache.misses**Preprocessing**
JSON Path: `$.data.vcache.cache.misses`
The operating mode of the value cache.
|Dependent item|vcache.cache.mode**Preprocessing**
JSON Path: `$.data.vcache.cache.mode`
A version of Zabbix server.
|Dependent item|version**Preprocessing**
JSON Path: `$.data.version`
Discard unchanged with heartbeat: `1d`
The availability statistics of Zabbix vmware cache. The percentage of used data buffer.
|Dependent item|vmware.buffer.pused**Preprocessing**
JSON Path: `$.data.vmware.pused`
⛔️Custom on fail: Set error to: `No "vmware collector" processes started.`
The statistics and availability of Zabbix write cache. The percentage of used history buffer.
The history cache is used to store item values. A high number indicates performance problems on the database side.
|Dependent item|wcache.history.pused**Preprocessing**
JSON Path: `$.data.wcache.history.pused`
The statistics and availability of Zabbix write cache. The percentage of used history index buffer.
The history index cache is used to index values stored in the history cache.
|Dependent item|wcache.index.pused**Preprocessing**
JSON Path: `$.data.wcache.index.pused`
The statistics and availability of Zabbix write cache. The percentage of used trend buffer.
The trend cache stores the aggregate of all items that have receive data for the current hour.
|Dependent item|wcache.trend.pused**Preprocessing**
JSON Path: `$.data.wcache.trend.pused`
The statistics and availability of Zabbix write cache.
The total number of values processed by Zabbix server or Zabbix proxy, except unsupported items.
|Dependent item|wcache.values**Preprocessing**
JSON Path: `$.data.wcache.values.all`
The statistics and availability of Zabbix write cache.
The number of processed float values.
|Dependent item|wcache.values.float**Preprocessing**
JSON Path: `$.data.wcache.values.float`
The statistics and availability of Zabbix write cache.
The number of processed log values.
|Dependent item|wcache.values.log**Preprocessing**
JSON Path: `$.data.wcache.values.log`
The statistics and availability of Zabbix write cache.
The number of times the item processing resulted in an item becoming unsupported or keeping that state.
|Dependent item|wcache.values.not_supported**Preprocessing**
JSON Path: `$.data.wcache.values['not supported']`
The statistics and availability of Zabbix write cache.
The number of processed character/string values.
|Dependent item|wcache.values.str**Preprocessing**
JSON Path: `$.data.wcache.values.str`
The statistics and availability of Zabbix write cache.
The number of processed text values.
|Dependent item|wcache.values.text**Preprocessing**
JSON Path: `$.data.wcache.values.text`
The count of values enqueued in the low-level discovery processing queue.
|Dependent item|lld_queue**Preprocessing**
JSON Path: `$.data.lld_queue`
The count of values enqueued in the preprocessing queue.
|Dependent item|preprocessing_queue**Preprocessing**
JSON Path: `$.data.preprocessing_queue`
The count of values enqueued in the connector queue.
|Dependent item|connector_queue**Preprocessing**
JSON Path: `$.data.connector_queue`
⛔️Custom on fail: Set error to: `No "connector" processes started. Please check "StartConnectors" parameter in the server configuration file.`
The count of values enqueued in the discovery queue.
|Dependent item|discovery_queue**Preprocessing**
JSON Path: `$.data.discovery_queue`
⛔️Custom on fail: Set error to: `No "discoverer" processes started. Please check "StartDiscoverers" parameter in the server configuration file.`
The statistics and availability of Zabbix write cache.
The number of processed numeric (unsigned) values.
|Dependent item|wcache.values.uint**Preprocessing**
JSON Path: `$.data.wcache.values.uint`
The `zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue,10m]` item collects data about the number of items that have been missing the data for more than 10 minutes.
|`min(/Remote Zabbix server health/zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue,10m],10m)>100`|Warning|**Manual close**: Yes| |Remote Zabbix server: Utilization of alert manager processes is high||`avg(/Remote Zabbix server health/process.alert_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of alert syncer processes is high||`avg(/Remote Zabbix server health/process.alert_syncer.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of alerter processes is high||`avg(/Remote Zabbix server health/process.alerter.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of availability manager processes is high||`avg(/Remote Zabbix server health/process.availability_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of configuration syncer processes is high||`avg(/Remote Zabbix server health/process.configuration_syncer.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of escalator processes is high||`avg(/Remote Zabbix server health/process.escalator.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of history poller processes is high||`avg(/Remote Zabbix server health/process.history_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of ODBC poller processes is high||`avg(/Remote Zabbix server health/process.odbc_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of history syncer processes is high||`avg(/Remote Zabbix server health/process.history_syncer.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of housekeeper processes is high||`avg(/Remote Zabbix server health/process.housekeeper.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of http poller processes is high||`avg(/Remote Zabbix server health/process.http_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of icmp pinger processes is high||`avg(/Remote Zabbix server health/process.icmp_pinger.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of ipmi manager processes is high||`avg(/Remote Zabbix server health/process.ipmi_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of ipmi poller processes is high||`avg(/Remote Zabbix server health/process.ipmi_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of java poller processes is high||`avg(/Remote Zabbix server health/process.java_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of lld manager processes is high||`avg(/Remote Zabbix server health/process.lld_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of lld worker processes is high||`avg(/Remote Zabbix server health/process.lld_worker.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of connector manager processes is high||`avg(/Remote Zabbix server health/process.connector_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of connector worker processes is high||`avg(/Remote Zabbix server health/process.connector_worker.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of discovery manager processes is high||`avg(/Remote Zabbix server health/process.discovery_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of discovery worker processes is high||`avg(/Remote Zabbix server health/process.discovery_worker.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of poller processes is high||`avg(/Remote Zabbix server health/process.poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of preprocessing worker processes is high||`avg(/Remote Zabbix server health/process.preprocessing_worker.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of preprocessing manager processes is high||`avg(/Remote Zabbix server health/process.preprocessing_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of proxy poller processes is high||`avg(/Remote Zabbix server health/process.proxy_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of report manager processes is high||`avg(/Remote Zabbix server health/process.report_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of report writer processes is high||`avg(/Remote Zabbix server health/process.report_writer.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of self-monitoring processes is high||`avg(/Remote Zabbix server health/process.self-monitoring.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of snmp trapper processes is high||`avg(/Remote Zabbix server health/process.snmp_trapper.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of task manager processes is high||`avg(/Remote Zabbix server health/process.task_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of timer processes is high||`avg(/Remote Zabbix server health/process.timer.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of service manager processes is high||`avg(/Remote Zabbix server health/process.service_manager.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of trigger housekeeper processes is high||`avg(/Remote Zabbix server health/process.trigger_housekeeper.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of trapper processes is high||`avg(/Remote Zabbix server health/process.trapper.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of unreachable poller processes is high||`avg(/Remote Zabbix server health/process.unreachable_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of vmware collector processes is high||`avg(/Remote Zabbix server health/process.vmware_collector.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of agent poller processes is high||`avg(/Remote Zabbix server health/process.agent_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of http agent poller processes is high||`avg(/Remote Zabbix server health/process.http_agent_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Utilization of snmp poller processes is high||`avg(/Remote Zabbix server health/process.snmp_poller.avg.busy,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: More than 75% used in the configuration cache|Consider increasing `CacheSize` in the `zabbix_server.conf` configuration file.
|`max(/Remote Zabbix server health/rcache.buffer.pused,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: Failed to fetch stats data|Zabbix has not received statistics data for {$ZABBIX.SERVER.NODATA_TIMEOUT}.
|`nodata(/Remote Zabbix server health/rcache.buffer.pused,{$ZABBIX.SERVER.NODATA_TIMEOUT})=1`|Warning|| |Remote Zabbix server: More than 95% used in the value cache|Consider increasing `ValueCacheSize` in the `zabbix_server.conf` configuration file.
|`max(/Remote Zabbix server health/vcache.buffer.pused,10m)>95`|Average|**Manual close**: Yes| |Remote Zabbix server: Zabbix value cache working in low memory mode|Once the low memory mode has been switched on, the value cache will remain in this state for 24 hours, even if the problem that triggered this mode is resolved sooner.
|`last(/Remote Zabbix server health/vcache.cache.mode)=1`|High|**Manual close**: Yes| |Remote Zabbix server: Version has changed|Zabbix server version has changed. Acknowledge to close the problem manually.
|`last(/Remote Zabbix server health/version,#1)<>last(/Remote Zabbix server health/version,#2) and length(last(/Remote Zabbix server health/version))>0`|Info|**Manual close**: Yes| |Remote Zabbix server: More than 75% used in the vmware cache|Consider increasing `VMwareCacheSize` in the `zabbix_server.conf` configuration file.
|`max(/Remote Zabbix server health/vmware.buffer.pused,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: More than 75% used in the history cache|Consider increasing `HistoryCacheSize` in the `zabbix_server.conf` configuration file.
|`max(/Remote Zabbix server health/wcache.history.pused,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: More than 75% used in the history index cache|Consider increasing `HistoryIndexCacheSize` in the `zabbix_server.conf` configuration file.
|`max(/Remote Zabbix server health/wcache.index.pused,10m)>75`|Average|**Manual close**: Yes| |Remote Zabbix server: More than 75% used in the trends cache|Consider increasing `TrendCacheSize` in the `zabbix_server.conf` configuration file.
|`max(/Remote Zabbix server health/wcache.trend.pused,10m)>75`|Average|**Manual close**: Yes| ### LLD rule Zabbix proxy discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Zabbix proxy discovery|LLD rule with item and trigger prototypes for the proxy discovery.
|Dependent item|zabbix.proxy.discovery| ### Item prototypes for Zabbix proxy discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Proxy [{#PROXY.NAME}]: Stats|The statistics for the discovered proxy.
|Dependent item|zabbix.proxy.stats[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.[?(@.name=="{#PROXY.NAME}")].first()`
The mode of Zabbix proxy.
|Dependent item|zabbix.proxy.mode[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.passive`
JavaScript: `return value === 'false' ? 0 : 1`
Discard unchanged with heartbeat: `12h`
The encryption status for connections from a proxy.
|Dependent item|zabbix.proxy.unencrypted[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.unencrypted`
JavaScript: `return value === 'false' ? 0 : 1`
Discard unchanged with heartbeat: `12h`
The encryption status for connections from a proxy.
|Dependent item|zabbix.proxy.psk[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.psk`
JavaScript: `return value === 'false' ? 0 : 1`
Discard unchanged with heartbeat: `12h`
The encryption status for connections from a proxy.
|Dependent item|zabbix.proxy.cert[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.cert`
JavaScript: `return value === 'false' ? 0 : 1`
Discard unchanged with heartbeat: `12h`
The compression status of a proxy.
|Dependent item|zabbix.proxy.compression[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.compression`
JavaScript: `return value === 'false' ? 0 : 1`
Discard unchanged with heartbeat: `12h`
The number of enabled items on enabled hosts assigned to a proxy.
|Dependent item|zabbix.proxy.items[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.items`
Discard unchanged with heartbeat: `12h`
The number of enabled hosts assigned to a proxy.
|Dependent item|zabbix.proxy.hosts[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.hosts`
Discard unchanged with heartbeat: `12h`
A version of Zabbix proxy.
|Dependent item|zabbix.proxy.version[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.version`
Discard unchanged with heartbeat: `12h`
The time when a proxy was last seen by a server.
|Dependent item|zabbix.proxy.last_seen[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.last_seen`
Version of proxy compared to Zabbix server version.
Possible values:
0 - Undefined;
1 - Current version (proxy and server have the same major version);
2 - Outdated version (proxy version is older than server version, but is partially supported);
3 - Unsupported version (proxy version is older than server previous LTS release version or server major version is older than proxy major version).
|Dependent item|zabbix.proxy.compatibility[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.compatibility`
Discard unchanged with heartbeat: `12h`
The required performance of a proxy (the number of values that need to be collected per second).
|Dependent item|zabbix.proxy.requiredperformance[{#PROXY.NAME}]**Preprocessing**
JSON Path: `$.requiredperformance`
Discard unchanged with heartbeat: `12h`
Zabbix proxy is not updating the configuration data.
|`last(/Remote Zabbix server health/zabbix.proxy.last_seen[{#PROXY.NAME}],#1)>{$PROXY.LAST_SEEN.MAX}`|Warning|| |Proxy [{#PROXY.NAME}]: Zabbix proxy never seen|Zabbix proxy is not updating the configuration data.
|`last(/Remote Zabbix server health/zabbix.proxy.last_seen[{#PROXY.NAME}],#1)=-1`|Warning|| |Proxy [{#PROXY.NAME}]: Zabbix proxy is outdated|Zabbix proxy version is older than server version, but is partially supported. Only data collection and remote execution is available.
|`last(/Remote Zabbix server health/zabbix.proxy.compatibility[{#PROXY.NAME}],#1)=2`|Warning|| |Proxy [{#PROXY.NAME}]: Zabbix proxy is not supported|Zabbix proxy version is older than server previous LTS release version or server major version is older than proxy major version.
|`last(/Remote Zabbix server health/zabbix.proxy.compatibility[{#PROXY.NAME}],#1)=3`|High|| ### LLD rule High availability cluster node discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |High availability cluster node discovery|LLD rule with item and trigger prototypes for the node discovery.
|Dependent item|zabbix.nodes.discovery**Preprocessing**
JSON Path: `$.data.ha`
Provides the statistics of a node.
|Dependent item|zabbix.nodes.stats[{#NODE.ID}]**Preprocessing**
JSON Path: `$.data.ha[?(@.id=="{#NODE.ID}")].first()`
The IPv4 address of a node.
|Dependent item|zabbix.nodes.address[{#NODE.ID}]**Preprocessing**
JSON Path: `$.address`
Discard unchanged with heartbeat: `12h`
Last access time.
|Dependent item|zabbix.nodes.lastaccess.time[{#NODE.ID}]**Preprocessing**
JSON Path: `$.lastaccess`
The time between the database's `unix_timestamp()` and the last access time.
|Dependent item|zabbix.nodes.lastaccess.age[{#NODE.ID}]**Preprocessing**
JSON Path: `$.lastaccess_age`
The status of a node.
|Dependent item|zabbix.nodes.status[{#NODE.ID}]**Preprocessing**
JSON Path: `$.status`
Discard unchanged with heartbeat: `12h`
The state of the node has changed. Acknowledge to close the problem manually.
|`last(/Remote Zabbix server health/zabbix.nodes.status[{#NODE.ID}],#1)<>last(/Remote Zabbix server health/zabbix.nodes.status[{#NODE.ID}],#2)`|Info|**Manual close**: Yes| ## Feedback Please report any issues with the template at [`https://support.zabbix.com`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)