<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>5.0</version>
<date>2023-01-12T06:03:18Z</date>
<groups>
<group>
<name>Templates/Operating systems</name>
</group>
</groups>
<templates>
<template>
<template>Template Module Linux block devices by Zabbix agent</template>
<name>Template Module Linux block devices by Zabbix agent</name>
<description>Template tooling version used: 0.39</description>
<groups>
<group>
<name>Templates/Modules</name>
</group>
</groups>
<applications>
<application>
<name>Storage</name>
</application>
<application>
<name>Zabbix raw items</name>
</application>
</applications>
<discovery_rules>
<discovery_rule>
<name>Block devices discovery</name>
<key>vfs.dev.discovery</key>
<delay>1h</delay>
<filter>
<evaltype>AND</evaltype>
<conditions>
<condition>
<macro>{#DEVTYPE}</macro>
<value>disk</value>
<formulaid>A</formulaid>
</condition>
<condition>
<macro>{#DEVNAME}</macro>
<value>{$VFS.DEV.DEVNAME.MATCHES}</value>
<formulaid>B</formulaid>
</condition>
<condition>
<macro>{#DEVNAME}</macro>
<value>{$VFS.DEV.DEVNAME.NOT_MATCHES}</value>
<operator>NOT_MATCHES_REGEX</operator>
<formulaid>C</formulaid>
</condition>
</conditions>
</filter>
<item_prototypes>
<item_prototype>
<name>{#DEVNAME}: Disk average queue size (avgqu-sz)</name>
<type>DEPENDENT</type>
<key>vfs.dev.queue_size[{#DEVNAME}]</key>
<delay>0</delay>
<history>7d</history>
<value_type>FLOAT</value_type>
<description>Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected.</description>
<application_prototypes>
<application_prototype>
<name>Disk {#DEVNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$[10]</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>0.001</params>
</step>
</preprocessing>
<master_item>
<key>vfs.file.contents[/sys/block/{#DEVNAME}/stat]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk read request avg waiting time (r_await)</name>
<type>CALCULATED</type>
<key>vfs.dev.read.await[{#DEVNAME}]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>!ms</units>
<params>(last("vfs.dev.read.time.rate[{#DEVNAME}]")/(last("vfs.dev.read.rate[{#DEVNAME}]")+(last("vfs.dev.read.rate[{#DEVNAME}]")=0)))*1000*(last("vfs.dev.read.rate[{#DEVNAME}]") > 0)</params>
<description>This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.</description>
<application_prototypes>
<application_prototype>
<name>Disk {#DEVNAME}</name>
</application_prototype>
</application_prototypes>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk read rate</name>
<type>DEPENDENT</type>
<key>vfs.dev.read.rate[{#DEVNAME}]</key>
<delay>0</delay>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>!r/s</units>
<description>r/s. The number (after merges) of read requests completed per second for the device.</description>
<application_prototypes>
<application_prototype>
<name>Disk {#DEVNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$[0]</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.file.contents[/sys/block/{#DEVNAME}/stat]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk read time (rate)</name>
<type>DEPENDENT</type>
<key>vfs.dev.read.time.rate[{#DEVNAME}]</key>
<delay>0</delay>
<history>7d</history>
<value_type>FLOAT</value_type>
<description>Rate of total read time counter. Used in r_await calculation</description>
<applications>
<application>
<name>Zabbix raw items</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$[3]</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>0.001</params>
</step>
</preprocessing>
<master_item>
<key>vfs.file.contents[/sys/block/{#DEVNAME}/stat]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk utilization</name>
<type>DEPENDENT</type>
<key>vfs.dev.util[{#DEVNAME}]</key>
<delay>0</delay>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests.</description>
<application_prototypes>
<application_prototype>
<name>Disk {#DEVNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$[9]</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>0.1</params>
</step>
</preprocessing>
<master_item>
<key>vfs.file.contents[/sys/block/{#DEVNAME}/stat]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk write request avg waiting time (w_await)</name>
<type>CALCULATED</type>
<key>vfs.dev.write.await[{#DEVNAME}]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>!ms</units>
<params>(last("vfs.dev.write.time.rate[{#DEVNAME}]")/(last("vfs.dev.write.rate[{#DEVNAME}]")+(last("vfs.dev.write.rate[{#DEVNAME}]")=0)))*1000*(last("vfs.dev.write.rate[{#DEVNAME}]") > 0)</params>
<description>This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.</description>
<application_prototypes>
<application_prototype>
<name>Disk {#DEVNAME}</name>
</application_prototype>
</application_prototypes>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk write rate</name>
<type>DEPENDENT</type>
<key>vfs.dev.write.rate[{#DEVNAME}]</key>
<delay>0</delay>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>!w/s</units>
<description>w/s. The number (after merges) of write requests completed per second for the device.</description>
<application_prototypes>
<application_prototype>
<name>Disk {#DEVNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$[4]</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.file.contents[/sys/block/{#DEVNAME}/stat]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk write time (rate)</name>
<type>DEPENDENT</type>
<key>vfs.dev.write.time.rate[{#DEVNAME}]</key>
<delay>0</delay>
<history>7d</history>
<value_type>FLOAT</value_type>
<description>Rate of total write time counter. Used in w_await calculation</description>
<applications>
<application>
<name>Zabbix raw items</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$[7]</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>0.001</params>
</step>
</preprocessing>
<master_item>
<key>vfs.file.contents[/sys/block/{#DEVNAME}/stat]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Get stats</name>
<key>vfs.file.contents[/sys/block/{#DEVNAME}/stat]</key>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<description>Get contents of /sys/block/{#DEVNAME}/stat for disk stats.</description>
<applications>
<application>
<name>Zabbix raw items</name>
</application>
</applications>
<preprocessing>
<step>
<type>JAVASCRIPT</type>
<params>return JSON.stringify(value.trim().split(/ +/));</params>
</step>
</preprocessing>
</item_prototype>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
<expression>{Template Module Linux block devices by Zabbix agent:vfs.dev.read.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or {Template Module Linux block devices by Zabbix agent:vfs.dev.write.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}</expression>
<name>{#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m)</name>
<priority>WARNING</priority>
<description>This trigger might indicate disk {#DEVNAME} saturation.</description>
<manual_close>YES</manual_close>
</trigger_prototype>
</trigger_prototypes>
<graph_prototypes>
<graph_prototype>
<name>{#DEVNAME}: Disk average waiting time</name>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template Module Linux block devices by Zabbix agent</host>
<key>vfs.dev.read.await[{#DEVNAME}]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
<host>Template Module Linux block devices by Zabbix agent</host>
<key>vfs.dev.write.await[{#DEVNAME}]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>{#DEVNAME}: Disk read/write rates</name>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template Module Linux block devices by Zabbix agent</host>
<key>vfs.dev.read.rate[{#DEVNAME}]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
<host>Template Module Linux block devices by Zabbix agent</host>
<key>vfs.dev.write.rate[{#DEVNAME}]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>{#DEVNAME}: Disk utilization and queue</name>
<graph_items>
<graph_item>
<color>1A7C11</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template Module Linux block devices by Zabbix agent</host>
<key>vfs.dev.queue_size[{#DEVNAME}]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
<host>Template Module Linux block devices by Zabbix agent</host>
<key>vfs.dev.util[{#DEVNAME}]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1h</params>
</step>
</preprocessing>
</discovery_rule>
</discovery_rules>
<macros>
<macro>
<macro>{$VFS.DEV.DEVNAME.MATCHES}</macro>
<value>.+</value>
<description>This macro is used in block devices discovery. Can be overridden on the host or linked template level</description>
</macro>
<macro>
<macro>{$VFS.DEV.DEVNAME.NOT_MATCHES}</macro>
<value>^(loop[0-9]*|sd[a-z][0-9]+|nbd[0-9]+|sr[0-9]+|fd[0-9]+|dm-[0-9]+|ram[0-9]+|ploop[a-z0-9]+|md[0-9]*|hcp[0-9]*|zram[0-9]*)</value>
<description>This macro is used in block devices discovery. Can be overridden on the host or linked template level</description>
</macro>
<macro>
<macro>{$VFS.DEV.READ.AWAIT.WARN}</macro>
<value>20</value>
<description>Disk read average response time (in ms) before the trigger would fire</description>
</macro>
<macro>
<macro>{$VFS.DEV.WRITE.AWAIT.WARN}</macro>
<value>20</value>
<description>Disk write average response time (in ms) before the trigger would fire</description>
</macro>
</macros>
</template>
<template>
<template>Template Module Linux CPU by Zabbix agent</template>
<name>Template Module Linux CPU by Zabbix agent</name>
<description>Template tooling version used: 0.39</description>
<groups>
<group>
<name>Templates/Modules</name>
</group>
</groups>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
<items>
<item>
<name>Interrupts per second</name>
<key>system.cpu.intr</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
<preprocessing>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
</item>
<item>
<name>Load average (1m avg)</name>
<key>system.cpu.load[all,avg1]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>Load average (15m avg)</name>
<key>system.cpu.load[all,avg15]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>Load average (5m avg)</name>
<key>system.cpu.load[all,avg5]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>Number of CPUs</name>
<key>system.cpu.num</key>
<history>7d</history>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1d</params>
</step>
</preprocessing>
</item>
<item>
<name>Context switches per second</name>
<key>system.cpu.switches</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
<preprocessing>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
</item>
<item>
<name>CPU utilization</name>
<type>DEPENDENT</type>
<key>system.cpu.util</key>
<delay>0</delay>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>CPU utilization in %.</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
<preprocessing>
<step>
<type>JAVASCRIPT</type>
<params>//Calculate utilization
return (100 - value)</params>
</step>
</preprocessing>
<master_item>
<key>system.cpu.util[,idle]</key>
</master_item>
<triggers>
<trigger>
<expression>{min(5m)}>{$CPU.UTIL.CRIT}</expression>
<name>High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)</name>
<opdata>Current utilization: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
<description>CPU utilization is too high. The system might be slow to respond.</description>
<dependencies>
<dependency>
<name>Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)</name>
<expression>{Template Module Linux CPU by Zabbix agent:system.cpu.load[all,avg1].min(5m)}/{Template Module Linux CPU by Zabbix agent:system.cpu.num.last()}>{$LOAD_AVG_PER_CPU.MAX.WARN}
and {Template Module Linux CPU by Zabbix agent:system.cpu.load[all,avg5].last()}>0
and {Template Module Linux CPU by Zabbix agent:system.cpu.load[all,avg15].last()}>0</expression>
</dependency>
</dependencies>
</trigger>
</triggers>
</item>
<item>
<name>CPU guest nice time</name>
<key>system.cpu.util[,guest_nice]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel).</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU guest time</name>
<key>system.cpu.util[,guest]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>Guest time (time spent running a virtual CPU for a guest operating system).</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU idle time</name>
<key>system.cpu.util[,idle]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>The time the CPU has spent doing nothing.</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU interrupt time</name>
<key>system.cpu.util[,interrupt]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>The amount of time the CPU has been servicing hardware interrupts.</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU iowait time</name>
<key>system.cpu.util[,iowait]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>Amount of time the CPU has been waiting for I/O to complete.</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU nice time</name>
<key>system.cpu.util[,nice]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>The time the CPU has spent running users' processes that have been niced.</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU softirq time</name>
<key>system.cpu.util[,softirq]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>The amount of time the CPU has been servicing software interrupts.</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU steal time</name>
<key>system.cpu.util[,steal]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine).</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU system time</name>
<key>system.cpu.util[,system]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>The time the CPU has spent running the kernel and its processes.</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
<item>
<name>CPU user time</name>
<key>system.cpu.util[,user]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>The time the CPU has spent running users' processes that are not niced.</description>
<applications>
<application>
<name>CPU</name>
</application>
</applications>
</item>
</items>
<macros>
<macro>
<macro>{$CPU.UTIL.CRIT}</macro>
<value>90</value>
</macro>
<macro>
<macro>{$LOAD_AVG_PER_CPU.MAX.WARN}</macro>
<value>1.5</value>
<description>Load per CPU considered sustainable. Tune if needed.</description>
</macro>
</macros>
</template>
<template>
<template>Template Module Linux filesystems by Zabbix agent</template>
<name>Template Module Linux filesystems by Zabbix agent</name>
<description>Template tooling version used: 0.39</description>
<groups>
<group>
<name>Templates/Modules</name>
</group>
</groups>
<applications>
<application>
<name>Filesystems</name>
</application>
</applications>
<discovery_rules>
<discovery_rule>
<name>Mounted filesystem discovery</name>
<key>vfs.fs.discovery</key>
<delay>1h</delay>
<filter>
<evaltype>AND</evaltype>
<conditions>
<condition>
<macro>{#FSTYPE}</macro>
<value>{$VFS.FS.FSTYPE.MATCHES}</value>
<formulaid>A</formulaid>
</condition>
<condition>
<macro>{#FSTYPE}</macro>
<value>{$VFS.FS.FSTYPE.NOT_MATCHES}</value>
<operator>NOT_MATCHES_REGEX</operator>
<formulaid>B</formulaid>
</condition>
<condition>
<macro>{#FSNAME}</macro>
<value>{$VFS.FS.FSNAME.MATCHES}</value>
<formulaid>C</formulaid>
</condition>
<condition>
<macro>{#FSNAME}</macro>
<value>{$VFS.FS.FSNAME.NOT_MATCHES}</value>
<operator>NOT_MATCHES_REGEX</operator>
<formulaid>D</formulaid>
</condition>
</conditions>
</filter>
<description>Discovery of file systems of different types.</description>
<item_prototypes>
<item_prototype>
<name>{#FSNAME}: Free inodes in %</name>
<key>vfs.fs.inode[{#FSNAME},pfree]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<application_prototypes>
<application_prototype>
<name>Filesystem {#FSNAME}</name>
</application_prototype>
</application_prototypes>
<trigger_prototypes>
<trigger_prototype>
<expression>{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}</expression>
<name>{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)</name>
<opdata>Free inodes: {ITEM.LASTVALUE1}</opdata>
<priority>AVERAGE</priority>
<description>It may become impossible to write to disk if there are no index nodes left.
As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available.</description>
</trigger_prototype>
<trigger_prototype>
<expression>{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}</expression>
<name>{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)</name>
<opdata>Free inodes: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
<description>It may become impossible to write to disk if there are no index nodes left.
As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available.</description>
<dependencies>
<dependency>
<name>{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)</name>
<expression>{Template Module Linux filesystems by Zabbix agent:vfs.fs.inode[{#FSNAME},pfree].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}</expression>
</dependency>
</dependencies>
</trigger_prototype>
</trigger_prototypes>
</item_prototype>
<item_prototype>
<name>{#FSNAME}: Space utilization</name>
<key>vfs.fs.size[{#FSNAME},pused]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>Space utilization in % for {#FSNAME}</description>
<application_prototypes>
<application_prototype>
<name>Filesystem {#FSNAME}</name>
</application_prototype>
</application_prototypes>
</item_prototype>
<item_prototype>
<name>{#FSNAME}: Total space</name>
<key>vfs.fs.size[{#FSNAME},total]</key>
<history>7d</history>
<units>B</units>
<description>Total space in Bytes</description>
<application_prototypes>
<application_prototype>
<name>Filesystem {#FSNAME}</name>
</application_prototype>
</application_prototypes>
</item_prototype>
<item_prototype>
<name>{#FSNAME}: Used space</name>
<key>vfs.fs.size[{#FSNAME},used]</key>
<history>7d</history>
<units>B</units>
<description>Used storage in Bytes</description>
<application_prototypes>
<application_prototype>
<name>Filesystem {#FSNAME}</name>
</application_prototype>
</application_prototypes>
</item_prototype>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
<expression>{Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and
(({Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or {Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d)</expression>
<name>{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</name>
<opdata>Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})</opdata>
<priority>AVERAGE</priority>
<description>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.
Second condition should be one of the following:
- The disk free space is less than {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}.
- The disk will be full in less than 24 hours.</description>
<manual_close>YES</manual_close>
</trigger_prototype>
<trigger_prototype>
<expression>{Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and
(({Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or {Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d)</expression>
<name>{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)</name>
<opdata>Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})</opdata>
<priority>WARNING</priority>
<description>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.
Second condition should be one of the following:
- The disk free space is less than {$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"}.
- The disk will be full in less than 24 hours.</description>
<manual_close>YES</manual_close>
<dependencies>
<dependency>
<name>{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</name>
<expression>{Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and
(({Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or {Template Module Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d)</expression>
</dependency>
</dependencies>
</trigger_prototype>
</trigger_prototypes>
<graph_prototypes>
<graph_prototype>
<name>{#FSNAME}: Disk space usage</name>
<width>600</width>
<height>340</height>
<type>PIE</type>
<show_3d>YES</show_3d>
<graph_items>
<graph_item>
<color>969696</color>
<calc_fnc>LAST</calc_fnc>
<type>GRAPH_SUM</type>
<item>
<host>Template Module Linux filesystems by Zabbix agent</host>
<key>vfs.fs.size[{#FSNAME},total]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>C80000</color>
<calc_fnc>LAST</calc_fnc>
<item>
<host>Template Module Linux filesystems by Zabbix agent</host>
<key>vfs.fs.size[{#FSNAME},used]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
<overrides>
<override>
<name>Skip metadata collection for dynamic FS</name>
<step>1</step>
<filter>
<conditions>
<condition>
<macro>{#FSTYPE}</macro>
<value>^(btrfs|zfs)$</value>
<formulaid>A</formulaid>
</condition>
</conditions>
</filter>
<operations>
<operation>
<operationobject>ITEM_PROTOTYPE</operationobject>
<operator>LIKE</operator>
<value>inode</value>
<status>ENABLED</status>
<discover>NO_DISCOVER</discover>
</operation>
</operations>
</override>
</overrides>
</discovery_rule>
</discovery_rules>
<macros>
<macro>
<macro>{$VFS.FS.FREE.MIN.CRIT}</macro>
<value>5G</value>
<description>The critical threshold of the filesystem utilization.</description>
</macro>
<macro>
<macro>{$VFS.FS.FREE.MIN.WARN}</macro>
<value>10G</value>
<description>The warning threshold of the filesystem utilization.</description>
</macro>
<macro>
<macro>{$VFS.FS.FSNAME.MATCHES}</macro>
<value>.+</value>
<description>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</description>
</macro>
<macro>
<macro>{$VFS.FS.FSNAME.NOT_MATCHES}</macro>
<value>^(/dev|/sys|/run|/proc|.+/shm$)</value>
<description>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</description>
</macro>
<macro>
<macro>{$VFS.FS.FSTYPE.MATCHES}</macro>
<value>^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$</value>
<description>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</description>
</macro>
<macro>
<macro>{$VFS.FS.FSTYPE.NOT_MATCHES}</macro>
<value>^\s$</value>
<description>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</description>
</macro>
<macro>
<macro>{$VFS.FS.INODE.PFREE.MIN.CRIT}</macro>
<value>10</value>
</macro>
<macro>
<macro>{$VFS.FS.INODE.PFREE.MIN.WARN}</macro>
<value>20</value>
</macro>
<macro>
<macro>{$VFS.FS.PUSED.MAX.CRIT}</macro>
<value>90</value>
</macro>
<macro>
<macro>{$VFS.FS.PUSED.MAX.WARN}</macro>
<value>80</value>
</macro>
</macros>
</template>
<template>
<template>Template Module Linux generic by Zabbix agent</template>
<name>Template Module Linux generic by Zabbix agent</name>
<description>Template tooling version used: 0.39</description>
<groups>
<group>
<name>Templates/Modules</name>
</group>
</groups>
<applications>
<application>
<name>General</name>
</application>
<application>
<name>Inventory</name>
</application>
<application>
<name>Security</name>
</application>
<application>
<name>Status</name>
</application>
</applications>
<items>
<item>
<name>Maximum number of open file descriptors</name>
<key>kernel.maxfiles</key>
<delay>1h</delay>
<history>7d</history>
<description>It could be increased by using sysctl utility or modifying file /etc/sysctl.conf.</description>
<applications>
<application>
<name>General</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1d</params>
</step>
</preprocessing>
<triggers>
<trigger>
<expression>{last()}<{$KERNEL.MAXFILES.MIN}</expression>
<name>Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN})</name>
<priority>INFO</priority>
</trigger>
</triggers>
</item>
<item>
<name>Maximum number of processes</name>
<key>kernel.maxproc</key>
<delay>1h</delay>
<history>7d</history>
<description>It could be increased by using sysctl utility or modifying file /etc/sysctl.conf.</description>
<applications>
<application>
<name>General</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1d</params>
</step>
</preprocessing>
<triggers>
<trigger>
<expression>{last()}<{$KERNEL.MAXPROC.MIN}</expression>
<name>Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN})</name>
<priority>INFO</priority>
<dependencies>
<dependency>
<name>Getting closer to process limit (over 80% used)</name>
<expression>{Template Module Linux generic by Zabbix agent:proc.num.last()}/{Template Module Linux generic by Zabbix agent:kernel.maxproc.last()}*100>80</expression>
</dependency>
</dependencies>
</trigger>
</triggers>
</item>
<item>
<name>Number of processes</name>
<key>proc.num</key>
<history>7d</history>
<applications>
<application>
<name>General</name>
</application>
</applications>
</item>
<item>
<name>Number of running processes</name>
<key>proc.num[,,run]</key>
<history>7d</history>
<applications>
<application>
<name>General</name>
</application>
</applications>
</item>
<item>
<name>System boot time</name>
<key>system.boottime</key>
<delay>15m</delay>
<history>7d</history>
<units>unixtime</units>
<applications>
<application>
<name>General</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1h</params>
</step>
</preprocessing>
</item>
<item>
<name>System name</name>
<key>system.hostname</key>
<delay>1h</delay>
<history>2w</history>
<trends>0</trends>
<value_type>CHAR</value_type>
<description>System host name.</description>
<inventory_link>NAME</inventory_link>
<applications>
<application>
<name>General</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>12h</params>
</step>
</preprocessing>
<triggers>
<trigger>
<expression>{diff()}=1 and {strlen()}>0</expression>
<name>System name has changed (new name: {ITEM.VALUE})</name>
<priority>INFO</priority>
<description>System name has changed. Ack to close.</description>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item>
<item>
<name>System local time</name>
<key>system.localtime</key>
<history>7d</history>
<units>unixtime</units>
<description>System local time of the host.</description>
<applications>
<application>
<name>General</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0</expression>
<name>System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s)</name>
<priority>WARNING</priority>
<description>The host system time is different from the Zabbix server time.</description>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item>
<item>
<name>Operating system architecture</name>
<key>system.sw.arch</key>
<delay>1h</delay>
<history>2w</history>
<trends>0</trends>
<value_type>CHAR</value_type>
<description>Operating system architecture of the host.</description>
<applications>
<application>
<name>Inventory</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1d</params>
</step>
</preprocessing>
</item>
<item>
<name>Operating system</name>
<key>system.sw.os</key>
<delay>1h</delay>
<history>2w</history>
<trends>0</trends>
<value_type>CHAR</value_type>
<inventory_link>OS</inventory_link>
<applications>
<application>
<name>Inventory</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1d</params>
</step>
</preprocessing>
<triggers>
<trigger>
<expression>{diff()}=1 and {strlen()}>0</expression>
<name>Operating system description has changed</name>
<priority>INFO</priority>
<description>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</description>
<manual_close>YES</manual_close>
<dependencies>
<dependency>
<name>System name has changed (new name: {ITEM.VALUE})</name>
<expression>{Template Module Linux generic by Zabbix agent:system.hostname.diff()}=1 and {Template Module Linux generic by Zabbix agent:system.hostname.strlen()}>0</expression>
</dependency>
</dependencies>
</trigger>
</triggers>
</item>
<item>
<name>Software installed</name>
<key>system.sw.packages</key>
<delay>1h</delay>
<history>2w</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Inventory</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1d</params>
</step>
</preprocessing>
</item>
<item>
<name>System description</name>
<key>system.uname</key>
<delay>15m</delay>
<history>2w</history>
<trends>0</trends>
<value_type>CHAR</value_type>
<description>The information as normally returned by 'uname -a'.</description>
<applications>
<application>
<name>General</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>12h</params>
</step>
</preprocessing>
</item>
<item>
<name>System uptime</name>
<key>system.uptime</key>
<delay>30s</delay>
<history>2w</history>
<trends>0d</trends>
<units>uptime</units>
<description>System uptime in 'N days, hh:mm:ss' format.</description>
<applications>
<application>
<name>Status</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last()}<10m</expression>
<name>{HOST.NAME} has been restarted (uptime < 10m)</name>
<priority>WARNING</priority>
<description>The host uptime is less than 10 minutes</description>
<manual_close>YES</manual_close>
</trigger>
</triggers>
</item>
<item>
<name>Number of logged in users</name>
<key>system.users.num</key>
<history>7d</history>
<description>Number of users who are currently logged in.</description>
<applications>
<application>
<name>General</name>
</application>
</applications>
</item>
<item>
<name>Checksum of /etc/passwd</name>
<key>vfs.file.cksum[/etc/passwd]</key>
<delay>15m</delay>
<history>7d</history>
<trends>0</trends>
<value_type>CHAR</value_type>
<applications>
<application>
<name>Security</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1h</params>
</step>
</preprocessing>
<triggers>
<trigger>
<expression>{diff()}>0</expression>
<name>/etc/passwd has been changed</name>
<priority>INFO</priority>
<manual_close>YES</manual_close>
<dependencies>
<dependency>
<name>Operating system description has changed</name>
<expression>{Template Module Linux generic by Zabbix agent:system.sw.os.diff()}=1 and {Template Module Linux generic by Zabbix agent:system.sw.os.strlen()}>0</expression>
</dependency>
<dependency>
<name>System name has changed (new name: {ITEM.VALUE})</name>
<expression>{Template Module Linux generic by Zabbix agent:system.hostname.diff()}=1 and {Template Module Linux generic by Zabbix agent:system.hostname.strlen()}>0</expression>
</dependency>
</dependencies>
</trigger>
</triggers>
</item>
</items>
<macros>
<macro>
<macro>{$KERNEL.MAXFILES.MIN}</macro>
<value>256</value>
</macro>
<macro>
<macro>{$KERNEL.MAXPROC.MIN}</macro>
<value>1024</value>
</macro>
<macro>
<macro>{$SYSTEM.FUZZYTIME.MAX}</macro>
<value>60</value>
</macro>
</macros>
</template>
<template>
<template>Template Module Linux memory by Zabbix agent</template>
<name>Template Module Linux memory by Zabbix agent</name>
<description>Template tooling version used: 0.39</description>
<groups>
<group>
<name>Templates/Modules</name>
</group>
</groups>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<items>
<item>
<name>Free swap space</name>
<key>system.swap.size[,free]</key>
<history>7d</history>
<units>B</units>
<description>The free space of swap volume/file in bytes.</description>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>Free swap space in %</name>
<key>system.swap.size[,pfree]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>The free space of swap volume/file in percent.</description>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>Total swap space</name>
<key>system.swap.size[,total]</key>
<history>7d</history>
<units>B</units>
<description>The total space of swap volume/file in bytes.</description>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>Available memory</name>
<key>vm.memory.size[available]</key>
<history>7d</history>
<units>B</units>
<description>Available memory, in Linux, available = free + buffers + cache. On other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the vm.memory.size item.</description>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>Available memory in %</name>
<key>vm.memory.size[pavailable]</key>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>Available memory as percentage of total. See also Appendixes in Zabbix Documentation about parameters of the vm.memory.size item.</description>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>Total memory</name>
<key>vm.memory.size[total]</key>
<history>7d</history>
<units>B</units>
<description>Total memory in Bytes.</description>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>Memory utilization</name>
<type>DEPENDENT</type>
<key>vm.memory.utilization</key>
<delay>0</delay>
<history>7d</history>
<value_type>FLOAT</value_type>
<units>%</units>
<description>Memory used percentage is calculated as (100-pavailable)</description>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JAVASCRIPT</type>
<params>return (100-value);</params>
</step>
</preprocessing>
<master_item>
<key>vm.memory.size[pavailable]</key>
</master_item>
<triggers>
<trigger>
<expression>{min(5m)}>{$MEMORY.UTIL.MAX}</expression>
<name>High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)</name>
<priority>AVERAGE</priority>
<description>The system is running out of free memory.</description>
<dependencies>
<dependency>
<name>Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</name>
<expression>{Template Module Linux memory by Zabbix agent:vm.memory.size[available].max(5m)}<{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory by Zabbix agent:vm.memory.size[total].last()}>0</expression>
</dependency>
</dependencies>
</trigger>
</triggers>
</item>
</items>
<macros>
<macro>
<macro>{$MEMORY.AVAILABLE.MIN}</macro>
<value>20M</value>
<description>This macro is used as a threshold in memory available trigger.</description>
</macro>
<macro>
<macro>{$MEMORY.UTIL.MAX}</macro>
<value>90</value>
<description>This macro is used as a threshold in memory utilization trigger.</description>
</macro>
<macro>
<macro>{$SWAP.PFREE.MIN.WARN}</macro>
<value>50</value>
</macro>
</macros>
</template>
<template>
<template>Template Module Linux network interfaces by Zabbix agent</template>
<name>Template Module Linux network interfaces by Zabbix agent</name>
<description>Template tooling version used: 0.39</description>
<groups>
<group>
<name>Templates/Modules</name>
</group>
</groups>
<applications>
<application>
<name>Network interfaces</name>
</application>
</applications>
<discovery_rules>
<discovery_rule>
<name>Network interface discovery</name>
<key>net.if.discovery</key>
<delay>1h</delay>
<filter>
<evaltype>AND</evaltype>
<conditions>
<condition>
<macro>{#IFNAME}</macro>
<value>{$NET.IF.IFNAME.MATCHES}</value>
<formulaid>A</formulaid>
</condition>
<condition>
<macro>{#IFNAME}</macro>
<value>{$NET.IF.IFNAME.NOT_MATCHES}</value>
<operator>NOT_MATCHES_REGEX</operator>
<formulaid>B</formulaid>
</condition>
</conditions>
</filter>
<description>Discovery of network interfaces.</description>
<item_prototypes>
<item_prototype>
<name>Interface {#IFNAME}: Inbound packets discarded</name>
<key>net.if.in["{#IFNAME}",dropped]</key>
<delay>3m</delay>
<history>7d</history>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}: Inbound packets with errors</name>
<key>net.if.in["{#IFNAME}",errors]</key>
<delay>3m</delay>
<history>7d</history>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}: Bits received</name>
<key>net.if.in["{#IFNAME}"]</key>
<delay>3m</delay>
<history>7d</history>
<units>bps</units>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>8</params>
</step>
</preprocessing>
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}: Outbound packets discarded</name>
<key>net.if.out["{#IFNAME}",dropped]</key>
<delay>3m</delay>
<history>7d</history>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}: Outbound packets with errors</name>
<key>net.if.out["{#IFNAME}",errors]</key>
<delay>3m</delay>
<history>7d</history>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}: Bits sent</name>
<key>net.if.out["{#IFNAME}"]</key>
<delay>3m</delay>
<history>7d</history>
<units>bps</units>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
<step>
<type>MULTIPLIER</type>
<params>8</params>
</step>
</preprocessing>
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}: Operational status</name>
<key>vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"]</key>
<history>7d</history>
<trends>0</trends>
<description>Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt</description>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<valuemap>
<name>ifOperStatus</name>
</valuemap>
<preprocessing>
<step>
<type>JAVASCRIPT</type>
<params>var newvalue;
switch(value) {
case "unknown":
newvalue = 0;
break;
case "notpresent":
newvalue = 1;
break;
case "down":
newvalue = 2;
break;
case "lowerlayerdown":
newvalue = 3;
break;
case "testing":
newvalue = 4;
break;
case "dormant":
newvalue = 5;
break;
case "up":
newvalue = 6;
break; default:
newvalue = "Problem parsing interface operstate in JS";
}
return newvalue;</params>
</step>
</preprocessing>
<trigger_prototypes>
<trigger_prototype>
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
<name>Interface {#IFNAME}: Link down</name>
<opdata>Current state: {ITEM.LASTVALUE1}</opdata>
<priority>AVERAGE</priority>
<description>This trigger expression works as follows:
1. Can be triggered if operations status is down.
2. {$IFCONTROL:"{#IFNAME}"}=1 - user can redefine Context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down.
3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)
WARNING: if closed manually - won't fire again on next poll, because of .diff.</description>
<manual_close>YES</manual_close>
</trigger_prototype>
</trigger_prototypes>
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}: Speed</name>
<key>vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]</key>
<delay>5m</delay>
<history>7d</history>
<trends>0d</trends>
<units>bps</units>
<description>Indicates the interface latest or current speed value. Value is an integer representing the link speed in bits/sec.
This attribute is only valid for interfaces that implement the ethtool get_link_ksettings method (mostly Ethernet).
Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net</description>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<preprocessing>
<step>
<type>MULTIPLIER</type>
<params>1000000</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1h</params>
</step>
</preprocessing>
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}: Interface type</name>
<key>vfs.file.contents["/sys/class/net/{#IFNAME}/type"]</key>
<delay>1h</delay>
<history>7d</history>
<trends>0d</trends>
<description>Indicates the interface protocol type as a decimal value.
See include/uapi/linux/if_arp.h for all possible values.
Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net</description>
<application_prototypes>
<application_prototype>
<name>Interface {#IFNAME}</name>
</application_prototype>
</application_prototypes>
<valuemap>
<name>Linux::Interface protocol types</name>
</valuemap>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1d</params>
</step>
</preprocessing>
</item_prototype>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
<expression>{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].change()}<0 and {Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}>0
and
({Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=6
or {Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=1)
and
({Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2)</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>({Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].change()}>0 and {Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].prev()}>0) or
({Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2)</recovery_expression>
<name>Interface {#IFNAME}: Ethernet has changed to lower speed than it was before</name>
<opdata>Current reported speed: {ITEM.LASTVALUE1}</opdata>
<priority>INFO</priority>
<description>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</description>
<manual_close>YES</manual_close>
<dependencies>
<dependency>
<name>Interface {#IFNAME}: Link down</name>
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)</expression>
<recovery_expression>{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
<expression>({Template Module Linux network interfaces by Zabbix agent:net.if.in["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()} or
{Template Module Linux network interfaces by Zabbix agent:net.if.out["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}) and
{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{Template Module Linux network interfaces by Zabbix agent:net.if.in["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()} and
{Template Module Linux network interfaces by Zabbix agent:net.if.out["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}</recovery_expression>
<name>Interface {#IFNAME}: High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%)</name>
<opdata>In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
<description>The network interface utilization is close to its estimated maximum bandwidth.</description>
<manual_close>YES</manual_close>
<dependencies>
<dependency>
<name>Interface {#IFNAME}: Link down</name>
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)</expression>
<recovery_expression>{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
<expression>{Template Module Linux network interfaces by Zabbix agent:net.if.in["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}
or {Template Module Linux network interfaces by Zabbix agent:net.if.out["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{Template Module Linux network interfaces by Zabbix agent:net.if.in["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
and {Template Module Linux network interfaces by Zabbix agent:net.if.out["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
<name>Interface {#IFNAME}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)</name>
<opdata>errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
<description>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</description>
<manual_close>YES</manual_close>
<dependencies>
<dependency>
<name>Interface {#IFNAME}: Link down</name>
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)</expression>
<recovery_expression>{Template Module Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
</trigger_prototypes>
<graph_prototypes>
<graph_prototype>
<name>Interface {#IFNAME}: Network traffic</name>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
<host>Template Module Linux network interfaces by Zabbix agent</host>
<key>net.if.in["{#IFNAME}"]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>BOLD_LINE</drawtype>
<color>2774A4</color>
<item>
<host>Template Module Linux network interfaces by Zabbix agent</host>
<key>net.if.out["{#IFNAME}"]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>F63100</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template Module Linux network interfaces by Zabbix agent</host>
<key>net.if.out["{#IFNAME}",errors]</key>
</item>
</graph_item>
<graph_item>
<sortorder>3</sortorder>
<color>A54F10</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template Module Linux network interfaces by Zabbix agent</host>
<key>net.if.in["{#IFNAME}",errors]</key>
</item>
</graph_item>
<graph_item>
<sortorder>4</sortorder>
<color>FC6EA3</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template Module Linux network interfaces by Zabbix agent</host>
<key>net.if.out["{#IFNAME}",dropped]</key>
</item>
</graph_item>
<graph_item>
<sortorder>5</sortorder>
<color>6C59DC</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template Module Linux network interfaces by Zabbix agent</host>
<key>net.if.in["{#IFNAME}",dropped]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
</discovery_rule>
</discovery_rules>
<macros>
<macro>
<macro>{$IF.ERRORS.WARN}</macro>
<value>2</value>
</macro>
<macro>
<macro>{$IF.UTIL.MAX}</macro>
<value>90</value>
<description>This macro is used as a threshold in interface utilization trigger.</description>
</macro>
<macro>
<macro>{$IFCONTROL}</macro>
<value>1</value>
</macro>
<macro>
<macro>{$NET.IF.IFNAME.MATCHES}</macro>
<value>^.*$</value>
</macro>
<macro>
<macro>{$NET.IF.IFNAME.NOT_MATCHES}</macro>
<value>(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9A-z]+$|docker[0-9]+|br-[a-z0-9]{12})</value>
<description>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</description>
</macro>
</macros>
<screens>
<screen>
<name>Network interfaces</name>
<hsize>1</hsize>
<vsize>1</vsize>
<screen_items>
<screen_item>
<resourcetype>20</resourcetype>
<style>0</style>
<resource>
<name>Interface {#IFNAME}: Network traffic</name>
<host>Template Module Linux network interfaces by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>0</x>
<y>0</y>
<colspan>1</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>3</max_columns>
</screen_item>
</screen_items>
</screen>
</screens>
</template>
<template>
<template>Template OS Linux by Zabbix agent</template>
<name>Template OS Linux by Zabbix agent</name>
<description>Official Linux template. Requires agent of Zabbix 3.0.14, 3.4.5 and 4.0.0 or newer.
Known Issues:
Description: Network discovery. Zabbix agent as of 4.2 doesn't support items such as net.if.status, net.if.speed.
You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux
Template tooling version used: 0.39</description>
<templates>
<template>
<name>Template Module Linux block devices by Zabbix agent</name>
</template>
<template>
<name>Template Module Linux CPU by Zabbix agent</name>
</template>
<template>
<name>Template Module Linux filesystems by Zabbix agent</name>
</template>
<template>
<name>Template Module Linux generic by Zabbix agent</name>
</template>
<template>
<name>Template Module Linux memory by Zabbix agent</name>
</template>
<template>
<name>Template Module Linux network interfaces by Zabbix agent</name>
</template>
<template>
<name>Template Module Zabbix agent</name>
</template>
</templates>
<groups>
<group>
<name>Templates/Operating systems</name>
</group>
</groups>
<screens>
<screen>
<name>System performance</name>
<hsize>2</hsize>
<vsize>7</vsize>
<screen_items>
<screen_item>
<resourcetype>0</resourcetype>
<style>0</style>
<resource>
<name>System load</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>0</x>
<y>0</y>
<colspan>1</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>3</max_columns>
</screen_item>
<screen_item>
<resourcetype>0</resourcetype>
<style>0</style>
<resource>
<name>CPU usage</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>1</x>
<y>0</y>
<colspan>1</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>3</max_columns>
</screen_item>
<screen_item>
<resourcetype>0</resourcetype>
<style>0</style>
<resource>
<name>Memory usage</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>0</x>
<y>1</y>
<colspan>1</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>3</max_columns>
</screen_item>
<screen_item>
<resourcetype>0</resourcetype>
<style>0</style>
<resource>
<name>Swap usage</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>1</x>
<y>1</y>
<colspan>1</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>3</max_columns>
</screen_item>
<screen_item>
<resourcetype>20</resourcetype>
<style>0</style>
<resource>
<name>{#FSNAME}: Disk space usage</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>0</x>
<y>2</y>
<colspan>2</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>2</max_columns>
</screen_item>
<screen_item>
<resourcetype>20</resourcetype>
<style>0</style>
<resource>
<name>{#DEVNAME}: Disk read/write rates</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>0</x>
<y>3</y>
<colspan>2</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>2</max_columns>
</screen_item>
<screen_item>
<resourcetype>20</resourcetype>
<style>0</style>
<resource>
<name>{#DEVNAME}: Disk average waiting time</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>0</x>
<y>4</y>
<colspan>2</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>2</max_columns>
</screen_item>
<screen_item>
<resourcetype>20</resourcetype>
<style>0</style>
<resource>
<name>{#DEVNAME}: Disk utilization and queue</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>0</x>
<y>5</y>
<colspan>2</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>2</max_columns>
</screen_item>
<screen_item>
<resourcetype>20</resourcetype>
<style>0</style>
<resource>
<name>Interface {#IFNAME}: Network traffic</name>
<host>Template OS Linux by Zabbix agent</host>
</resource>
<width>500</width>
<height>100</height>
<x>0</x>
<y>6</y>
<colspan>2</colspan>
<rowspan>1</rowspan>
<elements>25</elements>
<valign>0</valign>
<halign>0</halign>
<dynamic>0</dynamic>
<sort_triggers>0</sort_triggers>
<url/>
<application/>
<max_columns>2</max_columns>
</screen_item>
</screen_items>
</screen>
</screens>
</template>
</templates>
<triggers>
<trigger>
<expression>{Template Module Linux generic by Zabbix agent:proc.num.last()}/{Template Module Linux generic by Zabbix agent:kernel.maxproc.last()}*100>80</expression>
<name>Getting closer to process limit (over 80% used)</name>
<opdata>{ITEM.LASTVALUE1} active, {ITEM.LASTVALUE2} limit.</opdata>
<priority>WARNING</priority>
</trigger>
<trigger>
<expression>{Template Module Linux memory by Zabbix agent:system.swap.size[,pfree].max(5m)}<{$SWAP.PFREE.MIN.WARN} and {Template Module Linux memory by Zabbix agent:system.swap.size[,total].last()}>0</expression>
<name>High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)</name>
<opdata>Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
<description>This trigger is ignored, if there is no swap configured.</description>
<dependencies>
<dependency>
<name>High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)</name>
<expression>{Template Module Linux memory by Zabbix agent:vm.memory.utilization.min(5m)}>{$MEMORY.UTIL.MAX}</expression>
</dependency>
<dependency>
<name>Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</name>
<expression>{Template Module Linux memory by Zabbix agent:vm.memory.size[available].max(5m)}<{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory by Zabbix agent:vm.memory.size[total].last()}>0</expression>
</dependency>
</dependencies>
</trigger>
<trigger>
<expression>{Template Module Linux memory by Zabbix agent:vm.memory.size[available].max(5m)}<{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory by Zabbix agent:vm.memory.size[total].last()}>0</expression>
<name>Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</name>
<opdata>Available: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}</opdata>
<priority>AVERAGE</priority>
</trigger>
<trigger>
<expression>{Template Module Linux CPU by Zabbix agent:system.cpu.load[all,avg1].min(5m)}/{Template Module Linux CPU by Zabbix agent:system.cpu.num.last()}>{$LOAD_AVG_PER_CPU.MAX.WARN}
and {Template Module Linux CPU by Zabbix agent:system.cpu.load[all,avg5].last()}>0
and {Template Module Linux CPU by Zabbix agent:system.cpu.load[all,avg15].last()}>0</expression>
<name>Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)</name>
<opdata>Load averages(1m 5m 15m): ({ITEM.LASTVALUE1} {ITEM.LASTVALUE3} {ITEM.LASTVALUE4}), # of CPUs: {ITEM.LASTVALUE2}</opdata>
<priority>AVERAGE</priority>
<description>Per CPU load average is too high. Your system may be slow to respond.</description>
</trigger>
</triggers>
<graphs>
<graph>
<name>CPU jumps</name>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.switches</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.intr</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>CPU usage</name>
<type>STACKED</type>
<ymin_type_1>FIXED</ymin_type_1>
<ymax_type_1>FIXED</ymax_type_1>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,system]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,user]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>F63100</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,nice]</key>
</item>
</graph_item>
<graph_item>
<sortorder>3</sortorder>
<color>A54F10</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,iowait]</key>
</item>
</graph_item>
<graph_item>
<sortorder>4</sortorder>
<color>FC6EA3</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,steal]</key>
</item>
</graph_item>
<graph_item>
<sortorder>5</sortorder>
<color>6C59DC</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,interrupt]</key>
</item>
</graph_item>
<graph_item>
<sortorder>6</sortorder>
<color>AC8C14</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,softirq]</key>
</item>
</graph_item>
<graph_item>
<sortorder>7</sortorder>
<color>611F27</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,guest]</key>
</item>
</graph_item>
<graph_item>
<sortorder>8</sortorder>
<color>F230E0</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util[,guest_nice]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>CPU utilization</name>
<ymin_type_1>FIXED</ymin_type_1>
<ymax_type_1>FIXED</ymax_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.util</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>Memory usage</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<drawtype>BOLD_LINE</drawtype>
<color>1A7C11</color>
<item>
<host>Template Module Linux memory by Zabbix agent</host>
<key>vm.memory.size[total]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
<host>Template Module Linux memory by Zabbix agent</host>
<key>vm.memory.size[available]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>Memory utilization</name>
<ymin_type_1>FIXED</ymin_type_1>
<ymax_type_1>FIXED</ymax_type_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
<host>Template Module Linux memory by Zabbix agent</host>
<key>vm.memory.utilization</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>Processes</name>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template Module Linux generic by Zabbix agent</host>
<key>proc.num</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
<host>Template Module Linux generic by Zabbix agent</host>
<key>proc.num[,,run]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>Swap usage</name>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template Module Linux memory by Zabbix agent</host>
<key>system.swap.size[,free]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
<host>Template Module Linux memory by Zabbix agent</host>
<key>system.swap.size[,total]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>System load</name>
<ymin_type_1>FIXED</ymin_type_1>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.load[all,avg1]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.load[all,avg5]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>F63100</color>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.load[all,avg15]</key>
</item>
</graph_item>
<graph_item>
<sortorder>3</sortorder>
<color>A54F10</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template Module Linux CPU by Zabbix agent</host>
<key>system.cpu.num</key>
</item>
</graph_item>
</graph_items>
</graph>
</graphs>
<value_maps>
<value_map>
<name>ifOperStatus</name>
<mappings>
<mapping>
<value>0</value>
<newvalue>unknown</newvalue>
</mapping>
<mapping>
<value>1</value>
<newvalue>notpresent</newvalue>
</mapping>
<mapping>
<value>2</value>
<newvalue>down</newvalue>
</mapping>
<mapping>
<value>3</value>
<newvalue>lowerlayerdown</newvalue>
</mapping>
<mapping>
<value>4</value>
<newvalue>testing</newvalue>
</mapping>
<mapping>
<value>5</value>
<newvalue>dormant</newvalue>
</mapping>
<mapping>
<value>6</value>
<newvalue>up</newvalue>
</mapping>
</mappings>
</value_map>
<value_map>
<name>Linux::Interface protocol types</name>
<mappings>
<mapping>
<value>0</value>
<newvalue>from KA9Q: NET/ROM pseudo</newvalue>
</mapping>
<mapping>
<value>1</value>
<newvalue>Ethernet</newvalue>
</mapping>
<mapping>
<value>2</value>
<newvalue>Experimental Ethernet</newvalue>
</mapping>
<mapping>
<value>3</value>
<newvalue>AX.25 Level 2</newvalue>
</mapping>
<mapping>
<value>4</value>
<newvalue>PROnet token ring</newvalue>
</mapping>
<mapping>
<value>5</value>
<newvalue>Chaosnet</newvalue>
</mapping>
<mapping>
<value>6</value>
<newvalue>IEEE 802.2 Ethernet/TR/TB</newvalue>
</mapping>
<mapping>
<value>7</value>
<newvalue>ARCnet</newvalue>
</mapping>
<mapping>
<value>8</value>
<newvalue>APPLEtalk</newvalue>
</mapping>
<mapping>
<value>15</value>
<newvalue>Frame Relay DLCI</newvalue>
</mapping>
<mapping>
<value>19</value>
<newvalue>ATM</newvalue>
</mapping>
<mapping>
<value>23</value>
<newvalue>Metricom STRIP (new IANA id)</newvalue>
</mapping>
<mapping>
<value>24</value>
<newvalue>IEEE 1394 IPv4 - RFC 2734</newvalue>
</mapping>
<mapping>
<value>27</value>
<newvalue>EUI-64</newvalue>
</mapping>
<mapping>
<value>32</value>
<newvalue>InfiniBand</newvalue>
</mapping>
<mapping>
<value>256</value>
<newvalue>ARPHRD_SLIP</newvalue>
</mapping>
<mapping>
<value>257</value>
<newvalue>ARPHRD_CSLIP</newvalue>
</mapping>
<mapping>
<value>258</value>
<newvalue>ARPHRD_SLIP6</newvalue>
</mapping>
<mapping>
<value>259</value>
<newvalue>ARPHRD_CSLIP6</newvalue>
</mapping>
<mapping>
<value>260</value>
<newvalue>Notional KISS type</newvalue>
</mapping>
<mapping>
<value>264</value>
<newvalue>ARPHRD_ADAPT</newvalue>
</mapping>
<mapping>
<value>270</value>
<newvalue>ARPHRD_ROSE</newvalue>
</mapping>
<mapping>
<value>271</value>
<newvalue>CCITT X.25</newvalue>
</mapping>
<mapping>
<value>272</value>
<newvalue>Boards with X.25 in firmware</newvalue>
</mapping>
<mapping>
<value>280</value>
<newvalue>Controller Area Network</newvalue>
</mapping>
<mapping>
<value>512</value>
<newvalue>ARPHRD_PPP</newvalue>
</mapping>
<mapping>
<value>513</value>
<newvalue>Cisco HDLC</newvalue>
</mapping>
<mapping>
<value>516</value>
<newvalue>LAPB</newvalue>
</mapping>
<mapping>
<value>517</value>
<newvalue>Digital's DDCMP protocol</newvalue>
</mapping>
<mapping>
<value>518</value>
<newvalue>Raw HDLC</newvalue>
</mapping>
<mapping>
<value>519</value>
<newvalue>Raw IP</newvalue>
</mapping>
<mapping>
<value>768</value>
<newvalue>IPIP tunnel</newvalue>
</mapping>
<mapping>
<value>769</value>
<newvalue>IP6IP6 tunnel</newvalue>
</mapping>
<mapping>
<value>770</value>
<newvalue>Frame Relay Access Device</newvalue>
</mapping>
<mapping>
<value>771</value>
<newvalue>SKIP vif</newvalue>
</mapping>
<mapping>
<value>772</value>
<newvalue>Loopback device</newvalue>
</mapping>
<mapping>
<value>773</value>
<newvalue>Localtalk device</newvalue>
</mapping>
<mapping>
<value>774</value>
<newvalue>Fiber Distributed Data Interface</newvalue>
</mapping>
<mapping>
<value>775</value>
<newvalue>AP1000 BIF</newvalue>
</mapping>
<mapping>
<value>776</value>
<newvalue>sit0 device - IPv6-in-IPv4</newvalue>
</mapping>
<mapping>
<value>777</value>
<newvalue>IP over DDP tunneller</newvalue>
</mapping>
<mapping>
<value>778</value>
<newvalue>GRE over IP</newvalue>
</mapping>
<mapping>
<value>779</value>
<newvalue>PIMSM register interface</newvalue>
</mapping>
<mapping>
<value>780</value>
<newvalue>High Performance Parallel Interface</newvalue>
</mapping>
<mapping>
<value>781</value>
<newvalue>Nexus 64Mbps Ash</newvalue>
</mapping>
<mapping>
<value>782</value>
<newvalue>Acorn Econet</newvalue>
</mapping>
<mapping>
<value>783</value>
<newvalue>Linux-IrDA</newvalue>
</mapping>
<mapping>
<value>784</value>
<newvalue>Point to point fibrechannel</newvalue>
</mapping>
<mapping>
<value>785</value>
<newvalue>Fibrechannel arbitrated loop</newvalue>
</mapping>
<mapping>
<value>786</value>
<newvalue>Fibrechannel public loop</newvalue>
</mapping>
<mapping>
<value>787</value>
<newvalue>Fibrechannel fabric</newvalue>
</mapping>
<mapping>
<value>800</value>
<newvalue>Magic type ident for TR</newvalue>
</mapping>
<mapping>
<value>801</value>
<newvalue>IEEE 802.11</newvalue>
</mapping>
<mapping>
<value>802</value>
<newvalue>IEEE 802.11 + Prism2 header</newvalue>
</mapping>
<mapping>
<value>803</value>
<newvalue>IEEE 802.11 + radiotap header</newvalue>
</mapping>
<mapping>
<value>804</value>
<newvalue>ARPHRD_IEEE802154</newvalue>
</mapping>
<mapping>
<value>805</value>
<newvalue>IEEE 802.15.4 network monitor</newvalue>
</mapping>
<mapping>
<value>820</value>
<newvalue>PhoNet media type</newvalue>
</mapping>
<mapping>
<value>821</value>
<newvalue>PhoNet pipe header</newvalue>
</mapping>
<mapping>
<value>822</value>
<newvalue>CAIF media type</newvalue>
</mapping>
<mapping>
<value>823</value>
<newvalue>GRE over IPv6</newvalue>
</mapping>
<mapping>
<value>824</value>
<newvalue>Netlink header</newvalue>
</mapping>
<mapping>
<value>825</value>
<newvalue>IPv6 over LoWPAN</newvalue>
</mapping>
<mapping>
<value>826</value>
<newvalue>Vsock monitor header</newvalue>
</mapping>
</mappings>
</value_map>
</value_maps>
</zabbix_export>