zabbix-agent-addons/zabbix_templates/Template_App_PVE_Cluster.xml

2055 lines
99 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>5.0</version>
<date>2021-06-19T12:09:52Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Template_App_PVE_Cluster</template>
<name>Template_App_PVE_Cluster</name>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>Network</name>
</application>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<items>
<item>
<name>PVE Cluster: info</name>
<key>pve.check.all[cluster]</key>
<delay>5m</delay>
<history>1h</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Online nodes</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,all_online]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.all_online</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
<triggers>
<trigger>
<expression>{last()}&lt;&gt;1</expression>
<name>PVE Cluster: at least one node is not online</name>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>PVE Cluster: Number of CPU</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,cpu]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>cpu</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.cpuinfo.cpus</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Disk reads</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,diskread]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B/s</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.disk.read</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Disk writes</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,diskwrite]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B/s</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.disk.write</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Memory shared by KSM</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,ksm_shared]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.ksm.shared</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Average CPU load</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,loadavg5]</key>
<delay>0</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.loadavg[0]</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Number of LXC guests</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,lxc]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>!container(s)</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.lxc</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
</item>
<item>
<name>PVE Cluster: Number of running LXC guests</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,lxc_running]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>!container(s)</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.lxc_running</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
</item>
<item>
<name>PVE Cluster: Free memory</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,mem_free]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.memory.free</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Total memory</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,mem_total]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.memory.total</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Used memory</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,mem_used]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.memory.used</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Inbound network trafic</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,netin]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>b/s</units>
<applications>
<application>
<name>Network</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.network.in</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>8</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Outbound network trafic</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,netout]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>b/s</units>
<applications>
<application>
<name>Network</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.network.out</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>8</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
</item>
<item>
<name>PVE Cluster: Number of nodes</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,nodes]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>node</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.nodes</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
<triggers>
<trigger>
<expression>{diff()}=1</expression>
<name>PVE Cluster: Number of nodes changed</name>
<priority>INFO</priority>
</trigger>
</triggers>
</item>
<item>
<name>PVE Cluster: Number of QEMU guests</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,qemu]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>!vm</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.qemu</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
</item>
<item>
<name>PVE Cluster: Number of running QEMU guests</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,qemu_running]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>!vm</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.qemu_running</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
</item>
<item>
<name>PVE Cluster: Quorate</name>
<type>DEPENDENT</type>
<key>pve.check[cluster,quorate]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.quorate</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[cluster]</key>
</master_item>
<request_method>POST</request_method>
<triggers>
<trigger>
<expression>{last()}&lt;&gt;1</expression>
<name>PVE Cluster: Cluster is not quorate</name>
<priority>DISASTER</priority>
</trigger>
</triggers>
</item>
</items>
<discovery_rules>
<discovery_rule>
<name>Guests discovery</name>
<key>pve.discovery[guests,notemplate]</key>
<delay>1h</delay>
<filter>
<conditions>
<condition>
<macro>{#PVE_GUEST_TEMPLATE}</macro>
<value>^0$</value>
<formulaid>A</formulaid>
</condition>
</conditions>
</filter>
<lifetime>7d</lifetime>
<item_prototypes>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) Info</name>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
<delay>5m</delay>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) cpu score</name>
<type>CALCULATED</type>
<key>pve.check[guest,{#PVE_GUEST_ID},cpuscore]</key>
<delay>5m</delay>
<trends>1825d</trends>
<params>last(&quot;pve.check[guest,{#PVE_GUEST_ID},maxcpu]&quot;)*last(&quot;pve.check[guest,{#PVE_GUEST_ID},cpu]&quot;)</params>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) cpu usage</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},cpu]</key>
<delay>0</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.cpu</params>
</step>
<step>
<type>MULTIPLIER</type>
<params>100</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) disk reads</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},diskread]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B/s</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.diskread</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest:{#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) disk writes</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},diskwrite]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B/s</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.diskwrite</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) number of vcpu</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},maxcpu]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>cpu</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.maxcpu</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>86400</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) disk space</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},maxdisk]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.maxdisk</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) allocated memory</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},maxmem]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.maxmem</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) used memory</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},mem]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mem</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) inbound network trafic</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},netin]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>b/s</units>
<applications>
<application>
<name>Network</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.netin</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>8</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) outbound network trafic</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},netout]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>b/s</units>
<applications>
<application>
<name>Network</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.netout</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>8</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) hosting node</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},node]</key>
<delay>0</delay>
<trends>0</trends>
<value_type>CHAR</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.node</params>
</step>
<step>
<type>DISCARD_UNCHANGED</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) status</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},status]</key>
<delay>0</delay>
<trends>0</trends>
<value_type>CHAR</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status</params>
</step>
<step>
<type>DISCARD_UNCHANGED</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Guest: {#PVE_GUEST_ID} ({#PVE_GUEST_NAME}) uptime</name>
<type>DEPENDENT</type>
<key>pve.check[guest,{#PVE_GUEST_ID},uptime]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>s</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.uptime</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[guest,{#PVE_GUEST_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
</item_prototypes>
<graph_prototypes>
<graph_prototype>
<name>PVE Guest: {#PVE_GUEST_NAME} ({#PVE_GUEST_ID}): CPU</name>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>EE0000</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[guest,{#PVE_GUEST_ID},cpu]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>PVE Guest: {#PVE_GUEST_NAME} ({#PVE_GUEST_ID}): Disk I/O</name>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[guest,{#PVE_GUEST_ID},diskread]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>F63100</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[guest,{#PVE_GUEST_ID},diskwrite]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>PVE Guest: {#PVE_GUEST_NAME} ({#PVE_GUEST_ID}): Memory</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>00AA00</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[guest,{#PVE_GUEST_ID},mem]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>BOLD_LINE</drawtype>
<color>DD0000</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[guest,{#PVE_GUEST_ID},maxmem]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>PVE Guest: {#PVE_GUEST_NAME} ({#PVE_GUEST_ID}): Network trafic</name>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>009900</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[guest,{#PVE_GUEST_ID},netin]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>FF9999</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[guest,{#PVE_GUEST_ID},netout]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>PVE Guest: {#PVE_GUEST_NAME} ({#PVE_GUEST_ID}): Uptime</name>
<graph_items>
<graph_item>
<drawtype>FILLED_REGION</drawtype>
<color>EE0000</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[guest,{#PVE_GUEST_ID},uptime]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
<request_method>POST</request_method>
</discovery_rule>
<discovery_rule>
<name>Nodes discovery</name>
<key>pve.discovery[nodes]</key>
<delay>1h</delay>
<lifetime>7d</lifetime>
<item_prototypes>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME}</name>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
<delay>5m</delay>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} number of CPU</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},cpus]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>cpu</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.cpuinfo.cpus</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} memory shared by KSM</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},ksm_shared]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.ksm.shared</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} kernel version</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},kversion]</key>
<delay>0</delay>
<trends>0</trends>
<value_type>CHAR</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.kversion</params>
</step>
<step>
<type>DISCARD_UNCHANGED</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} LXC guests</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},lxc]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>!container(s)</units>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.lxc</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} running LXC guests</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},lxc_running]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>!container(s)</units>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.lxc_running</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} free memory</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},mem_free]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.memory.free</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} total memory</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},mem_total]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.memory.total</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} used memory</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},mem_used]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.memory.used</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} pve version</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},pveversion]</key>
<delay>0</delay>
<trends>0</trends>
<value_type>CHAR</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.pveversion</params>
</step>
<step>
<type>DISCARD_UNCHANGED</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} QEMU guests</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},qemu]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>!vm</units>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.qemu</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} running QEMU guests</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},qemu_running]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>!vm</units>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.qemu_running</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>PVE Node: {#PVE_NODE_NAME} uptime</name>
<type>DEPENDENT</type>
<key>pve.check[node,{#PVE_NODE_NAME},uptime]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>s</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.status.uptime</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[node,{#PVE_NODE_NAME}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
</item_prototypes>
<graph_prototypes>
<graph_prototype>
<name>PVE Node: {#PVE_NODE_NAME}: Memory</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[node,{#PVE_NODE_NAME},mem_used]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>B2EBF2</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[node,{#PVE_NODE_NAME},ksm_shared]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
<request_method>POST</request_method>
</discovery_rule>
<discovery_rule>
<name>Pools discovery</name>
<key>pve.discovery[pools]</key>
<delay>1h</delay>
<lifetime>7d</lifetime>
<item_prototypes>
<item_prototype>
<name>Info du pool {#PVE_POOL_ID}</name>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
<delay>5m</delay>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>Score CPU du pool {#PVE_POOL_ID}</name>
<type>CALCULATED</type>
<key>pve.check[pool,{#PVE_POOL_ID},cpuscore]</key>
<delay>5m</delay>
<trends>1825d</trends>
<params>last(&quot;pve.check[pool,{#PVE_POOL_ID},maxcpu]&quot;)*last(&quot;pve.check[pool,{#PVE_POOL_ID},cpu]&quot;)</params>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} CPU usage</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},cpu]</key>
<delay>0</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.cpu</params>
</step>
<step>
<type>MULTIPLIER</type>
<params>100</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} disk reads</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},diskread]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B/s</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.diskread</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} disk writes</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},diskwrite]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B/s</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.diskwrite</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} number of LXC guests</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},guests_lxc]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.lxc</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} number of qemu guests</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},guests_qemu]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.qemu</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} number of vcpu allocated</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},maxcpu]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>cpu</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.maxcpu</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} disk allocated</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},maxdisk]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.maxdisk</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} Memory allocation</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},maxmem]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.maxmem</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} Memory usage</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},mem]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.mem</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} inbound network trafic</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},netin]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>b/s</units>
<applications>
<application>
<name>Network</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.netin</params>
</step>
<step>
<type>MULTIPLIER</type>
<params>8</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} outbound network trafic</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},netout]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>b/s</units>
<applications>
<application>
<name>Network</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.guests.netout</params>
</step>
<step>
<type>MULTIPLIER</type>
<params>8</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} number of LXC templates</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},templates_lxc]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.templates.lxc</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool:: {#PVE_POOL_ID} number of qemu templates</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},templates_qemu]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.templates.qemu</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Pool: {#PVE_POOL_ID} disk space</name>
<type>DEPENDENT</type>
<key>pve.check[pool,{#PVE_POOL_ID},template_maxdisk]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.templates.maxdisk</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[pool,{#PVE_POOL_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
</item_prototypes>
<graph_prototypes>
<graph_prototype>
<name>PVE: Pool: {#PVE_POOL_ID}: Disk I/O</name>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>00BB00</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},diskread]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>EE0000</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},diskwrite]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>PVE: Pool: {#PVE_POOL_ID}: Disk space allocation</name>
<type>STACKED</type>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<color>2774A4</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},maxdisk]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>DD0000</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},template_maxdisk]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>PVE: Pool: {#PVE_POOL_ID}: Memory usage</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>00AA00</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},mem]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>BOLD_LINE</drawtype>
<color>EE0000</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},maxmem]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>PVE: Pool: {#PVE_POOL_ID}: Trafic réseau</name>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>00AA00</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},netin]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>FF9999</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},netout]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>PVE: Pool: {#PVE_POOL_ID} CPU usage</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>000099</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},cpu]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>BOLD_LINE</drawtype>
<color>EE0000</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[pool,{#PVE_POOL_ID},maxcpu]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
<request_method>POST</request_method>
</discovery_rule>
<discovery_rule>
<name>Storage discovery</name>
<key>pve.discovery[storage]</key>
<delay>1h</delay>
<filter>
<evaltype>AND</evaltype>
<conditions>
<condition>
<macro>{#PVE_STOR_CONTENT}</macro>
<value>@decouverte_stor_pve</value>
<formulaid>A</formulaid>
</condition>
<condition>
<macro>{#PVE_STOR_STATUS}</macro>
<value>1</value>
<formulaid>B</formulaid>
</condition>
</conditions>
</filter>
<lifetime>7d</lifetime>
<item_prototypes>
<item_prototype>
<name>PVE Storage: {#PVE_STOR_ID} Info</name>
<key>pve.check.all[storage,{#PVE_STOR_ID}]</key>
<delay>15m</delay>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Storage: {#PVE_STOR_ID} Allocated disk space</name>
<type>DEPENDENT</type>
<key>pve.check[storage,{#PVE_STOR_ID},disk]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.disk</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[storage,{#PVE_STOR_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
<item_prototype>
<name>PVE Storage: {#PVE_STOR_ID} Total space</name>
<type>DEPENDENT</type>
<key>pve.check[storage,{#PVE_STOR_ID},maxdisk]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Vitualization</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.maxdisk</params>
</step>
</preprocessing>
<master_item>
<key>pve.check.all[storage,{#PVE_STOR_ID}]</key>
</master_item>
<request_method>POST</request_method>
</item_prototype>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
<expression>{Template_App_PVE_Cluster:pve.check[storage,{#PVE_STOR_ID},disk].last()}*100/{Template_App_PVE_Cluster:pve.check[storage,{#PVE_STOR_ID},maxdisk].last()}&gt;{$PVE_STOR_WARN}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{Template_App_PVE_Cluster:pve.check[storage,{#PVE_STOR_ID},disk].last()}*100/{Template_App_PVE_Cluster:pve.check[storage,{#PVE_STOR_ID},maxdisk].last()}&lt;{$PVE_STOR_WARN}-2</recovery_expression>
<name>PVE Storage: {#PVE_STOR_ID} is using {ITEM.LASTVALUE1}</name>
<priority>WARNING</priority>
</trigger_prototype>
</trigger_prototypes>
<graph_prototypes>
<graph_prototype>
<name>PVE: Stockage: Occupation {#PVE_STOR_ID}</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[storage,{#PVE_STOR_ID},disk]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>BOLD_LINE</drawtype>
<color>F63100</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[storage,{#PVE_STOR_ID},maxdisk]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
<request_method>POST</request_method>
</discovery_rule>
</discovery_rules>
<macros>
<macro>
<macro>{$PVE_GUEST_REBOOT_WARN}</macro>
<value>1h</value>
</macro>
<macro>
<macro>{$PVE_LOAD_COEF}</macro>
<value>1</value>
</macro>
<macro>
<macro>{$PVE_MEM_MAX}</macro>
<value>82</value>
</macro>
<macro>
<macro>{$PVE_STOR_WARN}</macro>
<value>90</value>
</macro>
</macros>
</template>
</templates>
<triggers>
<trigger>
<expression>{Template_App_PVE_Cluster:pve.check[cluster,loadavg5].avg(20m)}&gt;{Template_App_PVE_Cluster:pve.check[cluster,cpu].last()}*{$PVE_LOAD_COEF}</expression>
<name>PVE Cluster: High load average ({ITEM.VALUE1})</name>
<priority>WARNING</priority>
</trigger>
<trigger>
<expression>100*{Template_App_PVE_Cluster:pve.check[cluster,mem_used].last()}/{Template_App_PVE_Cluster:pve.check[cluster,mem_total].last()}&gt;{$PVE_MEM_MAX}</expression>
<name>PVE Cluster: High memory usage ({ITEM.VALUE1})</name>
<priority>WARNING</priority>
</trigger>
</triggers>
<graphs>
<graph>
<name>PVE Cluster: Global disk I/O</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>81C784</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,diskread]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>F44336</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,diskwrite]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>PVE Cluster: Global network trafic</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>00AA00</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,netin]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>FF9999</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,netout]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>PVE Cluster: Guests</name>
<type>STACKED</type>
<graph_items>
<graph_item>
<sortorder>1</sortorder>
<color>F63100</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,lxc_running]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>1A7C11</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,qemu_running]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>PVE Cluster: KSM shared memory</name>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,ksm_shared]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>PVE Cluster: Load average</name>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>008800</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,loadavg5]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>PVE Cluster: Memory usage</name>
<type>STACKED</type>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>FILLED_REGION</drawtype>
<color>1A7C11</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,mem_used]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>99FFFF</color>
<item>
<host>Template_App_PVE_Cluster</host>
<key>pve.check[cluster,mem_free]</key>
</item>
</graph_item>
</graph_items>
</graph>
</graphs>
</zabbix_export>