Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Bakaldin <alexander.bakaldin@zabbix.com>2022-03-28 03:24:47 +0300
committerAlexander Bakaldin <alexander.bakaldin@zabbix.com>2022-03-28 03:24:47 +0300
commit48e02bb8c5604621cccd37b3bfc7f6bd80aa193c (patch)
tree58e99b6ec91980d88adbbb616cbe4a0669a0477e /templates
parentab20e84e8752634b60fe1523d10a31d74460d37d (diff)
.........T [ZBXNEXT-7506] added Proxmox Virtual Environment template
Diffstat (limited to 'templates')
-rw-r--r--templates/app/proxmox/README.md144
-rw-r--r--templates/app/proxmox/template_app_proxmox.yaml2102
2 files changed, 2246 insertions, 0 deletions
diff --git a/templates/app/proxmox/README.md b/templates/app/proxmox/README.md
new file mode 100644
index 00000000000..0588adbdf31
--- /dev/null
+++ b/templates/app/proxmox/README.md
@@ -0,0 +1,144 @@
+
+# Proxmox VE by HTTP
+
+## Overview
+
+For Zabbix version: 6.2 and higher
+Proxmox VE uses a REST like API. The concept is described in (Resource Oriented Architectur - ROA).
+
+We choose JSON as primary data format, and the whole API is formally defined using JSON Schema.
+
+You can explore the API documentation at http://pve.proxmox.com/pve-docs/api-viewer/index.html
+
+
+## Setup
+
+Create an API token for the monitoring user. Important note: for security reasons, it is recommended to create a separate user (Datacenter - Permissions).
+
+For the created API token and user, provide the necessary access levels:
+
+* Check: ["perm","/",["Sys.Audit"]]
+
+* Check: ["perm","/nodes/{node}",["Sys.Audit"]]
+
+* Check: ["perm","/vms/{vmid}",["VM.Audit"]]
+
+Copy the resulting Token ID and Secret into host macros.
+
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$PVE.CPU.PUSE.MAX.WARN} |<p>Maximum used CPU in percentage.</p> |`90` |
+|{$PVE.LXC.CPU.PUSE.MAX.WARN} |<p>Maximum used CPU in percentage.</p> |`90` |
+|{$PVE.LXC.MEMORY.PUSE.MAX.WARN} |<p>Maximum used memory in percentage.</p> |`90` |
+|{$PVE.MEMORY.PUSE.MAX.WARN} |<p>Maximum used memory in percentage.</p> |`90` |
+|{$PVE.ROOT.PUSE.MAX.WARN} |<p>Maximum used root space in percentage.</p> |`90` |
+|{$PVE.STORAGE.PUSE.MAX.WARN} |<p>Maximum used storage space in percentage.</p> |`90` |
+|{$PVE.SWAP.PUSE.MAX.WARN} |<p>Maximum used swap space in percentage.</p> |`90` |
+|{$PVE.TOKEN.ID} |<p>API tokens allow stateless access to most parts of the REST API by another system, software or API client.</p> |`USER@REALM!TOKENID` |
+|{$PVE.TOKEN.SECRET} |<p>Secret key.</p> |`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` |
+|{$PVE.URL.PORT} |<p>The API uses the HTTPS protocol and the server listens to port 8006 by default.</p> |`8006` |
+|{$PVE.VM.CPU.PUSE.MAX.WARN} |<p>Maximum used CPU in percentage.</p> |`90` |
+|{$PVE.VM.MEMORY.PUSE.MAX.WARN} |<p>Maximum used memory in percentage.</p> |`90` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Cluster discovery |<p>-</p> |DEPENDENT |proxmox.cluster.discovery<p>**Filter**:</p>AND <p>- {#RESOURCE.TYPE} MATCHES_REGEX `^cluster$`</p> |
+|LXC discovery |<p>-</p> |DEPENDENT |proxmox.lxc.discovery<p>**Filter**:</p>AND <p>- {#RESOURCE.TYPE} MATCHES_REGEX `^lxc$`</p> |
+|Node discovery |<p>-</p> |DEPENDENT |proxmox.node.discovery<p>**Filter**:</p>AND <p>- {#RESOURCE.TYPE} MATCHES_REGEX `^node$`</p> |
+|QEMU discovery |<p>-</p> |DEPENDENT |proxmox.qemu.discovery<p>**Filter**:</p>AND <p>- {#RESOURCE.TYPE} MATCHES_REGEX `^qemu$`</p> |
+|Storage discovery |<p>-</p> |DEPENDENT |proxmox.storage.discovery<p>**Filter**:</p>AND <p>- {#RESOURCE.TYPE} MATCHES_REGEX `^storage$`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |Proxmox: Node [{#NODE.NAME}]: CPU, usage |<p>CPU usage.</p> |DEPENDENT |proxmox.node.cpu[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.cpu`</p><p>- MULTIPLIER: `100`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|CPU |Proxmox: Node [{#NODE.NAME}]: CPU, loadavg |<p>CPU average load.</p> |DEPENDENT |proxmox.node.loadavg[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.loadavg`</p><p>- MULTIPLIER: `100`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|CPU |Proxmox: Node [{#NODE.NAME}]: CPU, iowait |<p>CPU iowait time.</p> |DEPENDENT |proxmox.node.iowait[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.iowait`</p><p>- MULTIPLIER: `100`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|CPU |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: CPU usage |<p>CPU load.</p> |DEPENDENT |proxmox.qemu.cpu[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.cpu`</p><p>- MULTIPLIER: `100`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|CPU |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: CPU usage |<p>CPU load.</p> |DEPENDENT |proxmox.lxc.cpu[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.cpu`</p><p>- MULTIPLIER: `100`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|General |Proxmox: Node [{#NODE.NAME}]: Time zone |<p>Time zone.</p> |DEPENDENT |proxmox.node.timezone[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.timezone`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p> |
+|General |Proxmox: Node [{#NODE.NAME}]: Localtime |<p>Seconds since 1970-01-01 00:00:00 (local time).</p> |DEPENDENT |proxmox.node.localtime[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.localtime`</p> |
+|General |Proxmox: Node [{#NODE.NAME}]: Time |<p>Seconds since 1970-01-01 00:00:00 UTC.</p> |DEPENDENT |proxmox.node.utctime[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.time`</p> |
+|Inventory |Proxmox: Node [{#NODE.NAME}]: PVE version |<p>PVE manager version.</p> |DEPENDENT |proxmox.node.pveversion[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.pveversion`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Proxmox: Node [{#NODE.NAME}]: Kernel version |<p>Kernel version info.</p> |DEPENDENT |proxmox.node.kernelversion[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.kversion`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |Proxmox: Node [{#NODE.NAME}]: Memory, used |<p>Memory usage.</p> |DEPENDENT |proxmox.node.memused[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.memused`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Memory |Proxmox: Node [{#NODE.NAME}]: Memory, total |<p>Memory total.</p> |DEPENDENT |proxmox.node.memtotal[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.memtotal`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Memory |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Memory usage |<p>Used memory in Bytes.</p> |DEPENDENT |proxmox.qemu.mem[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.mem`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Memory |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Memory total |<p>Total memory in Bytes.</p> |DEPENDENT |proxmox.qemu.maxmem[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.maxmem`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Memory |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Memory usage |<p>Used memory in Bytes.</p> |DEPENDENT |proxmox.lxc.mem[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.mem`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Memory |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Memory total |<p>Total memory in Bytes.</p> |DEPENDENT |proxmox.lxc.maxmem[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.maxmem`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Network interfaces |Proxmox: Node [{#NODE.NAME}]: Outgoing data, rate |<p>Network usage.</p> |DEPENDENT |proxmox.node.netout[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.netout`</p><p>- MULTIPLIER: `8`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Network interfaces |Proxmox: Node [{#NODE.NAME}]: Incoming data, rate |<p>Network usage.</p> |DEPENDENT |proxmox.node.netin[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.netin`</p><p>- MULTIPLIER: `8`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Network interfaces |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Incoming data, rate |<p>Incoming data rate.</p> |DEPENDENT |proxmox.qemu.netin[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.netin`</p><p>- CHANGE_PER_SECOND</p><p>- MULTIPLIER: `8`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Network interfaces |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Outgoing data, rate |<p>Outgoing data rate.</p> |DEPENDENT |proxmox.qemu.netout[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.netout`</p><p>- CHANGE_PER_SECOND</p><p>- MULTIPLIER: `8`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Network interfaces |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Incoming data, rate |<p>Incoming data rate.</p> |DEPENDENT |proxmox.lxc.netin[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.netin`</p><p>- CHANGE_PER_SECOND</p><p>- MULTIPLIER: `8`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Network interfaces |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Outgoing data, rate |<p>Outgoing data rate.</p> |DEPENDENT |proxmox.lxc.netout[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.netout`</p><p>- CHANGE_PER_SECOND</p><p>- MULTIPLIER: `8`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Status |Proxmox: Cluster [{#RESOURCE.NAME}]: Quorate |<p>Indicates if there is a majority of nodes online to make decisions.</p> |DEPENDENT |proxmox.cluster.quorate[{#RESOURCE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.[?(@.name == '{#RESOURCE.NAME}' && @.type == 'cluster')].quorate.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Status |Proxmox: Node [{#NODE.NAME}]: Status |<p>Indicates if the node is online or offline.</p> |DEPENDENT |proxmox.node.online[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.[?(@.name == '{#NODE.NAME}' && @.type == 'node')].online.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Status |Proxmox: Node [{#NODE.NAME}]: Uptime |<p>System uptime in 'N days, hh:mm:ss' format.</p> |DEPENDENT |proxmox.node.uptime[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.uptime`</p> |
+|Status |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Uptime |<p>System uptime in 'N days, hh:mm:ss' format.</p> |DEPENDENT |proxmox.qemu.uptime[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.uptime`</p> |
+|Status |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Status |<p>-</p> |DEPENDENT |proxmox.qemu.vmstatus[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.status`</p> |
+|Status |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Uptime |<p>System uptime in 'N days, hh:mm:ss' format.</p> |DEPENDENT |proxmox.lxc.uptime[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.uptime`</p> |
+|Status |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Status |<p>-</p> |DEPENDENT |proxmox.lxc.vmstatus[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.status`</p> |
+|Storage |Proxmox: Node [{#NODE.NAME}]: Root filesystem, used |<p>Root filesystem usage.</p> |DEPENDENT |proxmox.node.rootused[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.rootused`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Storage |Proxmox: Node [{#NODE.NAME}]: Root filesystem, total |<p>Root filesystem total.</p> |DEPENDENT |proxmox.node.roottotal[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.roottotal`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Storage |Proxmox: Node [{#NODE.NAME}]: Swap filesystem, total |<p>Swap total.</p> |DEPENDENT |proxmox.node.swaptotal[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.swaptotal`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Storage |Proxmox: Node [{#NODE.NAME}]: Swap filesystem, used |<p>Swap used.</p> |DEPENDENT |proxmox.node.swapused[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.swapused`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Storage |Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Type |<p>More specific type, if available.</p> |DEPENDENT |proxmox.node.plugintype[{#NODE.NAME},{#STORAGE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data[?(@.id == "storage/{#NODE.NAME}/{#STORAGE.NAME}")].plugintype.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p> |
+|Storage |Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Size |<p>Storage size in bytes.</p> |DEPENDENT |proxmox.node.maxdisk[{#NODE.NAME},{#STORAGE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data[?(@.id == "storage/{#NODE.NAME}/{#STORAGE.NAME}")].maxdisk.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p> |
+|Storage |Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Content |<p>Allowed storage content types.</p> |DEPENDENT |proxmox.node.content[{#NODE.NAME},{#STORAGE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data[?(@.id == "storage/{#NODE.NAME}/{#STORAGE.NAME}")].content.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p> |
+|Storage |Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Used |<p>Used disk space in bytes.</p> |DEPENDENT |proxmox.node.disk[{#NODE.NAME},{#STORAGE.NAME}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data[?(@.id == "storage/{#NODE.NAME}/{#STORAGE.NAME}")].disk.first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `12h`</p> |
+|Storage |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Disk write, rate |<p>Disk write.</p> |DEPENDENT |proxmox.qemu.diskwrite[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.diskwrite`</p><p>- CHANGE_PER_SECOND</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Storage |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Disk read, rate |<p>Disk read.</p> |DEPENDENT |proxmox.qemu.diskread[{#QEMU.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.diskread`</p><p>- CHANGE_PER_SECOND</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Storage |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Disk write, rate |<p>Disk write.</p> |DEPENDENT |proxmox.lxc.diskwrite[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.diskwrite`</p><p>- CHANGE_PER_SECOND</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Storage |Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Disk read, rate |<p>Disk read.</p> |DEPENDENT |proxmox.lxc.diskread[{#LXC.ID}]<p>**Preprocessing**:</p><p>- JSONPATH: `$.data.diskread`</p><p>- CHANGE_PER_SECOND</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|Zabbix raw items |Proxmox: Get cluster resources |<p>Resources index.</p> |HTTP_AGENT |proxmox.cluster.resources<p>**Preprocessing**:</p><p>- CHECK_NOT_SUPPORTED</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> Error getting data`</p> |
+|Zabbix raw items |Proxmox: Get cluster status |<p>Get cluster status information.</p> |HTTP_AGENT |proxmox.cluster.status |
+|Zabbix raw items |Proxmox: Node [{#NODE.NAME}]: Status |<p>Read node status.</p> |HTTP_AGENT |proxmox.node.status[{#NODE.NAME}] |
+|Zabbix raw items |Proxmox: Node [{#NODE.NAME}]: RRD statistics |<p>Read node RRD statistics.</p> |HTTP_AGENT |proxmox.node.rrd[{#NODE.NAME}]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `var rrd_data = JSON.parse(value).data; return JSON.stringify(rrd_data[rrd_data.length - 1]) `</p> |
+|Zabbix raw items |Proxmox: Node [{#NODE.NAME}]: Time |<p>Read server time and time zone settings.</p> |HTTP_AGENT |proxmox.node.time[{#NODE.NAME}] |
+|Zabbix raw items |Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME}]: Status |<p>Read VM status.</p> |HTTP_AGENT |proxmox.qemu.status[{#QEMU.ID}] |
+|Zabbix raw items |Proxmox: LXC [{#LXC.NAME}/{#LXC.NAME}]: Status |<p>Read LXC status.</p> |HTTP_AGENT |proxmox.lxc.status[{#LXC.ID}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Proxmox: Node [{#NODE.NAME}] high CPU usage (over {$PVE.CPU.PUSE.MAX.WARN:"{#NODE.NAME}"}% use) |<p>CPU usage.</p> |`min(/Proxmox VE by HTTP/proxmox.node.cpu[{#NODE.NAME}],5m) > {$PVE.CPU.PUSE.MAX.WARN:"{#NODE.NAME}"}` |WARNING | |
+|Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})] high CPU usage (over {$PVE.VM.CPU.PUSE.MAX.WARN:"{#QEMU.ID}"}% use) |<p>CPU usage.</p> |`min(/Proxmox VE by HTTP/proxmox.qemu.cpu[{#QEMU.ID}],5m) > {$PVE.VM.CPU.PUSE.MAX.WARN:"{#QEMU.ID}"}` |WARNING | |
+|Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})] high CPU usage (over {$PVE.LXC.CPU.PUSE.MAX.WARN:"{#LXC.ID}"}% use) |<p>CPU usage.</p> |`min(/Proxmox VE by HTTP/proxmox.lxc.cpu[{#LXC.ID}],5m) > {$PVE.LXC.CPU.PUSE.MAX.WARN:"{#LXC.ID}"}` |WARNING | |
+|Proxmox: Node [{#NODE.NAME}]: PVE manager has changed |<p>Firmware version has changed. Ack to close</p> |`last(/Proxmox VE by HTTP/proxmox.node.pveversion[{#NODE.NAME}],#1)<>last(/Proxmox VE by HTTP/proxmox.node.pveversion[{#NODE.NAME}],#2) and length(last(/Proxmox VE by HTTP/proxmox.node.pveversion[{#NODE.NAME}]))>0` |INFO |<p>Manual close: YES</p> |
+|Proxmox: Node [{#NODE.NAME}]: Kernel version has changed |<p>Firmware version has changed. Ack to close</p> |`last(/Proxmox VE by HTTP/proxmox.node.kernelversion[{#NODE.NAME}],#1)<>last(/Proxmox VE by HTTP/proxmox.node.kernelversion[{#NODE.NAME}],#2) and length(last(/Proxmox VE by HTTP/proxmox.node.kernelversion[{#NODE.NAME}]))>0` |INFO |<p>Manual close: YES</p> |
+|Proxmox: Node [{#NODE.NAME}] high memory usage (over {$PVE.MEMORY.PUSE.MAX.WARN:"{#NODE.NAME}"}% use) |<p>Memory usage.</p> |`min(/Proxmox VE by HTTP/proxmox.node.memused[{#NODE.NAME}],5m) / last(/Proxmox VE by HTTP/proxmox.node.memtotal[{#NODE.NAME}]) * 100 >{$PVE.MEMORY.PUSE.MAX.WARN:"{#NODE.NAME}"}` |WARNING | |
+|Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})] high memory usage (over {$PVE.VM.MEMORY.PUSE.MAX.WARN:"{#QEMU.ID}"}% use) |<p>Memory usage.</p> |`min(/Proxmox VE by HTTP/proxmox.qemu.mem[{#QEMU.ID}],5m) / last(/Proxmox VE by HTTP/proxmox.qemu.maxmem[{#QEMU.ID}]) * 100 >{$PVE.VM.MEMORY.PUSE.MAX.WARN:"{#QEMU.ID}"}` |WARNING | |
+|Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})] high memory usage (over {$PVE.LXC.MEMORY.PUSE.MAX.WARN:"{#LXC.ID}"}% use) |<p>Memory usage.</p> |`min(/Proxmox VE by HTTP/proxmox.lxc.mem[{#LXC.ID}],5m) / last(/Proxmox VE by HTTP/proxmox.lxc.maxmem[{#LXC.ID}]) * 100 >{$PVE.LXC.MEMORY.PUSE.MAX.WARN:"{#LXC.ID}"}` |WARNING | |
+|Proxmox: Cluster [{#RESOURCE.NAME}] not quorum |<p>Proxmox VE use a quorum-based technique to provide a consistent state among all cluster nodes.</p> |`last(/Proxmox VE by HTTP/proxmox.cluster.quorate[{#RESOURCE.NAME}]) <> 1` |HIGH | |
+|Proxmox: Node [{#NODE.NAME}] offline |<p>Node offline.</p> |`last(/Proxmox VE by HTTP/proxmox.node.online[{#NODE.NAME}]) <> 1` |HIGH | |
+|Proxmox: Node [{#NODE.NAME}]: has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`last(/Proxmox VE by HTTP/proxmox.node.uptime[{#NODE.NAME}])<10m` |INFO |<p>Manual close: YES</p> |
+|Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME}]: has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`last(/Proxmox VE by HTTP/proxmox.qemu.uptime[{#QEMU.ID}])<10m` |INFO |<p>Manual close: YES</p> |
+|Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Not running |<p>VM state is not "running".</p> |`last(/Proxmox VE by HTTP/proxmox.qemu.vmstatus[{#QEMU.ID}])<>"running"` |AVERAGE | |
+|Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME}]: has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`last(/Proxmox VE by HTTP/proxmox.lxc.uptime[{#LXC.ID}])<10m` |INFO |<p>Manual close: YES</p> |
+|Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Not running |<p>LXC state is not "running".</p> |`last(/Proxmox VE by HTTP/proxmox.lxc.vmstatus[{#LXC.ID}])<>"running"` |AVERAGE | |
+|Proxmox: Node [{#NODE.NAME}] high root filesystem space usage (over {$PVE.ROOT.PUSE.MAX.WARN:"{#NODE.NAME}"}% use) |<p>Root filesystem space usage.</p> |`min(/Proxmox VE by HTTP/proxmox.node.rootused[{#NODE.NAME}],5m) / last(/Proxmox VE by HTTP/proxmox.node.roottotal[{#NODE.NAME}]) * 100 >{$PVE.ROOT.PUSE.MAX.WARN:"{#NODE.NAME}"}` |WARNING | |
+|Proxmox: Node [{#NODE.NAME}] high root filesystem space usage (over {$PVE.SWAP.PUSE.MAX.WARN:"{#NODE.NAME}"}% use) |<p>This trigger is ignored, if there is no swap configured.</p> |`min(/Proxmox VE by HTTP/proxmox.node.swapused[{#NODE.NAME}],5m) / last(/Proxmox VE by HTTP/proxmox.node.swaptotal[{#NODE.NAME}]) * 100 > {$PVE.SWAP.PUSE.MAX.WARN:"{#NODE.NAME}"} and last(/Proxmox VE by HTTP/proxmox.node.swaptotal[{#NODE.NAME}]) > 0` |WARNING | |
+|Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}] high filesystem space usage (over {$PVE.STORAGE.PUSE.MAX.WARN:"{#NODE.NAME}/{#STORAGE.NAME}"}% use) |<p>Root filesystem space usage.</p> |`min(/Proxmox VE by HTTP/proxmox.node.disk[{#NODE.NAME},{#STORAGE.NAME}],5m) / last(/Proxmox VE by HTTP/proxmox.node.maxdisk[{#NODE.NAME},{#STORAGE.NAME}]) * 100 >{$PVE.STORAGE.PUSE.MAX.WARN:"{#NODE.NAME}/{#STORAGE.NAME}"}` |WARNING | |
+|Proxmox: API service not available |<p>The API service is not available. Check your network and authorization settings.</p> |`last(/Proxmox VE by HTTP/proxmox.cluster.resources) = "Error getting data"` |HIGH | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/app/proxmox/template_app_proxmox.yaml b/templates/app/proxmox/template_app_proxmox.yaml
new file mode 100644
index 00000000000..ed5c7795025
--- /dev/null
+++ b/templates/app/proxmox/template_app_proxmox.yaml
@@ -0,0 +1,2102 @@
+zabbix_export:
+ version: '6.2'
+ date: '2022-03-28T00:15:18Z'
+ groups:
+ -
+ uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+ name: Templates/Applications
+ templates:
+ -
+ uuid: 4958b76448d74ff1b6d7d6280449beee
+ template: 'Proxmox VE by HTTP'
+ name: 'Proxmox VE by HTTP'
+ description: 'Template tooling version used: 0.41'
+ groups:
+ -
+ name: Templates/Applications
+ items:
+ -
+ uuid: 4fe4fa1323cd481f8aff3bfb716eeae2
+ name: 'Proxmox: Get cluster resources'
+ type: HTTP_AGENT
+ key: proxmox.cluster.resources
+ delay: 5m
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Resources index.'
+ preprocessing:
+ -
+ type: CHECK_NOT_SUPPORTED
+ parameters:
+ - ''
+ error_handler: CUSTOM_VALUE
+ error_handler_params: 'Error getting data'
+ url: 'https://{HOST.CONN}:{$PVE.URL.PORT}/api2/json/cluster/resources'
+ headers:
+ -
+ name: Authorization
+ value: 'PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}'
+ tags:
+ -
+ tag: component
+ value: raw
+ triggers:
+ -
+ uuid: 7ef8290fd6e242339d0e56d5e8eedb1a
+ expression: 'last(/Proxmox VE by HTTP/proxmox.cluster.resources) = "Error getting data"'
+ name: 'Proxmox: API service not available'
+ opdata: 'Current value: {ITEM.LASTVALUE1}'
+ priority: HIGH
+ description: 'The API service is not available. Check your network and authorization settings.'
+ tags:
+ -
+ tag: scope
+ value: availability
+ -
+ uuid: 6e6a5046b8154bafad375813ca210e1f
+ name: 'Proxmox: Get cluster status'
+ type: HTTP_AGENT
+ key: proxmox.cluster.status
+ delay: 5m
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Get cluster status information.'
+ url: 'https://{HOST.CONN}:{$PVE.URL.PORT}/api2/json/cluster/status'
+ headers:
+ -
+ name: Authorization
+ value: 'PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}'
+ tags:
+ -
+ tag: component
+ value: raw
+ discovery_rules:
+ -
+ uuid: e01bb8d7614144ba82e31d91618dee31
+ name: 'Cluster discovery'
+ type: DEPENDENT
+ key: proxmox.cluster.discovery
+ delay: '0'
+ filter:
+ evaltype: AND
+ conditions:
+ -
+ macro: '{#RESOURCE.TYPE}'
+ value: ^cluster$
+ formulaid: A
+ item_prototypes:
+ -
+ uuid: 4b5d9197cfa042ceac1415a524912b63
+ name: 'Proxmox: Cluster [{#RESOURCE.NAME}]: Quorate'
+ type: DEPENDENT
+ key: 'proxmox.cluster.quorate[{#RESOURCE.NAME}]'
+ delay: '0'
+ history: 7d
+ description: 'Indicates if there is a majority of nodes online to make decisions.'
+ valuemap:
+ name: 'Cluster quorate'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.data.[?(@.name == ''{#RESOURCE.NAME}'' && @.type == ''cluster'')].quorate.first()'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: proxmox.cluster.status
+ tags:
+ -
+ tag: cluster
+ value: '{#RESOURCE.NAME}'
+ -
+ tag: component
+ value: system
+ trigger_prototypes:
+ -
+ uuid: 142e02d47b8a4ac9a9ad28b68b097ebd
+ expression: 'last(/Proxmox VE by HTTP/proxmox.cluster.quorate[{#RESOURCE.NAME}]) <> 1'
+ name: 'Proxmox: Cluster [{#RESOURCE.NAME}] not quorum'
+ opdata: 'Current value: {ITEM.LASTVALUE}'
+ priority: HIGH
+ description: 'Proxmox VE use a quorum-based technique to provide a consistent state among all cluster nodes.'
+ tags:
+ -
+ tag: scope
+ value: availability
+ master_item:
+ key: proxmox.cluster.status
+ lld_macro_paths:
+ -
+ lld_macro: '{#RESOURCE.TYPE}'
+ path: $.type
+ -
+ lld_macro: '{#RESOURCE.NAME}'
+ path: $.name
+ -
+ uuid: 78a4018328954d408e415aa0ce7ce41c
+ name: 'LXC discovery'
+ type: DEPENDENT
+ key: proxmox.lxc.discovery
+ delay: '0'
+ filter:
+ evaltype: AND
+ conditions:
+ -
+ macro: '{#RESOURCE.TYPE}'
+ value: ^lxc$
+ formulaid: A
+ item_prototypes:
+ -
+ uuid: dda211b14d7b4c419196a98ee5153307
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: CPU usage'
+ type: DEPENDENT
+ key: 'proxmox.lxc.cpu[{#LXC.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: '%'
+ description: 'CPU load.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.cpu
+ -
+ type: MULTIPLIER
+ parameters:
+ - '100'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: cpu
+ -
+ tag: lxc
+ value: '{#LXC.ID}'
+ -
+ tag: name
+ value: '{#LXC.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ trigger_prototypes:
+ -
+ uuid: c0436342a19d4d6482fac70d2f04f530
+ expression: 'min(/Proxmox VE by HTTP/proxmox.lxc.cpu[{#LXC.ID}],5m) > {$PVE.LXC.CPU.PUSE.MAX.WARN:"{#LXC.ID}"}'
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})] high CPU usage (over {$PVE.LXC.CPU.PUSE.MAX.WARN:"{#LXC.ID}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1}'
+ priority: WARNING
+ description: 'CPU usage.'
+ tags:
+ -
+ tag: scope
+ value: performance
+ -
+ uuid: 8bc1bb78bf1340f3ab8d9f888d081e23
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Disk read, rate'
+ type: DEPENDENT
+ key: 'proxmox.lxc.diskread[{#LXC.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: Bps
+ description: 'Disk read.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.diskread
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: lxc
+ value: '{#LXC.ID}'
+ -
+ tag: name
+ value: '{#LXC.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: cee89da9e4a842228b30cc708e4d7745
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Disk write, rate'
+ type: DEPENDENT
+ key: 'proxmox.lxc.diskwrite[{#LXC.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: Bps
+ description: 'Disk write.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.diskwrite
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: lxc
+ value: '{#LXC.ID}'
+ -
+ tag: name
+ value: '{#LXC.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 686490c2a07f4a859bc7f1d56056cc5e
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Memory total'
+ type: DEPENDENT
+ key: 'proxmox.lxc.maxmem[{#LXC.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Total memory in Bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.maxmem
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: memory
+ -
+ tag: lxc
+ value: '{#LXC.ID}'
+ -
+ tag: name
+ value: '{#LXC.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: a60eaec875d347bd9247a174ba84f21e
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Memory usage'
+ type: DEPENDENT
+ key: 'proxmox.lxc.mem[{#LXC.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Used memory in Bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.mem
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: memory
+ -
+ tag: lxc
+ value: '{#LXC.ID}'
+ -
+ tag: name
+ value: '{#LXC.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: b19b6b5895d64ed9b4942f955e66dc81
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Incoming data, rate'
+ type: DEPENDENT
+ key: 'proxmox.lxc.netin[{#LXC.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: bps
+ description: 'Incoming data rate.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.netin
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
+ -
+ type: MULTIPLIER
+ parameters:
+ - '8'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: network
+ -
+ tag: lxc
+ value: '{#LXC.ID}'
+ -
+ tag: name
+ value: '{#LXC.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 5ac20ae95e664a3cb62b58cde4f67471
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Outgoing data, rate'
+ type: DEPENDENT
+ key: 'proxmox.lxc.netout[{#LXC.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: bps
+ description: 'Outgoing data rate.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.netout
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
+ -
+ type: MULTIPLIER
+ parameters:
+ - '8'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: network
+ -
+ tag: lxc
+ value: '{#LXC.ID}'
+ -
+ tag: name
+ value: '{#LXC.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 58efec1a4bb94bfab59d5985d036811e
+ name: 'Proxmox: LXC [{#LXC.NAME}/{#LXC.NAME}]: Status'
+ type: HTTP_AGENT
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Read LXC status.'
+ url: 'https://{HOST.CONN}:{$PVE.URL.PORT}/api2/json/nodes/{#NODE.NAME}/{#LXC.ID}/status/current'
+ headers:
+ -
+ name: Authorization
+ value: 'PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}'
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: bd213f6de4db4e1e84894b80acffa330
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Uptime'
+ type: DEPENDENT
+ key: 'proxmox.lxc.uptime[{#LXC.ID}]'
+ delay: '0'
+ history: 2w
+ trends: 0d
+ units: uptime
+ description: 'System uptime in ''N days, hh:mm:ss'' format.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.uptime
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: system
+ trigger_prototypes:
+ -
+ uuid: 0e55935a79b94bc096b6213d500f4f59
+ expression: 'last(/Proxmox VE by HTTP/proxmox.lxc.uptime[{#LXC.ID}])<10m'
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME}]: has been restarted (uptime < 10m)'
+ priority: INFO
+ description: 'Uptime is less than 10 minutes'
+ manual_close: 'YES'
+ tags:
+ -
+ tag: scope
+ value: notice
+ -
+ uuid: 535f521800564b0f83211740aabbc137
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Status'
+ type: DEPENDENT
+ key: 'proxmox.lxc.vmstatus[{#LXC.ID}]'
+ delay: '0'
+ history: 7d
+ trends: '0'
+ value_type: CHAR
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.status
+ master_item:
+ key: 'proxmox.lxc.status[{#LXC.ID}]'
+ tags:
+ -
+ tag: component
+ value: system
+ trigger_prototypes:
+ -
+ uuid: 71623950edf44bcb9453b2e8e63cb97b
+ expression: 'last(/Proxmox VE by HTTP/proxmox.lxc.vmstatus[{#LXC.ID}])<>"running"'
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Not running'
+ opdata: 'Current value: {ITEM.LASTVALUE1}'
+ priority: AVERAGE
+ description: 'LXC state is not "running".'
+ tags:
+ -
+ tag: scope
+ value: notice
+ trigger_prototypes:
+ -
+ uuid: f59e43f9de01419897aec1b9d4539b48
+ expression: 'min(/Proxmox VE by HTTP/proxmox.lxc.mem[{#LXC.ID}],5m) / last(/Proxmox VE by HTTP/proxmox.lxc.maxmem[{#LXC.ID}]) * 100 >{$PVE.LXC.MEMORY.PUSE.MAX.WARN:"{#LXC.ID}"}'
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})] high memory usage (over {$PVE.LXC.MEMORY.PUSE.MAX.WARN:"{#LXC.ID}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1} of {ITEM.LASTVALUE2}'
+ priority: WARNING
+ description: 'Memory usage.'
+ tags:
+ -
+ tag: scope
+ value: performance
+ graph_prototypes:
+ -
+ uuid: faad4c399e6047ea9fd95ffea40ce511
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: CPU usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.lxc.cpu[{#LXC.ID}]'
+ -
+ uuid: 2a850f53e5064ee3b4fb99aa191d411d
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Disk usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.lxc.diskwrite[{#LXC.ID}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.lxc.diskread[{#LXC.ID}]'
+ -
+ uuid: 54e79a1949ed40988a3901acf21bc3af
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Memory usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.lxc.mem[{#LXC.ID}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.lxc.maxmem[{#LXC.ID}]'
+ -
+ uuid: c6f2970f22294c7d8de7548a177596de
+ name: 'Proxmox: LXC [{#NODE.NAME}/{#LXC.NAME} ({#LXC.ID})]: Network usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.lxc.netin[{#LXC.ID}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.lxc.netout[{#LXC.ID}]'
+ master_item:
+ key: proxmox.cluster.resources
+ lld_macro_paths:
+ -
+ lld_macro: '{#RESOURCE.TYPE}'
+ path: $.type
+ -
+ lld_macro: '{#NODE.NAME}'
+ path: $.node
+ -
+ lld_macro: '{#LXC.NAME}'
+ path: $.name
+ -
+ lld_macro: '{#LXC.ID}'
+ path: $.id
+ -
+ uuid: ba55f69b12ee46faa319203483d8008f
+ name: 'Node discovery'
+ type: DEPENDENT
+ key: proxmox.node.discovery
+ delay: '0'
+ filter:
+ evaltype: AND
+ conditions:
+ -
+ macro: '{#RESOURCE.TYPE}'
+ value: ^node$
+ formulaid: A
+ item_prototypes:
+ -
+ uuid: c5e50056abda49f190e21f46f8cf7379
+ name: 'Proxmox: Node [{#NODE.NAME}]: CPU, usage'
+ type: DEPENDENT
+ key: 'proxmox.node.cpu[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: '%'
+ description: 'CPU usage.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.cpu
+ -
+ type: MULTIPLIER
+ parameters:
+ - '100'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: cpu
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ trigger_prototypes:
+ -
+ uuid: 84041dcb7c84426dad538ab32375fdb1
+ expression: 'min(/Proxmox VE by HTTP/proxmox.node.cpu[{#NODE.NAME}],5m) > {$PVE.CPU.PUSE.MAX.WARN:"{#NODE.NAME}"}'
+ name: 'Proxmox: Node [{#NODE.NAME}] high CPU usage (over {$PVE.CPU.PUSE.MAX.WARN:"{#NODE.NAME}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1}'
+ priority: WARNING
+ description: 'CPU usage.'
+ tags:
+ -
+ tag: scope
+ value: performance
+ -
+ uuid: 78e02931cf5c4c93b9c0092bd407a897
+ name: 'Proxmox: Node [{#NODE.NAME}]: CPU, iowait'
+ type: DEPENDENT
+ key: 'proxmox.node.iowait[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: '%'
+ description: 'CPU iowait time.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.iowait
+ -
+ type: MULTIPLIER
+ parameters:
+ - '100'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: cpu
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: c31b9d3f9f4d4f6fa5611038bb9a8401
+ name: 'Proxmox: Node [{#NODE.NAME}]: Kernel version'
+ type: DEPENDENT
+ key: 'proxmox.node.kernelversion[{#NODE.NAME}]'
+ delay: '0'
+ history: 2w
+ trends: '0'
+ value_type: CHAR
+ description: 'Kernel version info.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.kversion
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1d
+ master_item:
+ key: 'proxmox.node.status[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: system
+ trigger_prototypes:
+ -
+ uuid: 4020236474e840acb1bc480eb8c52a1f
+ expression: 'last(/Proxmox VE by HTTP/proxmox.node.kernelversion[{#NODE.NAME}],#1)<>last(/Proxmox VE by HTTP/proxmox.node.kernelversion[{#NODE.NAME}],#2) and length(last(/Proxmox VE by HTTP/proxmox.node.kernelversion[{#NODE.NAME}]))>0'
+ name: 'Proxmox: Node [{#NODE.NAME}]: Kernel version has changed'
+ opdata: 'Current value: {ITEM.LASTVALUE1}'
+ priority: INFO
+ description: 'Firmware version has changed. Ack to close'
+ manual_close: 'YES'
+ tags:
+ -
+ tag: scope
+ value: notice
+ -
+ uuid: 155bcbfd12f54614ab55d29e0fb5c2aa
+ name: 'Proxmox: Node [{#NODE.NAME}]: CPU, loadavg'
+ type: DEPENDENT
+ key: 'proxmox.node.loadavg[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: '%'
+ description: 'CPU average load.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.loadavg
+ -
+ type: MULTIPLIER
+ parameters:
+ - '100'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: cpu
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 59aab7121b1f4ff0b98a38cc75f39fb3
+ name: 'Proxmox: Node [{#NODE.NAME}]: Localtime'
+ type: DEPENDENT
+ key: 'proxmox.node.localtime[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ units: unixtime
+ description: 'Seconds since 1970-01-01 00:00:00 (local time).'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.localtime
+ master_item:
+ key: 'proxmox.node.time[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: system
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 0bb66733d10843438a090bf39eae92e2
+ name: 'Proxmox: Node [{#NODE.NAME}]: Memory, total'
+ type: DEPENDENT
+ key: 'proxmox.node.memtotal[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Memory total.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.memtotal
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: memory
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 04a2028e5d6640958da01c372f4407ec
+ name: 'Proxmox: Node [{#NODE.NAME}]: Memory, used'
+ type: DEPENDENT
+ key: 'proxmox.node.memused[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Memory usage.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.memused
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: memory
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 892f3b733a25475cb8fe30eeca3750f2
+ name: 'Proxmox: Node [{#NODE.NAME}]: Incoming data, rate'
+ type: DEPENDENT
+ key: 'proxmox.node.netin[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: bps
+ description: 'Network usage.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.netin
+ -
+ type: MULTIPLIER
+ parameters:
+ - '8'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: network
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 3048c6c023bc4fb58a8710d7306052fb
+ name: 'Proxmox: Node [{#NODE.NAME}]: Outgoing data, rate'
+ type: DEPENDENT
+ key: 'proxmox.node.netout[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: bps
+ description: 'Network usage.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.netout
+ -
+ type: MULTIPLIER
+ parameters:
+ - '8'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: network
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: b8c3ff9544d5490286c668d3320d2ee0
+ name: 'Proxmox: Node [{#NODE.NAME}]: Status'
+ type: DEPENDENT
+ key: 'proxmox.node.online[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ description: 'Indicates if the node is online or offline.'
+ valuemap:
+ name: 'Node online'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.data.[?(@.name == ''{#NODE.NAME}'' && @.type == ''node'')].online.first()'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: proxmox.cluster.status
+ tags:
+ -
+ tag: component
+ value: cluster
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ trigger_prototypes:
+ -
+ uuid: 41b7efb8822948b08de8adace2e124a9
+ expression: 'last(/Proxmox VE by HTTP/proxmox.node.online[{#NODE.NAME}]) <> 1'
+ name: 'Proxmox: Node [{#NODE.NAME}] offline'
+ opdata: 'Current value: {ITEM.LASTVALUE}'
+ priority: HIGH
+ description: 'Node offline.'
+ tags:
+ -
+ tag: scope
+ value: availability
+ -
+ uuid: f220249168d947b6b8b99c068af35650
+ name: 'Proxmox: Node [{#NODE.NAME}]: PVE version'
+ type: DEPENDENT
+ key: 'proxmox.node.pveversion[{#NODE.NAME}]'
+ delay: '0'
+ history: 2w
+ trends: '0'
+ value_type: CHAR
+ description: 'PVE manager version.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.pveversion
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1d
+ master_item:
+ key: 'proxmox.node.status[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: system
+ trigger_prototypes:
+ -
+ uuid: 5b92af55dbd84181bcab0f39e6effbe0
+ expression: 'last(/Proxmox VE by HTTP/proxmox.node.pveversion[{#NODE.NAME}],#1)<>last(/Proxmox VE by HTTP/proxmox.node.pveversion[{#NODE.NAME}],#2) and length(last(/Proxmox VE by HTTP/proxmox.node.pveversion[{#NODE.NAME}]))>0'
+ name: 'Proxmox: Node [{#NODE.NAME}]: PVE manager has changed'
+ opdata: 'Current value: {ITEM.LASTVALUE1}'
+ priority: INFO
+ description: 'Firmware version has changed. Ack to close'
+ manual_close: 'YES'
+ tags:
+ -
+ tag: scope
+ value: notice
+ -
+ uuid: 067954795121482093dd7967c6ca6ede
+ name: 'Proxmox: Node [{#NODE.NAME}]: Root filesystem, total'
+ type: DEPENDENT
+ key: 'proxmox.node.roottotal[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Root filesystem total.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.roottotal
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 2beadf6ba8b04a21b008ddf63bd2fa6b
+ name: 'Proxmox: Node [{#NODE.NAME}]: Root filesystem, used'
+ type: DEPENDENT
+ key: 'proxmox.node.rootused[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Root filesystem usage.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.rootused
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: fa2a60a98fd4445eadff4398ae6872bd
+ name: 'Proxmox: Node [{#NODE.NAME}]: RRD statistics'
+ type: HTTP_AGENT
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Read node RRD statistics.'
+ preprocessing:
+ -
+ type: JAVASCRIPT
+ parameters:
+ - |
+ var rrd_data = JSON.parse(value).data;
+ return JSON.stringify(rrd_data[rrd_data.length - 1])
+ url: 'https://{HOST.CONN}:{$PVE.URL.PORT}/api2/json/nodes/{#NODE.NAME}/rrddata'
+ query_fields:
+ -
+ name: timeframe
+ value: hour
+ -
+ name: cf
+ value: AVERAGE
+ headers:
+ -
+ name: Authorization
+ value: 'PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}'
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: c1ea4d4f83114c9b96fe81069602f060
+ name: 'Proxmox: Node [{#NODE.NAME}]: Status'
+ type: HTTP_AGENT
+ key: 'proxmox.node.status[{#NODE.NAME}]'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Read node status.'
+ url: 'https://{HOST.CONN}:{$PVE.URL.PORT}/api2/json/nodes/{#NODE.NAME}/status'
+ headers:
+ -
+ name: Authorization
+ value: 'PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}'
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 0dce6e5edd6d4ddab69932796b4301c0
+ name: 'Proxmox: Node [{#NODE.NAME}]: Swap filesystem, total'
+ type: DEPENDENT
+ key: 'proxmox.node.swaptotal[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Swap total.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.swaptotal
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 5f42addb719a412da6fd448d38d1a7d0
+ name: 'Proxmox: Node [{#NODE.NAME}]: Swap filesystem, used'
+ type: DEPENDENT
+ key: 'proxmox.node.swapused[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Swap used.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.swapused
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.node.rrd[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 42d7b4ff315a4cfa9af1aed5e141661d
+ name: 'Proxmox: Node [{#NODE.NAME}]: Time zone'
+ type: DEPENDENT
+ key: 'proxmox.node.timezone[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ trends: '0'
+ value_type: CHAR
+ description: 'Time zone.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.timezone
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 12h
+ master_item:
+ key: 'proxmox.node.time[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: system
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: c0c03653a0af426b8f61c77cabab38a4
+ name: 'Proxmox: Node [{#NODE.NAME}]: Time'
+ type: HTTP_AGENT
+ key: 'proxmox.node.time[{#NODE.NAME}]'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Read server time and time zone settings.'
+ url: 'https://{HOST.CONN}:{$PVE.URL.PORT}/api2/json/nodes/{#NODE.NAME}/time'
+ headers:
+ -
+ name: Authorization
+ value: 'PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}'
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: fc7f5811d338484bba5393a8a5718f67
+ name: 'Proxmox: Node [{#NODE.NAME}]: Uptime'
+ type: DEPENDENT
+ key: 'proxmox.node.uptime[{#NODE.NAME}]'
+ delay: '0'
+ history: 2w
+ trends: 0d
+ units: uptime
+ description: 'System uptime in ''N days, hh:mm:ss'' format.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.uptime
+ master_item:
+ key: 'proxmox.node.status[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: system
+ trigger_prototypes:
+ -
+ uuid: 529b69b98a86409d914d3464569b7901
+ expression: 'last(/Proxmox VE by HTTP/proxmox.node.uptime[{#NODE.NAME}])<10m'
+ name: 'Proxmox: Node [{#NODE.NAME}]: has been restarted (uptime < 10m)'
+ priority: INFO
+ description: 'Uptime is less than 10 minutes'
+ manual_close: 'YES'
+ tags:
+ -
+ tag: scope
+ value: notice
+ -
+ uuid: 384d479a04f044b192a74743f0a459b4
+ name: 'Proxmox: Node [{#NODE.NAME}]: Time'
+ type: DEPENDENT
+ key: 'proxmox.node.utctime[{#NODE.NAME}]'
+ delay: '0'
+ history: 7d
+ units: unixtime
+ description: 'Seconds since 1970-01-01 00:00:00 UTC.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.time
+ master_item:
+ key: 'proxmox.node.time[{#NODE.NAME}]'
+ tags:
+ -
+ tag: component
+ value: system
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ trigger_prototypes:
+ -
+ uuid: a0445b4e1ffd451595ecea0468b4a6a6
+ expression: 'min(/Proxmox VE by HTTP/proxmox.node.memused[{#NODE.NAME}],5m) / last(/Proxmox VE by HTTP/proxmox.node.memtotal[{#NODE.NAME}]) * 100 >{$PVE.MEMORY.PUSE.MAX.WARN:"{#NODE.NAME}"}'
+ name: 'Proxmox: Node [{#NODE.NAME}] high memory usage (over {$PVE.MEMORY.PUSE.MAX.WARN:"{#NODE.NAME}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1} of {ITEM.LASTVALUE2}'
+ priority: WARNING
+ description: 'Memory usage.'
+ tags:
+ -
+ tag: scope
+ value: performance
+ -
+ uuid: 3f88526e10a14319983fe14621ef10f9
+ expression: 'min(/Proxmox VE by HTTP/proxmox.node.rootused[{#NODE.NAME}],5m) / last(/Proxmox VE by HTTP/proxmox.node.roottotal[{#NODE.NAME}]) * 100 >{$PVE.ROOT.PUSE.MAX.WARN:"{#NODE.NAME}"}'
+ name: 'Proxmox: Node [{#NODE.NAME}] high root filesystem space usage (over {$PVE.ROOT.PUSE.MAX.WARN:"{#NODE.NAME}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1} of {ITEM.LASTVALUE2}'
+ priority: WARNING
+ description: 'Root filesystem space usage.'
+ tags:
+ -
+ tag: scope
+ value: capacity
+ -
+ uuid: f38ccc2e0e40430e801bf98b488e12e4
+ expression: 'min(/Proxmox VE by HTTP/proxmox.node.swapused[{#NODE.NAME}],5m) / last(/Proxmox VE by HTTP/proxmox.node.swaptotal[{#NODE.NAME}]) * 100 > {$PVE.SWAP.PUSE.MAX.WARN:"{#NODE.NAME}"} and last(/Proxmox VE by HTTP/proxmox.node.swaptotal[{#NODE.NAME}]) > 0'
+ name: 'Proxmox: Node [{#NODE.NAME}] high root filesystem space usage (over {$PVE.SWAP.PUSE.MAX.WARN:"{#NODE.NAME}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1} of {ITEM.LASTVALUE2}'
+ priority: WARNING
+ description: 'This trigger is ignored, if there is no swap configured.'
+ tags:
+ -
+ tag: scope
+ value: capacity
+ graph_prototypes:
+ -
+ uuid: 6c4fddd2a12d4e87987e47611e4a925f
+ name: 'Proxmox: Node [{#NODE.NAME}]: CPU usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.cpu[{#NODE.NAME}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.iowait[{#NODE.NAME}]'
+ -
+ sortorder: '2'
+ drawtype: GRADIENT_LINE
+ color: F63100
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.loadavg[{#NODE.NAME}]'
+ -
+ uuid: 0d59c329f12b494ebc8ff458a6b4714a
+ name: 'Proxmox: Node [{#NODE.NAME}]: Memory usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.memused[{#NODE.NAME}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.memtotal[{#NODE.NAME}]'
+ -
+ uuid: f07213b83a964aac9f51e2857936bef2
+ name: 'Proxmox: Node [{#NODE.NAME}]: Network usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.netin[{#NODE.NAME}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.netout[{#NODE.NAME}]'
+ -
+ uuid: f24340ea09324dd594f84c140f2797cc
+ name: 'Proxmox: Node [{#NODE.NAME}]: Root filesystem usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.rootused[{#NODE.NAME}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.roottotal[{#NODE.NAME}]'
+ -
+ uuid: f47c4c734737403d97a630f5f10b7d84
+ name: 'Proxmox: Node [{#NODE.NAME}]: Swap usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.swapused[{#NODE.NAME}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.swaptotal[{#NODE.NAME}]'
+ master_item:
+ key: proxmox.cluster.resources
+ lld_macro_paths:
+ -
+ lld_macro: '{#RESOURCE.TYPE}'
+ path: $.type
+ -
+ lld_macro: '{#NODE.NAME}'
+ path: $.node
+ -
+ uuid: 31aa7234aa294fce8f4735a9216ddf31
+ name: 'QEMU discovery'
+ type: DEPENDENT
+ key: proxmox.qemu.discovery
+ delay: '0'
+ filter:
+ evaltype: AND
+ conditions:
+ -
+ macro: '{#RESOURCE.TYPE}'
+ value: ^qemu$
+ formulaid: A
+ item_prototypes:
+ -
+ uuid: 196bf027d77742ea8960e350d9ea579e
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: CPU usage'
+ type: DEPENDENT
+ key: 'proxmox.qemu.cpu[{#QEMU.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: '%'
+ description: 'CPU load.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.cpu
+ -
+ type: MULTIPLIER
+ parameters:
+ - '100'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: cpu
+ -
+ tag: name
+ value: '{#QEMU.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ tag: qemu
+ value: '{#QEMU.ID}'
+ trigger_prototypes:
+ -
+ uuid: 84ed68d7cf2b48a48fc44e9c7a0d9b92
+ expression: 'min(/Proxmox VE by HTTP/proxmox.qemu.cpu[{#QEMU.ID}],5m) > {$PVE.VM.CPU.PUSE.MAX.WARN:"{#QEMU.ID}"}'
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})] high CPU usage (over {$PVE.VM.CPU.PUSE.MAX.WARN:"{#QEMU.ID}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1}'
+ priority: WARNING
+ description: 'CPU usage.'
+ tags:
+ -
+ tag: scope
+ value: performance
+ -
+ uuid: ffd3c0a6e9764d9ea0091d2fcf0234e2
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Disk read, rate'
+ type: DEPENDENT
+ key: 'proxmox.qemu.diskread[{#QEMU.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: Bps
+ description: 'Disk read.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.diskread
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: name
+ value: '{#QEMU.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ tag: qemu
+ value: '{#QEMU.ID}'
+ -
+ uuid: 7c02301822414849b8dc38ae26c74a7b
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Disk write, rate'
+ type: DEPENDENT
+ key: 'proxmox.qemu.diskwrite[{#QEMU.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: Bps
+ description: 'Disk write.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.diskwrite
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: name
+ value: '{#QEMU.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ tag: qemu
+ value: '{#QEMU.ID}'
+ -
+ uuid: 3c46d7e2f07049fc8f749157cf5627e9
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Memory total'
+ type: DEPENDENT
+ key: 'proxmox.qemu.maxmem[{#QEMU.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Total memory in Bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.maxmem
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: memory
+ -
+ tag: name
+ value: '{#QEMU.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ tag: qemu
+ value: '{#QEMU.ID}'
+ -
+ uuid: 9f4402482af549288f32f108ab801950
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Memory usage'
+ type: DEPENDENT
+ key: 'proxmox.qemu.mem[{#QEMU.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: B
+ description: 'Used memory in Bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.mem
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: memory
+ -
+ tag: name
+ value: '{#QEMU.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ tag: qemu
+ value: '{#QEMU.ID}'
+ -
+ uuid: ffd3c0a6e9764d9ea0091d2fcf0234e2
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Incoming data, rate'
+ type: DEPENDENT
+ key: 'proxmox.qemu.netin[{#QEMU.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: bps
+ description: 'Incoming data rate.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.netin
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
+ -
+ type: MULTIPLIER
+ parameters:
+ - '8'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: network
+ -
+ tag: name
+ value: '{#QEMU.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ tag: qemu
+ value: '{#QEMU.ID}'
+ -
+ uuid: 2cd398f1b9814551a7fad7e2bc66f6af
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Outgoing data, rate'
+ type: DEPENDENT
+ key: 'proxmox.qemu.netout[{#QEMU.ID}]'
+ delay: '0'
+ history: 7d
+ value_type: FLOAT
+ units: bps
+ description: 'Outgoing data rate.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.netout
+ -
+ type: CHANGE_PER_SECOND
+ parameters:
+ - ''
+ -
+ type: MULTIPLIER
+ parameters:
+ - '8'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 1h
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: network
+ -
+ tag: name
+ value: '{#QEMU.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ tag: qemu
+ value: '{#QEMU.ID}'
+ -
+ uuid: a3562f2f48834a88842da612fb6f464c
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME}]: Status'
+ type: HTTP_AGENT
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ history: '0'
+ trends: '0'
+ value_type: TEXT
+ description: 'Read VM status.'
+ url: 'https://{HOST.CONN}:{$PVE.URL.PORT}/api2/json/nodes/{#NODE.NAME}/{#QEMU.ID}/status/current'
+ headers:
+ -
+ name: Authorization
+ value: 'PVEAPIToken={$PVE.TOKEN.ID}={$PVE.TOKEN.SECRET}'
+ tags:
+ -
+ tag: component
+ value: raw
+ -
+ uuid: 77ba70e0ce6f486585f870d3b57033ba
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Uptime'
+ type: DEPENDENT
+ key: 'proxmox.qemu.uptime[{#QEMU.ID}]'
+ delay: '0'
+ history: 2w
+ trends: 0d
+ units: uptime
+ description: 'System uptime in ''N days, hh:mm:ss'' format.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.uptime
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: system
+ trigger_prototypes:
+ -
+ uuid: d4ba1faeb67940a192c1b50460793813
+ expression: 'last(/Proxmox VE by HTTP/proxmox.qemu.uptime[{#QEMU.ID}])<10m'
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME}]: has been restarted (uptime < 10m)'
+ priority: INFO
+ description: 'Uptime is less than 10 minutes'
+ manual_close: 'YES'
+ tags:
+ -
+ tag: scope
+ value: notice
+ -
+ uuid: 77ba70e0ce6f486585f870d3b57033ba
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Status'
+ type: DEPENDENT
+ key: 'proxmox.qemu.vmstatus[{#QEMU.ID}]'
+ delay: '0'
+ history: 7d
+ trends: '0'
+ value_type: CHAR
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - $.data.status
+ master_item:
+ key: 'proxmox.qemu.status[{#QEMU.ID}]'
+ tags:
+ -
+ tag: component
+ value: system
+ trigger_prototypes:
+ -
+ uuid: 8f57d13f278b459299c565846b4091f5
+ expression: 'last(/Proxmox VE by HTTP/proxmox.qemu.vmstatus[{#QEMU.ID}])<>"running"'
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Not running'
+ opdata: 'Current value: {ITEM.LASTVALUE1}'
+ priority: AVERAGE
+ description: 'VM state is not "running".'
+ tags:
+ -
+ tag: scope
+ value: notice
+ trigger_prototypes:
+ -
+ uuid: 5305bf2b71aa4b74917379c6e1b3c065
+ expression: 'min(/Proxmox VE by HTTP/proxmox.qemu.mem[{#QEMU.ID}],5m) / last(/Proxmox VE by HTTP/proxmox.qemu.maxmem[{#QEMU.ID}]) * 100 >{$PVE.VM.MEMORY.PUSE.MAX.WARN:"{#QEMU.ID}"}'
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})] high memory usage (over {$PVE.VM.MEMORY.PUSE.MAX.WARN:"{#QEMU.ID}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1} of {ITEM.LASTVALUE2}'
+ priority: WARNING
+ description: 'Memory usage.'
+ tags:
+ -
+ tag: scope
+ value: performance
+ graph_prototypes:
+ -
+ uuid: 602ae1d9d65149ada7aa56cc2d7d9309
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: CPU usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.qemu.cpu[{#QEMU.ID}]'
+ -
+ uuid: 391421ce25c74c14abe35723965f3357
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Disk usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.qemu.diskwrite[{#QEMU.ID}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.qemu.diskread[{#QEMU.ID}]'
+ -
+ uuid: 8522e98f30104f67bfdd1aff8b94d280
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Memory usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.qemu.mem[{#QEMU.ID}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.qemu.maxmem[{#QEMU.ID}]'
+ -
+ uuid: 391421ce25c74c14abe35723965f3357
+ name: 'Proxmox: VM [{#NODE.NAME}/{#QEMU.NAME} ({#QEMU.ID})]: Network usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.qemu.netin[{#QEMU.ID}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.qemu.netout[{#QEMU.ID}]'
+ master_item:
+ key: proxmox.cluster.resources
+ lld_macro_paths:
+ -
+ lld_macro: '{#RESOURCE.TYPE}'
+ path: $.type
+ -
+ lld_macro: '{#NODE.NAME}'
+ path: $.node
+ -
+ lld_macro: '{#QEMU.NAME}'
+ path: $.name
+ -
+ lld_macro: '{#QEMU.ID}'
+ path: $.id
+ -
+ uuid: 61faca6204854bc4af8dc6c5c63ddcd1
+ name: 'Storage discovery'
+ type: DEPENDENT
+ key: proxmox.storage.discovery
+ delay: '0'
+ filter:
+ evaltype: AND
+ conditions:
+ -
+ macro: '{#RESOURCE.TYPE}'
+ value: ^storage$
+ formulaid: A
+ item_prototypes:
+ -
+ uuid: c803813b43f24390b7e0d79fda824a54
+ name: 'Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Content'
+ type: DEPENDENT
+ key: 'proxmox.node.content[{#NODE.NAME},{#STORAGE.NAME}]'
+ delay: '0'
+ history: 7d
+ trends: '0'
+ value_type: CHAR
+ description: 'Allowed storage content types.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.data[?(@.id == "storage/{#NODE.NAME}/{#STORAGE.NAME}")].content.first()'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 12h
+ master_item:
+ key: proxmox.cluster.resources
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: name
+ value: '{#STORAGE.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 0edb3506231648c9820103a337486d63
+ name: 'Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Used'
+ type: DEPENDENT
+ key: 'proxmox.node.disk[{#NODE.NAME},{#STORAGE.NAME}]'
+ delay: '0'
+ history: 7d
+ units: B
+ description: 'Used disk space in bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.data[?(@.id == "storage/{#NODE.NAME}/{#STORAGE.NAME}")].disk.first()'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 12h
+ master_item:
+ key: proxmox.cluster.resources
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: name
+ value: '{#STORAGE.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: ced02242ff46454f9c49f3d44bf0de9a
+ name: 'Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Size'
+ type: DEPENDENT
+ key: 'proxmox.node.maxdisk[{#NODE.NAME},{#STORAGE.NAME}]'
+ delay: '0'
+ history: 7d
+ units: B
+ description: 'Storage size in bytes.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.data[?(@.id == "storage/{#NODE.NAME}/{#STORAGE.NAME}")].maxdisk.first()'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 12h
+ master_item:
+ key: proxmox.cluster.resources
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: name
+ value: '{#STORAGE.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ -
+ uuid: 4360858342254aecba7a77eb315cc2bb
+ name: 'Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Type'
+ type: DEPENDENT
+ key: 'proxmox.node.plugintype[{#NODE.NAME},{#STORAGE.NAME}]'
+ delay: '0'
+ history: 7d
+ trends: '0'
+ value_type: CHAR
+ description: 'More specific type, if available.'
+ preprocessing:
+ -
+ type: JSONPATH
+ parameters:
+ - '$.data[?(@.id == "storage/{#NODE.NAME}/{#STORAGE.NAME}")].plugintype.first()'
+ -
+ type: DISCARD_UNCHANGED_HEARTBEAT
+ parameters:
+ - 12h
+ master_item:
+ key: proxmox.cluster.resources
+ tags:
+ -
+ tag: component
+ value: storage
+ -
+ tag: name
+ value: '{#STORAGE.NAME}'
+ -
+ tag: node
+ value: '{#NODE.NAME}'
+ trigger_prototypes:
+ -
+ uuid: 404d9a8a6fa54d8c880006c9ec32f55a
+ expression: 'min(/Proxmox VE by HTTP/proxmox.node.disk[{#NODE.NAME},{#STORAGE.NAME}],5m) / last(/Proxmox VE by HTTP/proxmox.node.maxdisk[{#NODE.NAME},{#STORAGE.NAME}]) * 100 >{$PVE.STORAGE.PUSE.MAX.WARN:"{#NODE.NAME}/{#STORAGE.NAME}"}'
+ name: 'Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}] high filesystem space usage (over {$PVE.STORAGE.PUSE.MAX.WARN:"{#NODE.NAME}/{#STORAGE.NAME}"}% use)'
+ opdata: 'Current use: {ITEM.LASTVALUE1} of {ITEM.LASTVALUE2}'
+ priority: WARNING
+ description: 'Root filesystem space usage.'
+ tags:
+ -
+ tag: scope
+ value: capacity
+ graph_prototypes:
+ -
+ uuid: 726dbf7dd13b40c8b240cb58f753a9bf
+ name: 'Proxmox: Storage [{#NODE.NAME}/{#STORAGE.NAME}]: Usage'
+ graph_items:
+ -
+ drawtype: GRADIENT_LINE
+ color: 1A7C11
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.disk[{#NODE.NAME},{#STORAGE.NAME}]'
+ -
+ sortorder: '1'
+ drawtype: GRADIENT_LINE
+ color: 2774A4
+ item:
+ host: 'Proxmox VE by HTTP'
+ key: 'proxmox.node.maxdisk[{#NODE.NAME},{#STORAGE.NAME}]'
+ master_item:
+ key: proxmox.cluster.resources
+ lld_macro_paths:
+ -
+ lld_macro: '{#RESOURCE.TYPE}'
+ path: $.type
+ -
+ lld_macro: '{#NODE.NAME}'
+ path: $.node
+ -
+ lld_macro: '{#STORAGE.NAME}'
+ path: $.storage
+ tags:
+ -
+ tag: class
+ value: software
+ -
+ tag: target
+ value: proxmox
+ macros:
+ -
+ macro: '{$PVE.CPU.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used CPU in percentage.'
+ -
+ macro: '{$PVE.LXC.CPU.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used CPU in percentage.'
+ -
+ macro: '{$PVE.LXC.MEMORY.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used memory in percentage.'
+ -
+ macro: '{$PVE.MEMORY.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used memory in percentage.'
+ -
+ macro: '{$PVE.ROOT.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used root space in percentage.'
+ -
+ macro: '{$PVE.STORAGE.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used storage space in percentage.'
+ -
+ macro: '{$PVE.SWAP.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used swap space in percentage.'
+ -
+ macro: '{$PVE.TOKEN.ID}'
+ value: USER@REALM!TOKENID
+ description: 'API tokens allow stateless access to most parts of the REST API by another system, software or API client.'
+ -
+ macro: '{$PVE.TOKEN.SECRET}'
+ value: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ description: 'Secret key.'
+ -
+ macro: '{$PVE.URL.PORT}'
+ value: '8006'
+ description: 'The API uses the HTTPS protocol and the server listens to port 8006 by default.'
+ -
+ macro: '{$PVE.VM.CPU.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used CPU in percentage.'
+ -
+ macro: '{$PVE.VM.MEMORY.PUSE.MAX.WARN}'
+ value: '90'
+ description: 'Maximum used memory in percentage.'
+ valuemaps:
+ -
+ uuid: d4bbd08f3a324a57af97a17f819cb3f3
+ name: 'Cluster quorate'
+ mappings:
+ -
+ value: '1'
+ newvalue: 'Yes'
+ -
+ value: '0'
+ newvalue: 'No'
+ -
+ uuid: 99c0bc65efb34d298586320bdcf14209
+ name: 'Node online'
+ mappings:
+ -
+ value: '1'
+ newvalue: Online
+ -
+ value: '0'
+ newvalue: Offline