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

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Fayantsev <anton.fayantsev@zabbix.com>2020-06-05 05:07:40 +0300
committerAnton Fayantsev <anton.fayantsev@zabbix.com>2020-06-05 05:07:40 +0300
commitf220707326d2a879ef26eb1945c4ac58363fe54b (patch)
tree1e5c87625728539830dfd76fae693e6dedd74c64
parent79ff1f539b8a488d59837baf99309bef54208466 (diff)
.........T [ZBXNEXT-5966] updated SNMP templates for version 5.0 and changed their name suffix
-rw-r--r--templates/module/ether_like_snmp/README.md40
-rw-r--r--templates/module/ether_like_snmp/template_module_ether_like_snmp.xml (renamed from templates/module/ether_like_snmpv1/template_module_ether_like_snmpv1.xml)16
-rw-r--r--templates/module/ether_like_snmpv1/README.md40
-rw-r--r--templates/module/ether_like_snmpv2/README.md40
-rw-r--r--templates/module/ether_like_snmpv2/template_module_ether_like_snmpv2.xml129
-rw-r--r--templates/module/generic_snmp_snmp/README.md53
-rw-r--r--templates/module/generic_snmp_snmp/template_module_generic_snmp_snmp.xml (renamed from templates/module/generic_snmp_snmpv1/template_module_generic_snmp_snmpv1.xml)32
-rw-r--r--templates/module/generic_snmp_snmpv1/README.md53
-rw-r--r--templates/module/generic_snmp_snmpv2/README.md53
-rw-r--r--templates/module/generic_snmp_snmpv2/template_module_generic_snmp_snmpv2.xml284
-rw-r--r--templates/module/host_resources_snmp/README.md182
-rw-r--r--templates/module/host_resources_snmp/template_module_host_resources_snmp.xml (renamed from templates/module/host_resources_snmpv1/template_module_host_resources_snmpv1.xml)81
-rw-r--r--templates/module/host_resources_snmpv1/README.md182
-rw-r--r--templates/module/host_resources_snmpv2/README.md182
-rw-r--r--templates/module/host_resources_snmpv2/template_module_host_resources_snmpv2.xml570
-rw-r--r--templates/module/interfaces_simple_snmp/README.md74
-rw-r--r--templates/module/interfaces_simple_snmp/template_module_interfaces_simple_snmp.xml (renamed from templates/module/interfaces_simple_snmpv1/template_module_interfaces_simple_snmpv1.xml)108
-rw-r--r--templates/module/interfaces_simple_snmpv1/README.md74
-rw-r--r--templates/module/interfaces_simple_snmpv2/README.md74
-rw-r--r--templates/module/interfaces_simple_snmpv2/template_module_interfaces_simple_snmpv2.xml1754
-rw-r--r--templates/module/interfaces_snmp/README.md70
-rw-r--r--templates/module/interfaces_snmp/template_module_interfaces_snmp.xml (renamed from templates/module/interfaces_snmpv1/template_module_interfaces_snmpv1.xml)108
-rw-r--r--templates/module/interfaces_snmpv1/README.md70
-rw-r--r--templates/module/interfaces_snmpv2/README.md70
-rw-r--r--templates/module/interfaces_snmpv2/template_module_interfaces_snmpv2.xml1774
-rw-r--r--templates/module/interfaces_win_snmp/README.md77
-rw-r--r--templates/module/interfaces_win_snmp/template_module_interfaces_win_snmp.xml (renamed from templates/module/interfaces_win_snmpv2/template_module_interfaces_win_snmpv2.xml)108
-rw-r--r--templates/module/interfaces_win_snmpv2/README.md77
-rw-r--r--templates/net/alcatel_timetra_snmp/README.md78
-rw-r--r--templates/net/alcatel_timetra_snmp/template_net_alcatel_timetra_snmp.xml (renamed from templates/net/alcatel_timetra_snmpv2/template_net_alcatel_timetra_snmpv2.xml)70
-rw-r--r--templates/net/alcatel_timetra_snmpv2/README.md78
-rw-r--r--templates/net/arista_snmp/README.md78
-rw-r--r--templates/net/arista_snmp/template_net_arista_snmp.xml (renamed from templates/net/arista_snmpv2/template_net_arista_snmpv2.xml)61
-rw-r--r--templates/net/arista_snmpv2/README.md78
-rw-r--r--templates/net/brocade_fc_sw_snmp/README.md98
-rw-r--r--templates/net/brocade_fc_sw_snmp/template_net_brocade_fc_sw_snmp.xml (renamed from templates/net/brocade_fc_sw_snmpv2/template_net_brocade_fc_sw_snmpv2.xml)73
-rw-r--r--templates/net/brocade_fc_sw_snmpv2/README.md98
-rw-r--r--templates/net/brocade_foundry_sw_snmp/README.md221
-rw-r--r--templates/net/brocade_foundry_sw_snmp/template_net_brocade_foundry_sw_snmp.xml (renamed from templates/net/brocade_foundry_sw_snmpv2/template_net_brocade_foundry_sw_snmpv2.xml)127
-rw-r--r--templates/net/brocade_foundry_sw_snmpv2/README.md221
-rw-r--r--templates/net/cisco_snmp/README.md421
-rw-r--r--templates/net/cisco_snmp/template_net_cisco_snmp.xml (renamed from templates/net/cisco_snmpv2/template_net_cisco_snmpv2.xml)200
-rw-r--r--templates/net/cisco_snmpv2/README.md421
-rw-r--r--templates/net/dell_force_s_series_snmp/README.md78
-rw-r--r--templates/net/dell_force_s_series_snmp/template_net_dell_force_s_series_snmp.xml (renamed from templates/net/dell_force_s_series_snmpv2/template_net_dell_force_s_series_snmpv2.xml)67
-rw-r--r--templates/net/dell_force_s_series_snmpv2/README.md78
-rw-r--r--templates/net/dlink_des7200_snmp/README.md73
-rw-r--r--templates/net/dlink_des7200_snmp/template_net_dlink_des7200_snmp.xml (renamed from templates/net/dlink_des7200_snmpv2/template_net_dlink_des7200_snmpv2.xml)61
-rw-r--r--templates/net/dlink_des7200_snmpv2/README.md73
-rw-r--r--templates/net/dlink_des_snmp/README.md82
-rw-r--r--templates/net/dlink_des_snmp/template_net_dlink_des_snmp.xml (renamed from templates/net/dlink_des_snmpv2/template_net_dlink_des_snmpv2.xml)63
-rw-r--r--templates/net/dlink_des_snmpv2/README.md82
-rw-r--r--templates/net/extreme_snmp/README.md80
-rw-r--r--templates/net/extreme_snmp/template_net_extreme_snmp.xml (renamed from templates/net/extreme_snmpv2/template_net_extreme_snmpv2.xml)84
-rw-r--r--templates/net/extreme_snmpv2/README.md80
-rw-r--r--templates/net/generic_snmp/README.md (renamed from templates/net/generic_snmpv1/README.md)10
-rw-r--r--templates/net/generic_snmp/template_net_generic_snmp.xml (renamed from templates/net/generic_snmpv1/template_net_generic_snmpv1.xml)16
-rw-r--r--templates/net/generic_snmpv2/README.md42
-rw-r--r--templates/net/generic_snmpv2/template_net_generic_snmpv2.xml35
-rw-r--r--templates/net/hp_hh3c_snmp/README.md95
-rw-r--r--templates/net/hp_hh3c_snmp/template_net_hp_hh3c_snmp.xml (renamed from templates/net/hp_hh3c_snmpv2/template_net_hp_hh3c_snmpv2.xml)69
-rw-r--r--templates/net/hp_hh3c_snmpv2/README.md95
-rw-r--r--templates/net/hp_hpn_snmp/README.md91
-rw-r--r--templates/net/hp_hpn_snmp/template_net_hp_hpn_snmp.xml (renamed from templates/net/hp_hpn_snmpv2/template_net_hp_hpn_snmpv2.xml)86
-rw-r--r--templates/net/hp_hpn_snmpv2/README.md91
-rw-r--r--templates/net/huawei_snmp/README.md74
-rw-r--r--templates/net/huawei_snmp/template_net_huawei_snmp.xml (renamed from templates/net/huawei_snmpv2/template_net_huawei_snmpv2.xml)57
-rw-r--r--templates/net/huawei_snmpv2/README.md74
-rw-r--r--templates/net/intel_qlogic_infiniband_snmp/README.md71
-rw-r--r--templates/net/intel_qlogic_infiniband_snmp/template_net_intel_qlogic_infiniband_snmp.xml (renamed from templates/net/intel_qlogic_infiniband_snmpv2/template_net_intel_qlogic_infiniband_snmpv2.xml)67
-rw-r--r--templates/net/intel_qlogic_infiniband_snmpv2/README.md71
-rw-r--r--templates/net/juniper_snmp/README.md78
-rw-r--r--templates/net/juniper_snmp/template_net_juniper_snmp.xml (renamed from templates/net/juniper_snmpv2/template_net_juniper_snmpv2.xml)63
-rw-r--r--templates/net/juniper_snmpv2/README.md78
-rw-r--r--templates/net/mellanox_snmp/README.md68
-rw-r--r--templates/net/mellanox_snmp/template_net_mellanox_snmp.xml (renamed from templates/net/mellanox_snmpv2/template_net_mellanox_snmpv2.xml)59
-rw-r--r--templates/net/mellanox_snmpv2/README.md68
-rw-r--r--templates/net/mikrotik_snmp/README.md93
-rw-r--r--templates/net/mikrotik_snmp/template_net_mikrotik_snmp.xml (renamed from templates/net/mikrotik_snmpv2/template_net_mikrotik_snmpv2.xml)84
-rw-r--r--templates/net/mikrotik_snmpv2/README.md93
-rw-r--r--templates/net/netgear_snmp/README.md83
-rw-r--r--templates/net/netgear_snmp/template_net_netgear_snmp.xml (renamed from templates/net/netgear_snmpv2/template_net_netgear_snmpv2.xml)79
-rw-r--r--templates/net/netgear_snmpv2/README.md83
-rw-r--r--templates/net/qtech_snmp/README.md76
-rw-r--r--templates/net/qtech_snmp/template_net_qtech_snmp.xml (renamed from templates/net/qtech_snmpv2/template_net_qtech_snmpv2.xml)63
-rw-r--r--templates/net/qtech_snmpv2/README.md76
-rw-r--r--templates/net/tplink_snmp/README.md77
-rw-r--r--templates/net/tplink_snmp/template_net_tplink_snmp.xml (renamed from templates/net/tplink_snmpv2/template_net_tplink_snmpv2.xml)42
-rw-r--r--templates/net/tplink_snmpv2/README.md77
-rw-r--r--templates/net/ubiquiti_airos_snmp/README.md75
-rw-r--r--templates/net/ubiquiti_airos_snmp/template_net_ubiquiti_airos_snmp.xml (renamed from templates/net/ubiquiti_airos_snmpv1/template_net_ubiquiti_airos_snmpv1.xml)39
-rw-r--r--templates/net/ubiquiti_airos_snmpv1/README.md75
-rw-r--r--templates/os/linux_snmp_snmp/README.md292
-rw-r--r--templates/os/linux_snmp_snmp/template_os_linux_snmp_snmp.xml (renamed from templates/os/linux_snmp_snmpv2/template_os_linux_snmp_snmpv2.xml)234
-rw-r--r--templates/os/linux_snmp_snmpv2/README.md293
-rw-r--r--templates/os/windows_snmp/README.md (renamed from templates/os/windows_snmpv2/README.md)10
-rw-r--r--templates/os/windows_snmp/template_os_windows_snmp.xml (renamed from templates/os/windows_snmpv2/template_os_windows_snmpv2.xml)16
-rw-r--r--templates/server/cisco_ucs_snmp/README.md136
-rw-r--r--templates/server/cisco_ucs_snmp/template_server_cisco_ucs_snmp.xml (renamed from templates/server/cisco_ucs_snmpv2/template_server_cisco_ucs_snmpv2.xml)135
-rw-r--r--templates/server/cisco_ucs_snmpv2/README.md136
-rw-r--r--templates/server/dell_idrac_snmp/README.md153
-rw-r--r--templates/server/dell_idrac_snmp/template_server_dell_idrac_snmp.xml (renamed from templates/server/dell_idrac_snmpv2/template_server_dell_idrac_snmpv2.xml)192
-rw-r--r--templates/server/dell_idrac_snmpv2/README.md153
-rw-r--r--templates/server/hp_ilo_snmp/README.md160
-rw-r--r--templates/server/hp_ilo_snmp/template_server_hp_ilo_snmp.xml (renamed from templates/server/hp_ilo_snmpv2/template_server_hp_ilo_snmpv2.xml)182
-rw-r--r--templates/server/hp_ilo_snmpv2/README.md160
-rw-r--r--templates/server/ibm_imm_snmp/README.md115
-rw-r--r--templates/server/ibm_imm_snmp/template_server_ibm_imm_snmp.xml (renamed from templates/server/ibm_imm_snmpv1/template_server_ibm_imm_snmpv1.xml)81
-rw-r--r--templates/server/ibm_imm_snmpv1/README.md115
-rw-r--r--templates/server/ibm_imm_snmpv2/README.md115
-rw-r--r--templates/server/ibm_imm_snmpv2/template_server_ibm_imm_snmpv2.xml632
-rw-r--r--templates/server/supermicro_aten_snmp/README.md61
-rw-r--r--templates/server/supermicro_aten_snmp/template_server_supermicro_aten_snmp.xml (renamed from templates/server/supermicro_aten_snmpv2/template_server_supermicro_aten_snmpv2.xml)28
-rw-r--r--templates/server/supermicro_aten_snmpv2/README.md61
114 files changed, 4703 insertions, 10929 deletions
diff --git a/templates/module/ether_like_snmp/README.md b/templates/module/ether_like_snmp/README.md
new file mode 100644
index 00000000000..7aa92321bb4
--- /dev/null
+++ b/templates/module/ether_like_snmp/README.md
@@ -0,0 +1,40 @@
+
+# Template Module EtherLike-MIB SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|EtherLike-MIB Discovery |<p>Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered.</p> |SNMP |net.if.duplex.discovery<p>**Filter**:</p>AND <p>- A: {#IFOPERSTATUS} MATCHES_REGEX `1`</p><p>- B: {#SNMPVALUE} MATCHES_REGEX `(2|3)`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Duplex status |<p>MIB: EtherLike-MIB</p><p>The current mode of operation of the MAC</p><p>entity. 'unknown' indicates that the current</p><p>duplex mode could not be determined.</p><p>Management control of the duplex mode is</p><p>accomplished through the MAU MIB. When</p><p>an interface does not support autonegotiation,</p><p>or when autonegotiation is not enabled, the</p><p>duplex mode is controlled using</p><p>ifMauDefaultType. When autonegotiation is</p><p>supported and enabled, duplex mode is controlled</p><p>using ifMauAutoNegAdvertisedBits. In either</p><p>case, the currently operating duplex mode is</p><p>reflected both in this object and in ifMauType.</p><p>Note that this object provides redundant</p><p>information with ifMauType. Normally, redundant</p><p>objects are discouraged. However, in this</p><p>instance, it allows a management application to</p><p>determine the duplex status of an interface</p><p>without having to know every possible value of</p><p>ifMauType. This was felt to be sufficiently</p><p>valuable to justify the redundancy.</p><p>Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus.</p> |SNMP |net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Interface {#IFNAME}({#IFALIAS}): In half-duplex mode |<p>Please check autonegotiation settings and cabling</p> |`{TEMPLATE_NAME:net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}].last()}=2` |WARNING |<p>Manual close: YES</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/module/ether_like_snmpv1/template_module_ether_like_snmpv1.xml b/templates/module/ether_like_snmp/template_module_ether_like_snmp.xml
index 42ca9e93fdd..7e342fa8484 100644
--- a/templates/module/ether_like_snmpv1/template_module_ether_like_snmpv1.xml
+++ b/templates/module/ether_like_snmp/template_module_ether_like_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:27:46Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -9,14 +9,14 @@
</groups>
<templates>
<template>
- <template>Template Module EtherLike-MIB SNMPv1</template>
- <name>Template Module EtherLike-MIB SNMPv1</name>
+ <template>Template Module EtherLike-MIB SNMP</template>
+ <name>Template Module EtherLike-MIB SNMP</name>
<description>Template EtherLike-MIB (duplex control only)&#13;
&#13;
MIBs used:&#13;
EtherLike-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -30,8 +30,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>EtherLike-MIB Discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.10.7.2.1.19,{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2]</snmp_oid>
<key>net.if.duplex.discovery</key>
<delay>1h</delay>
@@ -54,8 +53,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Duplex status</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.10.7.2.1.19.{#SNMPINDEX}</snmp_oid>
<key>net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}]</key>
<history>7d</history>
diff --git a/templates/module/ether_like_snmpv1/README.md b/templates/module/ether_like_snmpv1/README.md
deleted file mode 100644
index 53578debe58..00000000000
--- a/templates/module/ether_like_snmpv1/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-
-# Template Module EtherLike-MIB SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|EtherLike-MIB Discovery|<p>Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered.</p>|SNMP|net.if.duplex.discovery<p>**Filter**:</p>AND <p>- A: {#IFOPERSTATUS} MATCHES_REGEX `1`</p><p>- B: {#SNMPVALUE} MATCHES_REGEX `(2|3)`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Duplex status|<p>MIB: EtherLike-MIB</p><p>The current mode of operation of the MAC</p><p>entity. 'unknown' indicates that the current</p><p>duplex mode could not be determined.</p><p>Management control of the duplex mode is</p><p>accomplished through the MAU MIB. When</p><p>an interface does not support autonegotiation,</p><p>or when autonegotiation is not enabled, the</p><p>duplex mode is controlled using</p><p>ifMauDefaultType. When autonegotiation is</p><p>supported and enabled, duplex mode is controlled</p><p>using ifMauAutoNegAdvertisedBits. In either</p><p>case, the currently operating duplex mode is</p><p>reflected both in this object and in ifMauType.</p><p>Note that this object provides redundant</p><p>information with ifMauType. Normally, redundant</p><p>objects are discouraged. However, in this</p><p>instance, it allows a management application to</p><p>determine the duplex status of an interface</p><p>without having to know every possible value of</p><p>ifMauType. This was felt to be sufficiently</p><p>valuable to justify the redundancy.</p><p>Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus.</p>|SNMP|net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Interface {#IFNAME}({#IFALIAS}): In half-duplex mode|<p>Please check autonegotiation settings and cabling</p>|`{TEMPLATE_NAME:net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}].last()}=2`|WARNING|<p>Manual close: YES</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/module/ether_like_snmpv2/README.md b/templates/module/ether_like_snmpv2/README.md
deleted file mode 100644
index 3dbe1f8e800..00000000000
--- a/templates/module/ether_like_snmpv2/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-
-# Template Module EtherLike-MIB SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|EtherLike-MIB Discovery|<p>Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered.</p>|SNMP|net.if.duplex.discovery<p>**Filter**:</p>AND <p>- A: {#IFOPERSTATUS} MATCHES_REGEX `1`</p><p>- B: {#SNMPVALUE} MATCHES_REGEX `(2|3)`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Duplex status|<p>MIB: EtherLike-MIB</p><p>The current mode of operation of the MAC</p><p>entity. 'unknown' indicates that the current</p><p>duplex mode could not be determined.</p><p>Management control of the duplex mode is</p><p>accomplished through the MAU MIB. When</p><p>an interface does not support autonegotiation,</p><p>or when autonegotiation is not enabled, the</p><p>duplex mode is controlled using</p><p>ifMauDefaultType. When autonegotiation is</p><p>supported and enabled, duplex mode is controlled</p><p>using ifMauAutoNegAdvertisedBits. In either</p><p>case, the currently operating duplex mode is</p><p>reflected both in this object and in ifMauType.</p><p>Note that this object provides redundant</p><p>information with ifMauType. Normally, redundant</p><p>objects are discouraged. However, in this</p><p>instance, it allows a management application to</p><p>determine the duplex status of an interface</p><p>without having to know every possible value of</p><p>ifMauType. This was felt to be sufficiently</p><p>valuable to justify the redundancy.</p><p>Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus.</p>|SNMP|net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Interface {#IFNAME}({#IFALIAS}): In half-duplex mode|<p>Please check autonegotiation settings and cabling</p>|`{TEMPLATE_NAME:net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}].last()}=2`|WARNING|<p>Manual close: YES</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/module/ether_like_snmpv2/template_module_ether_like_snmpv2.xml b/templates/module/ether_like_snmpv2/template_module_ether_like_snmpv2.xml
deleted file mode 100644
index f39bccbea25..00000000000
--- a/templates/module/ether_like_snmpv2/template_module_ether_like_snmpv2.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <templates>
- <template>
- <template>Template Module EtherLike-MIB SNMPv2</template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
- <description>Template EtherLike-MIB (duplex control only)&#13;
-&#13;
-MIBs used:&#13;
-EtherLike-MIB&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <applications>
- <application>
- <name>Network interfaces</name>
- </application>
- </applications>
- <discovery_rules>
- <discovery_rule>
- <name>EtherLike-MIB Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.10.7.2.1.19,{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2]</snmp_oid>
- <key>net.if.duplex.discovery</key>
- <delay>1h</delay>
- <filter>
- <evaltype>AND</evaltype>
- <conditions>
- <condition>
- <macro>{#IFOPERSTATUS}</macro>
- <value>1</value>
- <formulaid>A</formulaid>
- </condition>
- <condition>
- <macro>{#SNMPVALUE}</macro>
- <value>(2|3)</value>
- <formulaid>B</formulaid>
- </condition>
- </conditions>
- </filter>
- <description>Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered.</description>
- <item_prototypes>
- <item_prototype>
- <name>Interface {#IFNAME}({#IFALIAS}): Duplex status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.10.7.2.1.19.{#SNMPINDEX}</snmp_oid>
- <key>net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}]</key>
- <history>7d</history>
- <description>MIB: EtherLike-MIB&#13;
-The current mode of operation of the MAC&#13;
-entity. 'unknown' indicates that the current&#13;
-duplex mode could not be determined.&#13;
-&#13;
-Management control of the duplex mode is&#13;
-accomplished through the MAU MIB. When&#13;
-an interface does not support autonegotiation,&#13;
-or when autonegotiation is not enabled, the&#13;
-duplex mode is controlled using&#13;
-ifMauDefaultType. When autonegotiation is&#13;
-supported and enabled, duplex mode is controlled&#13;
-using ifMauAutoNegAdvertisedBits. In either&#13;
-case, the currently operating duplex mode is&#13;
-reflected both in this object and in ifMauType.&#13;
-&#13;
-Note that this object provides redundant&#13;
-information with ifMauType. Normally, redundant&#13;
-objects are discouraged. However, in this&#13;
-instance, it allows a management application to&#13;
-determine the duplex status of an interface&#13;
-without having to know every possible value of&#13;
-ifMauType. This was felt to be sufficiently&#13;
-valuable to justify the redundancy.&#13;
-Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</name>
- </application_prototype>
- </application_prototypes>
- <valuemap>
- <name>EtherLike-MIB::dot3StatsDuplexStatus</name>
- </valuemap>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{last()}=2</expression>
- <name>Interface {#IFNAME}({#IFALIAS}): In half-duplex mode</name>
- <priority>WARNING</priority>
- <description>Please check autonegotiation settings and cabling</description>
- <manual_close>YES</manual_close>
- </trigger_prototype>
- </trigger_prototypes>
- </item_prototype>
- </item_prototypes>
- </discovery_rule>
- </discovery_rules>
- </template>
- </templates>
- <value_maps>
- <value_map>
- <name>EtherLike-MIB::dot3StatsDuplexStatus</name>
- <mappings>
- <mapping>
- <value>1</value>
- <newvalue>unknown</newvalue>
- </mapping>
- <mapping>
- <value>2</value>
- <newvalue>halfDuplex</newvalue>
- </mapping>
- <mapping>
- <value>3</value>
- <newvalue>fullDuplex</newvalue>
- </mapping>
- </mappings>
- </value_map>
- </value_maps>
-</zabbix_export>
diff --git a/templates/module/generic_snmp_snmp/README.md b/templates/module/generic_snmp_snmp/README.md
new file mode 100644
index 00000000000..fc5a417e826
--- /dev/null
+++ b/templates/module/generic_snmp_snmp/README.md
@@ -0,0 +1,53 @@
+
+# Template Module Generic SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$SNMP.TIMEOUT} |<p>-</p> |`5m` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module ICMP Ping |
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback |
+|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> |
+|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> |
+|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/module/generic_snmp_snmpv1/template_module_generic_snmp_snmpv1.xml b/templates/module/generic_snmp_snmp/template_module_generic_snmp_snmp.xml
index 2250d4f508b..f9310bffe70 100644
--- a/templates/module/generic_snmp_snmpv1/template_module_generic_snmp_snmpv1.xml
+++ b/templates/module/generic_snmp_snmp/template_module_generic_snmp_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:27:48Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -9,14 +9,14 @@
</groups>
<templates>
<template>
- <template>Template Module Generic SNMPv1</template>
- <name>Template Module Generic SNMPv1</name>
+ <template>Template Module Generic SNMP</template>
+ <name>Template Module Generic SNMP</name>
<description>Template Module Generic&#13;
&#13;
MIBs used:&#13;
SNMPv2-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
<name>Template Module ICMP Ping</name>
@@ -53,8 +53,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>System contact details</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.4.0</snmp_oid>
<key>system.contact[sysContact.0]</key>
<delay>1h</delay>
@@ -78,8 +77,7 @@ The textual identification of the contact person for this managed node, together
</item>
<item>
<name>System description</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
<key>system.descr[sysDescr.0]</key>
<delay>1h</delay>
@@ -104,8 +102,7 @@ networking software.</description>
</item>
<item>
<name>System location</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.6.0</snmp_oid>
<key>system.location[sysLocation.0]</key>
<delay>1h</delay>
@@ -129,8 +126,7 @@ The physical location of this node (e.g., `telephone closet, 3rd floor'). If th
</item>
<item>
<name>System name</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.5.0</snmp_oid>
<key>system.name</key>
<delay>1h</delay>
@@ -163,8 +159,7 @@ An administratively-assigned name for this managed node.By convention, this is t
</item>
<item>
<name>System object ID</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.2.0</snmp_oid>
<key>system.objectid[sysObjectID.0]</key>
<delay>15m</delay>
@@ -187,8 +182,7 @@ The vendor's authoritative identification of the network management subsystem co
</item>
<item>
<name>Uptime</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.3.0</snmp_oid>
<key>system.uptime[sysUpTime.0]</key>
<delay>30s</delay>
@@ -218,7 +212,7 @@ The time (in hundredths of a second) since the network management portion of the
<dependencies>
<dependency>
<name>No SNMP data collection</name>
- <expression>{Template Module Generic SNMPv1:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0</expression>
+ <expression>{Template Module Generic SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0</expression>
</dependency>
</dependencies>
</trigger>
@@ -247,7 +241,7 @@ The time (in hundredths of a second) since the network management portion of the
<dependencies>
<dependency>
<name>Unavailable by ICMP ping</name>
- <expression>{Template Module Generic SNMPv1:icmpping.max(#3)}=0</expression>
+ <expression>{Template Module Generic SNMP:icmpping.max(#3)}=0</expression>
</dependency>
</dependencies>
</trigger>
diff --git a/templates/module/generic_snmp_snmpv1/README.md b/templates/module/generic_snmp_snmpv1/README.md
deleted file mode 100644
index 3cd4a893ca0..00000000000
--- a/templates/module/generic_snmp_snmpv1/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-
-# Template Module Generic SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$SNMP.TIMEOUT}|<p>-</p>|`5m`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module ICMP Ping|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|General|SNMP traps (fallback)|<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p>|SNMP_TRAP|snmptrap.fallback|
-|General|System location|<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string.</p>|SNMP|system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-|General|System contact details|<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string.</p>|SNMP|system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|General|System object ID|<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router'.</p>|SNMP|system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-|General|System name|<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string.</p>|SNMP|system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-|General|System description|<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p>|SNMP|system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Status|Uptime|<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management portion of the system was last re-initialized.</p>|SNMP|system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p>|
-|Status|SNMP agent availability|<p>-</p>|INTERNAL|zabbix[host,snmp,available]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|System name has changed (new name: {ITEM.VALUE})|<p>System name has changed. Ack to close.</p>|`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{HOST.NAME} has been restarted (uptime < 10m)|<p>Uptime is less than 10 minutes</p>|`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p>|
-|No SNMP data collection|<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p>|`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0`|WARNING|<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/module/generic_snmp_snmpv2/README.md b/templates/module/generic_snmp_snmpv2/README.md
deleted file mode 100644
index 0b87594eb73..00000000000
--- a/templates/module/generic_snmp_snmpv2/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-
-# Template Module Generic SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$SNMP.TIMEOUT}|<p>-</p>|`5m`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module ICMP Ping|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|General|SNMP traps (fallback)|<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p>|SNMP_TRAP|snmptrap.fallback|
-|General|System location|<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string.</p>|SNMP|system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-|General|System contact details|<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string.</p>|SNMP|system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|General|System object ID|<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router'.</p>|SNMP|system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-|General|System name|<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string.</p>|SNMP|system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-|General|System description|<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p>|SNMP|system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Status|Uptime|<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management portion of the system was last re-initialized.</p>|SNMP|system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p>|
-|Status|SNMP agent availability|<p>-</p>|INTERNAL|zabbix[host,snmp,available]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|System name has changed (new name: {ITEM.VALUE})|<p>System name has changed. Ack to close.</p>|`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{HOST.NAME} has been restarted (uptime < 10m)|<p>Uptime is less than 10 minutes</p>|`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p>|
-|No SNMP data collection|<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p>|`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0`|WARNING|<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/module/generic_snmp_snmpv2/template_module_generic_snmp_snmpv2.xml b/templates/module/generic_snmp_snmpv2/template_module_generic_snmp_snmpv2.xml
deleted file mode 100644
index 183646d8081..00000000000
--- a/templates/module/generic_snmp_snmpv2/template_module_generic_snmp_snmpv2.xml
+++ /dev/null
@@ -1,284 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <templates>
- <template>
- <template>Template Module Generic SNMPv2</template>
- <name>Template Module Generic SNMPv2</name>
- <description>Template Module Generic&#13;
-&#13;
-MIBs used:&#13;
-SNMPv2-MIB&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <templates>
- <template>
- <name>Template Module ICMP Ping</name>
- </template>
- </templates>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <applications>
- <application>
- <name>General</name>
- </application>
- <application>
- <name>Status</name>
- </application>
- </applications>
- <items>
- <item>
- <name>SNMP traps (fallback)</name>
- <type>SNMP_TRAP</type>
- <key>snmptrap.fallback</key>
- <history>2w</history>
- <trends>0</trends>
- <value_type>LOG</value_type>
- <description>Item is used to collect all SNMP traps unmatched by other snmptrap items</description>
- <applications>
- <application>
- <name>General</name>
- </application>
- </applications>
- <logtimefmt>hh:mm:sszyyyy/MM/dd</logtimefmt>
- </item>
- <item>
- <name>System contact details</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.1.4.0</snmp_oid>
- <key>system.contact[sysContact.0]</key>
- <delay>1h</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: SNMPv2-MIB&#13;
-The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string.</description>
- <inventory_link>CONTACT</inventory_link>
- <applications>
- <application>
- <name>General</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>DISCARD_UNCHANGED_HEARTBEAT</type>
- <params>1d</params>
- </step>
- </preprocessing>
- </item>
- <item>
- <name>System description</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
- <key>system.descr[sysDescr.0]</key>
- <delay>1h</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: SNMPv2-MIB&#13;
-A textual description of the entity. This value should&#13;
-include the full name and version identification of the system's hardware type, software operating-system, and&#13;
-networking software.</description>
- <applications>
- <application>
- <name>General</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>DISCARD_UNCHANGED_HEARTBEAT</type>
- <params>1d</params>
- </step>
- </preprocessing>
- </item>
- <item>
- <name>System location</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.1.6.0</snmp_oid>
- <key>system.location[sysLocation.0]</key>
- <delay>1h</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: SNMPv2-MIB&#13;
-The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string.</description>
- <inventory_link>LOCATION</inventory_link>
- <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>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.1.5.0</snmp_oid>
- <key>system.name</key>
- <delay>1h</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: SNMPv2-MIB&#13;
-An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string.</description>
- <inventory_link>NAME</inventory_link>
- <applications>
- <application>
- <name>General</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>DISCARD_UNCHANGED_HEARTBEAT</type>
- <params>1h</params>
- </step>
- </preprocessing>
- <triggers>
- <trigger>
- <expression>{diff()}=1 and {strlen()}&gt;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 object ID</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.1.2.0</snmp_oid>
- <key>system.objectid[sysObjectID.0]</key>
- <delay>15m</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: SNMPv2-MIB&#13;
-The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router'.</description>
- <applications>
- <application>
- <name>General</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>DISCARD_UNCHANGED_HEARTBEAT</type>
- <params>1h</params>
- </step>
- </preprocessing>
- </item>
- <item>
- <name>Uptime</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.1.3.0</snmp_oid>
- <key>system.uptime[sysUpTime.0]</key>
- <delay>30s</delay>
- <history>2w</history>
- <trends>0d</trends>
- <units>uptime</units>
- <description>MIB: SNMPv2-MIB&#13;
-The time (in hundredths of a second) since the network management portion of the system was last re-initialized.</description>
- <applications>
- <application>
- <name>Status</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>MULTIPLIER</type>
- <params>0.01</params>
- </step>
- </preprocessing>
- <triggers>
- <trigger>
- <expression>{last()}&lt;10m</expression>
- <name>{HOST.NAME} has been restarted (uptime &lt; 10m)</name>
- <priority>WARNING</priority>
- <description>Uptime is less than 10 minutes</description>
- <manual_close>YES</manual_close>
- <dependencies>
- <dependency>
- <name>No SNMP data collection</name>
- <expression>{Template Module Generic SNMPv2:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0</expression>
- </dependency>
- </dependencies>
- </trigger>
- </triggers>
- </item>
- <item>
- <name>SNMP agent availability</name>
- <type>INTERNAL</type>
- <key>zabbix[host,snmp,available]</key>
- <history>7d</history>
- <applications>
- <application>
- <name>Status</name>
- </application>
- </applications>
- <valuemap>
- <name>zabbix.host.available</name>
- </valuemap>
- <triggers>
- <trigger>
- <expression>{max({$SNMP.TIMEOUT})}=0</expression>
- <name>No SNMP data collection</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>WARNING</priority>
- <description>SNMP is not available for polling. Please check device connectivity and SNMP settings.</description>
- <dependencies>
- <dependency>
- <name>Unavailable by ICMP ping</name>
- <expression>{Template Module Generic SNMPv2:icmpping.max(#3)}=0</expression>
- </dependency>
- </dependencies>
- </trigger>
- </triggers>
- </item>
- </items>
- <macros>
- <macro>
- <macro>{$SNMP.TIMEOUT}</macro>
- <value>5m</value>
- </macro>
- </macros>
- </template>
- </templates>
- <value_maps>
- <value_map>
- <name>zabbix.host.available</name>
- <mappings>
- <mapping>
- <value>0</value>
- <newvalue>not available</newvalue>
- </mapping>
- <mapping>
- <value>1</value>
- <newvalue>available</newvalue>
- </mapping>
- <mapping>
- <value>2</value>
- <newvalue>unknown</newvalue>
- </mapping>
- </mappings>
- </value_map>
- </value_maps>
-</zabbix_export>
diff --git a/templates/module/host_resources_snmp/README.md b/templates/module/host_resources_snmp/README.md
new file mode 100644
index 00000000000..0886fd2c74b
--- /dev/null
+++ b/templates/module/host_resources_snmp/README.md
@@ -0,0 +1,182 @@
+
+# Template Module HOST-RESOURCES-MIB storage SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$VFS.FS.FSNAME.MATCHES} |<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p> |`.+` |
+|{$VFS.FS.FSNAME.NOT_MATCHES} |<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p> |`^(/dev|/sys|/run|/proc|.+/shm$)` |
+|{$VFS.FS.FSTYPE.MATCHES} |<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p> |`.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$` |
+|{$VFS.FS.FSTYPE.NOT_MATCHES} |<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p> |`CHANGE_IF_NEEDED` |
+|{$VFS.FS.PUSED.MAX.CRIT} |<p>-</p> |`90` |
+|{$VFS.FS.PUSED.MAX.WARN} |<p>-</p> |`80` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Storage discovery |<p>HOST-RESOURCES-MIB::hrStorage discovery with storage filter.</p> |SNMP |vfs.fs.discovery[snmp]<p>**Filter**:</p>AND <p>- A: {#FSTYPE} MATCHES_REGEX `{$VFS.FS.FSTYPE.MATCHES}`</p><p>- B: {#FSTYPE} NOT_MATCHES_REGEX `{$VFS.FS.FSTYPE.NOT_MATCHES}`</p><p>- C: {#FSNAME} MATCHES_REGEX `{$VFS.FS.FSNAME.MATCHES}`</p><p>- D: {#FSNAME} NOT_MATCHES_REGEX `{$VFS.FS.FSNAME.NOT_MATCHES}`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Storage |{#FSNAME}: Used space |<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p> |SNMP |vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p> |
+|Storage |{#FSNAME}: Total space |<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in units of hrStorageAllocationUnits.</p><p>This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.</p><p>For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified.</p> |SNMP |vfs.fs.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p> |
+|Storage |{#FSNAME}: Space utilization |<p>Space utilization in % for {#FSNAME}</p> |CALCULATED |vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}]<p>**Expression**:</p>`(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100` |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 5G.</p><p> - The disk will be full in less than 24 hours.</p> |`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)` |AVERAGE |<p>Manual close: YES</p> |
+|{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 10G.</p><p> - The disk will be full in less than 24 hours.</p> |`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<10G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module HOST-RESOURCES-MIB memory SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$MEMORY.NAME.MATCHES} |<p>This macro is used in memory discovery. Can be overridden on the host or linked template level.</p> |`.*` |
+|{$MEMORY.NAME.NOT_MATCHES} |<p>This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.</p> |`CHANGE_IF_NEEDED` |
+|{$MEMORY.TYPE.MATCHES} |<p>This macro is used in memory discovery. Can be overridden on the host or linked template level.</p> |`.*(\.2|hrStorageRam)$` |
+|{$MEMORY.TYPE.NOT_MATCHES} |<p>This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.</p> |`CHANGE_IF_NEEDED` |
+|{$MEMORY.UTIL.MAX} |<p>The warning threshold of the "Physical memory: Memory utilization" item.</p> |`90` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Memory discovery |<p>HOST-RESOURCES-MIB::hrStorage discovery with memory filter</p> |SNMP |vm.memory.discovery<p>**Filter**:</p>AND <p>- A: {#MEMTYPE} MATCHES_REGEX `{$MEMORY.TYPE.MATCHES}`</p><p>- B: {#MEMTYPE} NOT_MATCHES_REGEX `{$MEMORY.TYPE.NOT_MATCHES}`</p><p>- C: {#MEMNAME} MATCHES_REGEX `{$MEMORY.NAME.MATCHES}`</p><p>- D: {#MEMNAME} NOT_MATCHES_REGEX `{$MEMORY.NAME.NOT_MATCHES}`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Memory |{#MEMNAME}: Used memory |<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p> |SNMP |vm.memory.used[hrStorageUsed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p> |
+|Memory |{#MEMNAME}: Total memory |<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in units of hrStorageAllocationUnits.</p><p>This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.</p><p>For example, the amount of main memory allocated to a buffer pool might be modified or the amount of disk space allocated to virtual memory might be modified.</p> |SNMP |vm.memory.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p> |
+|Memory |{#MEMNAME}: Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}]<p>**Expression**:</p>`last("vm.memory.used[hrStorageUsed.{#SNMPINDEX}]")/last("vm.memory.total[hrStorageSize.{#SNMPINDEX}]")*100` |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#MEMNAME}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module HOST-RESOURCES-MIB CPU SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: HOST-RESOURCES-MIB</p><p>The average, over the last minute, of the percentage of time that processors was not idle.</p><p>Implementations may approximate this one minute smoothing period if necessary.</p> |SNMP |system.cpu.util<p>**Preprocessing**:</p><p>- JSONPATH: `$..['{#CPU.UTIL}'].avg()`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module HOST-RESOURCES-MIB SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+
+## Template links
+
+|Name|
+|----|
+|Template Module HOST-RESOURCES-MIB CPU SNMP |
+|Template Module HOST-RESOURCES-MIB memory SNMP |
+|Template Module HOST-RESOURCES-MIB storage SNMP |
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/module/host_resources_snmpv1/template_module_host_resources_snmpv1.xml b/templates/module/host_resources_snmp/template_module_host_resources_snmp.xml
index 60619bd5dcf..a21951e0b8b 100644
--- a/templates/module/host_resources_snmpv1/template_module_host_resources_snmpv1.xml
+++ b/templates/module/host_resources_snmp/template_module_host_resources_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:30:24Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -9,14 +9,14 @@
</groups>
<templates>
<template>
- <template>Template Module HOST-RESOURCES-MIB CPU SNMPv1</template>
- <name>Template Module HOST-RESOURCES-MIB CPU SNMPv1</name>
+ <template>Template Module HOST-RESOURCES-MIB CPU SNMP</template>
+ <name>Template Module HOST-RESOURCES-MIB CPU SNMP</name>
<description>Requires Zabbix server 4.0.14, 4.2.8, 4.4.0 or newer (JSONPath function avg() used with types autoconversion).&#13;
&#13;
MIBs used:&#13;
HOST-RESOURCES-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -30,8 +30,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#CPU.UTIL},1.3.6.1.2.1.25.3.3.1.2]</snmp_oid>
<key>system.cpu.util</key>
<history>7d</history>
@@ -70,12 +69,12 @@ Implementations may approximate this one minute smoothing period if necessary.</
</macros>
</template>
<template>
- <template>Template Module HOST-RESOURCES-MIB memory SNMPv1</template>
- <name>Template Module HOST-RESOURCES-MIB memory SNMPv1</name>
+ <template>Template Module HOST-RESOURCES-MIB memory SNMP</template>
+ <name>Template Module HOST-RESOURCES-MIB memory SNMP</name>
<description>MIBs used:&#13;
HOST-RESOURCES-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -89,8 +88,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Memory discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#MEMNAME},1.3.6.1.2.1.25.2.3.1.3,{#MEMTYPE},1.3.6.1.2.1.25.2.3.1.2,{#ALLOC_UNITS},1.3.6.1.2.1.25.2.3.1.4]</snmp_oid>
<key>vm.memory.discovery</key>
<delay>1h</delay>
@@ -125,8 +123,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#MEMNAME}: Total memory</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.5.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.total[hrStorageSize.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -149,8 +146,7 @@ For example, the amount of main memory allocated to a buffer pool might be modif
</item_prototype>
<item_prototype>
<name>{#MEMNAME}: Used memory</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.6.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.used[hrStorageUsed.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -203,7 +199,7 @@ The amount of the storage represented by this entry that is allocated, in units
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module HOST-RESOURCES-MIB memory SNMPv1</host>
+ <host>Template Module HOST-RESOURCES-MIB memory SNMP</host>
<key>vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -241,20 +237,20 @@ The amount of the storage represented by this entry that is allocated, in units
</macros>
</template>
<template>
- <template>Template Module HOST-RESOURCES-MIB SNMPv1</template>
- <name>Template Module HOST-RESOURCES-MIB SNMPv1</name>
+ <template>Template Module HOST-RESOURCES-MIB SNMP</template>
+ <name>Template Module HOST-RESOURCES-MIB SNMP</name>
<description>HOST-RESOURCES-MIB: CPU, memory and storage(vfs.fs.file) linked together.&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module HOST-RESOURCES-MIB CPU SNMPv1</name>
+ <name>Template Module HOST-RESOURCES-MIB CPU SNMP</name>
</template>
<template>
- <name>Template Module HOST-RESOURCES-MIB memory SNMPv1</name>
+ <name>Template Module HOST-RESOURCES-MIB memory SNMP</name>
</template>
<template>
- <name>Template Module HOST-RESOURCES-MIB storage SNMPv1</name>
+ <name>Template Module HOST-RESOURCES-MIB storage SNMP</name>
</template>
</templates>
<groups>
@@ -273,7 +269,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>CPU utilization</name>
- <host>Template Module HOST-RESOURCES-MIB SNMPv1</host>
+ <host>Template Module HOST-RESOURCES-MIB SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -295,7 +291,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>{#MEMNAME}: Memory utilization</name>
- <host>Template Module HOST-RESOURCES-MIB SNMPv1</host>
+ <host>Template Module HOST-RESOURCES-MIB SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -317,7 +313,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>{#FSNAME}: Disk space usage</name>
- <host>Template Module HOST-RESOURCES-MIB SNMPv1</host>
+ <host>Template Module HOST-RESOURCES-MIB SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -339,12 +335,12 @@ Template tooling version used: 0.34</description>
</screens>
</template>
<template>
- <template>Template Module HOST-RESOURCES-MIB storage SNMPv1</template>
- <name>Template Module HOST-RESOURCES-MIB storage SNMPv1</name>
+ <template>Template Module HOST-RESOURCES-MIB storage SNMP</template>
+ <name>Template Module HOST-RESOURCES-MIB storage SNMP</name>
<description>MIBs used:&#13;
HOST-RESOURCES-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -358,8 +354,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Storage discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#FSNAME},1.3.6.1.2.1.25.2.3.1.3,{#FSTYPE},1.3.6.1.2.1.25.2.3.1.2,{#ALLOC_UNITS},1.3.6.1.2.1.25.2.3.1.4]</snmp_oid>
<key>vfs.fs.discovery[snmp]</key>
<delay>1h</delay>
@@ -409,8 +404,7 @@ Template tooling version used: 0.34</description>
</item_prototype>
<item_prototype>
<name>{#FSNAME}: Total space</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.5.{#SNMPINDEX}</snmp_oid>
<key>vfs.fs.total[hrStorageSize.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -433,8 +427,7 @@ For example, the amount of main storage allocated to a buffer pool might be modi
</item_prototype>
<item_prototype>
<name>{#FSNAME}: Used space</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.6.{#SNMPINDEX}</snmp_oid>
<key>vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -456,8 +449,8 @@ The amount of the storage represented by this entry that is allocated, in units
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
-(({Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
+(({Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
<name>{#FSNAME}: Disk space is critically low (used &gt; {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</name>
<opdata>Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})</opdata>
<priority>AVERAGE</priority>
@@ -468,8 +461,8 @@ The amount of the storage represented by this entry that is allocated, in units
<manual_close>YES</manual_close>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and&#13;
-(({Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;10G or {Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and&#13;
+(({Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;10G or {Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
<name>{#FSNAME}: Disk space is low (used &gt; {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)</name>
<opdata>Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})</opdata>
<priority>WARNING</priority>
@@ -481,8 +474,8 @@ The amount of the storage represented by this entry that is allocated, in units
<dependencies>
<dependency>
<name>{#FSNAME}: Disk space is critically low (used &gt; {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</name>
- <expression>{Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
-(({Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
+(({Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -500,7 +493,7 @@ The amount of the storage represented by this entry that is allocated, in units
<calc_fnc>LAST</calc_fnc>
<type>GRAPH_SUM</type>
<item>
- <host>Template Module HOST-RESOURCES-MIB storage SNMPv1</host>
+ <host>Template Module HOST-RESOURCES-MIB storage SNMP</host>
<key>vfs.fs.total[hrStorageSize.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -509,7 +502,7 @@ The amount of the storage represented by this entry that is allocated, in units
<color>C80000</color>
<calc_fnc>LAST</calc_fnc>
<item>
- <host>Template Module HOST-RESOURCES-MIB storage SNMPv1</host>
+ <host>Template Module HOST-RESOURCES-MIB storage SNMP</host>
<key>vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -560,7 +553,7 @@ The amount of the storage represented by this entry that is allocated, in units
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module HOST-RESOURCES-MIB CPU SNMPv1</host>
+ <host>Template Module HOST-RESOURCES-MIB CPU SNMP</host>
<key>system.cpu.util</key>
</item>
</graph_item>
diff --git a/templates/module/host_resources_snmpv1/README.md b/templates/module/host_resources_snmpv1/README.md
deleted file mode 100644
index 925992aea37..00000000000
--- a/templates/module/host_resources_snmpv1/README.md
+++ /dev/null
@@ -1,182 +0,0 @@
-
-# Template Module HOST-RESOURCES-MIB storage SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$VFS.FS.FSNAME.MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p>|`.+`|
-|{$VFS.FS.FSNAME.NOT_MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p>|`^(/dev|/sys|/run|/proc|.+/shm$)`|
-|{$VFS.FS.FSTYPE.MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p>|`.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$`|
-|{$VFS.FS.FSTYPE.NOT_MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p>|`CHANGE_IF_NEEDED`|
-|{$VFS.FS.PUSED.MAX.CRIT}|<p>-</p>|`90`|
-|{$VFS.FS.PUSED.MAX.WARN}|<p>-</p>|`80`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Storage discovery|<p>HOST-RESOURCES-MIB::hrStorage discovery with storage filter.</p>|SNMP|vfs.fs.discovery[snmp]<p>**Filter**:</p>AND <p>- A: {#FSTYPE} MATCHES_REGEX `{$VFS.FS.FSTYPE.MATCHES}`</p><p>- B: {#FSTYPE} NOT_MATCHES_REGEX `{$VFS.FS.FSTYPE.NOT_MATCHES}`</p><p>- C: {#FSNAME} MATCHES_REGEX `{$VFS.FS.FSNAME.MATCHES}`</p><p>- D: {#FSNAME} NOT_MATCHES_REGEX `{$VFS.FS.FSNAME.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Storage|{#FSNAME}: Used space|<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p>|SNMP|vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Storage|{#FSNAME}: Total space|<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in units of hrStorageAllocationUnits.</p><p>This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.</p><p>For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified.</p>|SNMP|vfs.fs.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Storage|{#FSNAME}: Space utilization|<p>Space utilization in % for {#FSNAME}</p>|CALCULATED|vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}]<p>**Expression**:</p>`(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100`|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)|<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 5G.</p><p> - The disk will be full in less than 24 hours.</p>|`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)`|AVERAGE|<p>Manual close: YES</p>|
-|{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)|<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 10G.</p><p> - The disk will be full in less than 24 hours.</p>|`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv1:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<10G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module HOST-RESOURCES-MIB memory SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$MEMORY.NAME.MATCHES}|<p>This macro is used in memory discovery. Can be overridden on the host or linked template level.</p>|`.*`|
-|{$MEMORY.NAME.NOT_MATCHES}|<p>This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.</p>|`CHANGE_IF_NEEDED`|
-|{$MEMORY.TYPE.MATCHES}|<p>This macro is used in memory discovery. Can be overridden on the host or linked template level.</p>|`.*(\.2|hrStorageRam)$`|
-|{$MEMORY.TYPE.NOT_MATCHES}|<p>This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.</p>|`CHANGE_IF_NEEDED`|
-|{$MEMORY.UTIL.MAX}|<p>The warning threshold of the "Physical memory: Memory utilization" item.</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Memory discovery|<p>HOST-RESOURCES-MIB::hrStorage discovery with memory filter</p>|SNMP|vm.memory.discovery<p>**Filter**:</p>AND <p>- A: {#MEMTYPE} MATCHES_REGEX `{$MEMORY.TYPE.MATCHES}`</p><p>- B: {#MEMTYPE} NOT_MATCHES_REGEX `{$MEMORY.TYPE.NOT_MATCHES}`</p><p>- C: {#MEMNAME} MATCHES_REGEX `{$MEMORY.NAME.MATCHES}`</p><p>- D: {#MEMNAME} NOT_MATCHES_REGEX `{$MEMORY.NAME.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Memory|{#MEMNAME}: Used memory|<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p>|SNMP|vm.memory.used[hrStorageUsed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Memory|{#MEMNAME}: Total memory|<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in units of hrStorageAllocationUnits.</p><p>This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.</p><p>For example, the amount of main memory allocated to a buffer pool might be modified or the amount of disk space allocated to virtual memory might be modified.</p>|SNMP|vm.memory.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Memory|{#MEMNAME}: Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}]<p>**Expression**:</p>`last("vm.memory.used[hrStorageUsed.{#SNMPINDEX}]")/last("vm.memory.total[hrStorageSize.{#SNMPINDEX}]")*100`|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#MEMNAME}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module HOST-RESOURCES-MIB CPU SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: HOST-RESOURCES-MIB</p><p>The average, over the last minute, of the percentage of time that processors was not idle.</p><p>Implementations may approximate this one minute smoothing period if necessary.</p>|SNMP|system.cpu.util<p>**Preprocessing**:</p><p>- JSONPATH: `$..['{#CPU.UTIL}'].avg()`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module HOST-RESOURCES-MIB SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-
-## Template links
-
-|Name|
-|----|
-|Template Module HOST-RESOURCES-MIB CPU SNMPv1|
-|Template Module HOST-RESOURCES-MIB memory SNMPv1|
-|Template Module HOST-RESOURCES-MIB storage SNMPv1|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/module/host_resources_snmpv2/README.md b/templates/module/host_resources_snmpv2/README.md
deleted file mode 100644
index 3af5c75686b..00000000000
--- a/templates/module/host_resources_snmpv2/README.md
+++ /dev/null
@@ -1,182 +0,0 @@
-
-# Template Module HOST-RESOURCES-MIB storage SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$VFS.FS.FSNAME.MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p>|`.+`|
-|{$VFS.FS.FSNAME.NOT_MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p>|`^(/dev|/sys|/run|/proc|.+/shm$)`|
-|{$VFS.FS.FSTYPE.MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p>|`.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$`|
-|{$VFS.FS.FSTYPE.NOT_MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level.</p>|`CHANGE_IF_NEEDED`|
-|{$VFS.FS.PUSED.MAX.CRIT}|<p>-</p>|`90`|
-|{$VFS.FS.PUSED.MAX.WARN}|<p>-</p>|`80`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Storage discovery|<p>HOST-RESOURCES-MIB::hrStorage discovery with storage filter.</p>|SNMP|vfs.fs.discovery[snmp]<p>**Filter**:</p>AND <p>- A: {#FSTYPE} MATCHES_REGEX `{$VFS.FS.FSTYPE.MATCHES}`</p><p>- B: {#FSTYPE} NOT_MATCHES_REGEX `{$VFS.FS.FSTYPE.NOT_MATCHES}`</p><p>- C: {#FSNAME} MATCHES_REGEX `{$VFS.FS.FSNAME.MATCHES}`</p><p>- D: {#FSNAME} NOT_MATCHES_REGEX `{$VFS.FS.FSNAME.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Storage|{#FSNAME}: Used space|<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p>|SNMP|vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Storage|{#FSNAME}: Total space|<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in units of hrStorageAllocationUnits.</p><p>This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.</p><p>For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified.</p>|SNMP|vfs.fs.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Storage|{#FSNAME}: Space utilization|<p>Space utilization in % for {#FSNAME}</p>|CALCULATED|vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}]<p>**Expression**:</p>`(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100`|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)|<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 5G.</p><p> - The disk will be full in less than 24 hours.</p>|`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)`|AVERAGE|<p>Manual close: YES</p>|
-|{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)|<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 10G.</p><p> - The disk will be full in less than 24 hours.</p>|`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<10G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module HOST-RESOURCES-MIB memory SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$MEMORY.NAME.MATCHES}|<p>This macro is used in memory discovery. Can be overridden on the host or linked template level.</p>|`.*`|
-|{$MEMORY.NAME.NOT_MATCHES}|<p>This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.</p>|`CHANGE_IF_NEEDED`|
-|{$MEMORY.TYPE.MATCHES}|<p>This macro is used in memory discovery. Can be overridden on the host or linked template level.</p>|`.*(\.2|hrStorageRam)$`|
-|{$MEMORY.TYPE.NOT_MATCHES}|<p>This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.</p>|`CHANGE_IF_NEEDED`|
-|{$MEMORY.UTIL.MAX}|<p>The warning threshold of the "Physical memory: Memory utilization" item.</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Memory discovery|<p>HOST-RESOURCES-MIB::hrStorage discovery with memory filter</p>|SNMP|vm.memory.discovery<p>**Filter**:</p>AND <p>- A: {#MEMTYPE} MATCHES_REGEX `{$MEMORY.TYPE.MATCHES}`</p><p>- B: {#MEMTYPE} NOT_MATCHES_REGEX `{$MEMORY.TYPE.NOT_MATCHES}`</p><p>- C: {#MEMNAME} MATCHES_REGEX `{$MEMORY.NAME.MATCHES}`</p><p>- D: {#MEMNAME} NOT_MATCHES_REGEX `{$MEMORY.NAME.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Memory|{#MEMNAME}: Used memory|<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p>|SNMP|vm.memory.used[hrStorageUsed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Memory|{#MEMNAME}: Total memory|<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in units of hrStorageAllocationUnits.</p><p>This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.</p><p>For example, the amount of main memory allocated to a buffer pool might be modified or the amount of disk space allocated to virtual memory might be modified.</p>|SNMP|vm.memory.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Memory|{#MEMNAME}: Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}]<p>**Expression**:</p>`last("vm.memory.used[hrStorageUsed.{#SNMPINDEX}]")/last("vm.memory.total[hrStorageSize.{#SNMPINDEX}]")*100`|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#MEMNAME}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module HOST-RESOURCES-MIB CPU SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: HOST-RESOURCES-MIB</p><p>The average, over the last minute, of the percentage of time that processors was not idle.</p><p>Implementations may approximate this one minute smoothing period if necessary.</p>|SNMP|system.cpu.util<p>**Preprocessing**:</p><p>- JSONPATH: `$..['{#CPU.UTIL}'].avg()`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module HOST-RESOURCES-MIB SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-
-## Template links
-
-|Name|
-|----|
-|Template Module HOST-RESOURCES-MIB CPU SNMPv2|
-|Template Module HOST-RESOURCES-MIB memory SNMPv2|
-|Template Module HOST-RESOURCES-MIB storage SNMPv2|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/module/host_resources_snmpv2/template_module_host_resources_snmpv2.xml b/templates/module/host_resources_snmpv2/template_module_host_resources_snmpv2.xml
deleted file mode 100644
index 6e1f26c1017..00000000000
--- a/templates/module/host_resources_snmpv2/template_module_host_resources_snmpv2.xml
+++ /dev/null
@@ -1,570 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <templates>
- <template>
- <template>Template Module HOST-RESOURCES-MIB CPU SNMPv2</template>
- <name>Template Module HOST-RESOURCES-MIB CPU SNMPv2</name>
- <description>Requires Zabbix server 4.0.14, 4.2.8, 4.4.0 or newer (JSONPath function avg() used with types autoconversion).&#13;
-&#13;
-MIBs used:&#13;
-HOST-RESOURCES-MIB&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <applications>
- <application>
- <name>CPU</name>
- </application>
- </applications>
- <items>
- <item>
- <name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#CPU.UTIL},1.3.6.1.2.1.25.3.3.1.2]</snmp_oid>
- <key>system.cpu.util</key>
- <history>7d</history>
- <value_type>FLOAT</value_type>
- <units>%</units>
- <description>MIB: HOST-RESOURCES-MIB&#13;
-The average, over the last minute, of the percentage of time that processors was not idle.&#13;
-Implementations may approximate this one minute smoothing period if necessary.</description>
- <applications>
- <application>
- <name>CPU</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>JSONPATH</type>
- <params>$..['{#CPU.UTIL}'].avg()</params>
- </step>
- </preprocessing>
- <triggers>
- <trigger>
- <expression>{min(5m)}&gt;{$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>
- </trigger>
- </triggers>
- </item>
- </items>
- <macros>
- <macro>
- <macro>{$CPU.UTIL.CRIT}</macro>
- <value>90</value>
- </macro>
- </macros>
- </template>
- <template>
- <template>Template Module HOST-RESOURCES-MIB memory SNMPv2</template>
- <name>Template Module HOST-RESOURCES-MIB memory SNMPv2</name>
- <description>MIBs used:&#13;
-HOST-RESOURCES-MIB&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <applications>
- <application>
- <name>Memory</name>
- </application>
- </applications>
- <discovery_rules>
- <discovery_rule>
- <name>Memory discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#MEMNAME},1.3.6.1.2.1.25.2.3.1.3,{#MEMTYPE},1.3.6.1.2.1.25.2.3.1.2,{#ALLOC_UNITS},1.3.6.1.2.1.25.2.3.1.4]</snmp_oid>
- <key>vm.memory.discovery</key>
- <delay>1h</delay>
- <filter>
- <evaltype>AND</evaltype>
- <conditions>
- <condition>
- <macro>{#MEMTYPE}</macro>
- <value>{$MEMORY.TYPE.MATCHES}</value>
- <formulaid>A</formulaid>
- </condition>
- <condition>
- <macro>{#MEMTYPE}</macro>
- <value>{$MEMORY.TYPE.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>B</formulaid>
- </condition>
- <condition>
- <macro>{#MEMNAME}</macro>
- <value>{$MEMORY.NAME.MATCHES}</value>
- <formulaid>C</formulaid>
- </condition>
- <condition>
- <macro>{#MEMNAME}</macro>
- <value>{$MEMORY.NAME.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>D</formulaid>
- </condition>
- </conditions>
- </filter>
- <description>HOST-RESOURCES-MIB::hrStorage discovery with memory filter</description>
- <item_prototypes>
- <item_prototype>
- <name>{#MEMNAME}: Total memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.25.2.3.1.5.{#SNMPINDEX}</snmp_oid>
- <key>vm.memory.total[hrStorageSize.{#SNMPINDEX}]</key>
- <history>7d</history>
- <units>B</units>
- <description>MIB: HOST-RESOURCES-MIB&#13;
-The size of the storage represented by this entry, in units of hrStorageAllocationUnits.&#13;
-This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.&#13;
-For example, the amount of main memory allocated to a buffer pool might be modified or the amount of disk space allocated to virtual memory might be modified.</description>
- <applications>
- <application>
- <name>Memory</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>MULTIPLIER</type>
- <params>{#ALLOC_UNITS}</params>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>{#MEMNAME}: Used memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.25.2.3.1.6.{#SNMPINDEX}</snmp_oid>
- <key>vm.memory.used[hrStorageUsed.{#SNMPINDEX}]</key>
- <history>7d</history>
- <units>B</units>
- <description>MIB: HOST-RESOURCES-MIB&#13;
-The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</description>
- <applications>
- <application>
- <name>Memory</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>MULTIPLIER</type>
- <params>{#ALLOC_UNITS}</params>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>{#MEMNAME}: Memory utilization</name>
- <type>CALCULATED</type>
- <key>vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}]</key>
- <history>7d</history>
- <value_type>FLOAT</value_type>
- <units>%</units>
- <params>last("vm.memory.used[hrStorageUsed.{#SNMPINDEX}]")/last("vm.memory.total[hrStorageSize.{#SNMPINDEX}]")*100</params>
- <description>Memory utilization in %</description>
- <applications>
- <application>
- <name>Memory</name>
- </application>
- </applications>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{min(5m)}&gt;{$MEMORY.UTIL.MAX}</expression>
- <name>{#MEMNAME}: High memory utilization ( &gt;{$MEMORY.UTIL.MAX}% for 5m)</name>
- <priority>AVERAGE</priority>
- <description>The system is running out of free memory.</description>
- </trigger_prototype>
- </trigger_prototypes>
- </item_prototype>
- </item_prototypes>
- <graph_prototypes>
- <graph_prototype>
- <name>{#MEMNAME}: 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 HOST-RESOURCES-MIB memory SNMPv2</host>
- <key>vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- </graph_items>
- </graph_prototype>
- </graph_prototypes>
- </discovery_rule>
- </discovery_rules>
- <macros>
- <macro>
- <macro>{$MEMORY.NAME.MATCHES}</macro>
- <value>.*</value>
- <description>This macro is used in memory discovery. Can be overridden on the host or linked template level.</description>
- </macro>
- <macro>
- <macro>{$MEMORY.NAME.NOT_MATCHES}</macro>
- <value>CHANGE_IF_NEEDED</value>
- <description>This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.</description>
- </macro>
- <macro>
- <macro>{$MEMORY.TYPE.MATCHES}</macro>
- <value>.*(\.2|hrStorageRam)$</value>
- <description>This macro is used in memory discovery. Can be overridden on the host or linked template level.</description>
- </macro>
- <macro>
- <macro>{$MEMORY.TYPE.NOT_MATCHES}</macro>
- <value>CHANGE_IF_NEEDED</value>
- <description>This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.</description>
- </macro>
- <macro>
- <macro>{$MEMORY.UTIL.MAX}</macro>
- <value>90</value>
- <description>The warning threshold of the "Physical memory: Memory utilization" item.</description>
- </macro>
- </macros>
- </template>
- <template>
- <template>Template Module HOST-RESOURCES-MIB SNMPv2</template>
- <name>Template Module HOST-RESOURCES-MIB SNMPv2</name>
- <description>HOST-RESOURCES-MIB: CPU, memory and storage(vfs.fs.file) linked together.&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <templates>
- <template>
- <name>Template Module HOST-RESOURCES-MIB CPU SNMPv2</name>
- </template>
- <template>
- <name>Template Module HOST-RESOURCES-MIB memory SNMPv2</name>
- </template>
- <template>
- <name>Template Module HOST-RESOURCES-MIB storage SNMPv2</name>
- </template>
- </templates>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <screens>
- <screen>
- <name>System performance</name>
- <hsize>2</hsize>
- <vsize>3</vsize>
- <screen_items>
- <screen_item>
- <resourcetype>0</resourcetype>
- <style>0</style>
- <resource>
- <name>CPU utilization</name>
- <host>Template Module HOST-RESOURCES-MIB SNMPv2</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>20</resourcetype>
- <style>0</style>
- <resource>
- <name>{#MEMNAME}: Memory utilization</name>
- <host>Template Module HOST-RESOURCES-MIB SNMPv2</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>20</resourcetype>
- <style>0</style>
- <resource>
- <name>{#FSNAME}: Disk space usage</name>
- <host>Template Module HOST-RESOURCES-MIB SNMPv2</host>
- </resource>
- <width>500</width>
- <height>100</height>
- <x>0</x>
- <y>2</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 Module HOST-RESOURCES-MIB storage SNMPv2</template>
- <name>Template Module HOST-RESOURCES-MIB storage SNMPv2</name>
- <description>MIBs used:&#13;
-HOST-RESOURCES-MIB&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <applications>
- <application>
- <name>Storage</name>
- </application>
- </applications>
- <discovery_rules>
- <discovery_rule>
- <name>Storage discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#FSNAME},1.3.6.1.2.1.25.2.3.1.3,{#FSTYPE},1.3.6.1.2.1.25.2.3.1.2,{#ALLOC_UNITS},1.3.6.1.2.1.25.2.3.1.4]</snmp_oid>
- <key>vfs.fs.discovery[snmp]</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>HOST-RESOURCES-MIB::hrStorage discovery with storage filter.</description>
- <item_prototypes>
- <item_prototype>
- <name>{#FSNAME}: Space utilization</name>
- <type>CALCULATED</type>
- <key>vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}]</key>
- <history>7d</history>
- <value_type>FLOAT</value_type>
- <units>%</units>
- <params>(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100</params>
- <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>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.25.2.3.1.5.{#SNMPINDEX}</snmp_oid>
- <key>vfs.fs.total[hrStorageSize.{#SNMPINDEX}]</key>
- <history>7d</history>
- <units>B</units>
- <description>MIB: HOST-RESOURCES-MIB&#13;
-The size of the storage represented by this entry, in units of hrStorageAllocationUnits.&#13;
-This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.&#13;
-For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified.</description>
- <application_prototypes>
- <application_prototype>
- <name>Filesystem {#FSNAME}</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>MULTIPLIER</type>
- <params>{#ALLOC_UNITS}</params>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>{#FSNAME}: Used space</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.25.2.3.1.6.{#SNMPINDEX}</snmp_oid>
- <key>vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]</key>
- <history>7d</history>
- <units>B</units>
- <description>MIB: HOST-RESOURCES-MIB&#13;
-The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</description>
- <application_prototypes>
- <application_prototype>
- <name>Filesystem {#FSNAME}</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>MULTIPLIER</type>
- <params>{#ALLOC_UNITS}</params>
- </step>
- </preprocessing>
- </item_prototype>
- </item_prototypes>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
-(({Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
- <name>{#FSNAME}: Disk space is critically low (used &gt; {$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}"}.&#13;
- Second condition should be one of the following:&#13;
- - The disk free space is less than 5G.&#13;
- - The disk will be full in less than 24 hours.</description>
- <manual_close>YES</manual_close>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and&#13;
-(({Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;10G or {Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
- <name>{#FSNAME}: Disk space is low (used &gt; {$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}"}.&#13;
- Second condition should be one of the following:&#13;
- - The disk free space is less than 10G.&#13;
- - 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 &gt; {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</name>
- <expression>{Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
-(({Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module HOST-RESOURCES-MIB storage SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;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 HOST-RESOURCES-MIB storage SNMPv2</host>
- <key>vfs.fs.total[hrStorageSize.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>1</sortorder>
- <color>C80000</color>
- <calc_fnc>LAST</calc_fnc>
- <item>
- <host>Template Module HOST-RESOURCES-MIB storage SNMPv2</host>
- <key>vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- </graph_items>
- </graph_prototype>
- </graph_prototypes>
- </discovery_rule>
- </discovery_rules>
- <macros>
- <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>.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$</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>CHANGE_IF_NEEDED</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.PUSED.MAX.CRIT}</macro>
- <value>90</value>
- </macro>
- <macro>
- <macro>{$VFS.FS.PUSED.MAX.WARN}</macro>
- <value>80</value>
- </macro>
- </macros>
- </template>
- </templates>
- <graphs>
- <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 HOST-RESOURCES-MIB CPU SNMPv2</host>
- <key>system.cpu.util</key>
- </item>
- </graph_item>
- </graph_items>
- </graph>
- </graphs>
-</zabbix_export>
diff --git a/templates/module/interfaces_simple_snmp/README.md b/templates/module/interfaces_simple_snmp/README.md
new file mode 100644
index 00000000000..4a1f507d38b
--- /dev/null
+++ b/templates/module/interfaces_simple_snmp/README.md
@@ -0,0 +1,74 @@
+
+# Template Module Interfaces Simple SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$IF.ERRORS.WARN} |<p>-</p> |`2` |
+|{$IF.UTIL.MAX} |<p>-</p> |`95` |
+|{$IFCONTROL} |<p>-</p> |`1` |
+|{$NET.IF.IFADMINSTATUS.MATCHES} |<p>Ignore notPresent(6)</p> |`^.*` |
+|{$NET.IF.IFADMINSTATUS.NOT_MATCHES} |<p>Ignore down(2) administrative status</p> |`^2$` |
+|{$NET.IF.IFDESCR.MATCHES} |<p>-</p> |`.*` |
+|{$NET.IF.IFDESCR.NOT_MATCHES} |<p>-</p> |`CHANGE_IF_NEEDED` |
+|{$NET.IF.IFNAME.MATCHES} |<p>-</p> |`^.*$` |
+|{$NET.IF.IFNAME.NOT_MATCHES} |<p>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</p> |`(^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})` |
+|{$NET.IF.IFOPERSTATUS.MATCHES} |<p>-</p> |`^.*$` |
+|{$NET.IF.IFOPERSTATUS.NOT_MATCHES} |<p>Ignore notPresent(6)</p> |`^6$` |
+|{$NET.IF.IFTYPE.MATCHES} |<p>-</p> |`.*` |
+|{$NET.IF.IFTYPE.NOT_MATCHES} |<p>-</p> |`CHANGE_IF_NEEDED` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Network interfaces discovery |<p>Discovering interfaces from IF-MIB.</p> |SNMP |net.if.discovery<p>**Filter**:</p>AND <p>- A: {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- B: {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- C: {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- D: {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- E: {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- F: {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- G: {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- H: {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- K: {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- L: {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Network_interfaces |Interface {#IFDESCR}: Operational status |<p>MIB: IF-MIB</p><p>The current operational state of the interface.</p><p>- The testing(3) state indicates that no operational packet scan be passed</p><p>- If ifAdminStatus is down(2) then ifOperStatus should be down(2)</p><p>- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic</p><p>- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)</p><p>- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state</p><p>- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</p> |SNMP |net.if.status[ifOperStatus.{#SNMPINDEX}] |
+|Network_interfaces |Interface {#IFDESCR}: Bits received |<p>MIB: IF-MIB</p><p>The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occurat re-initialization of the management system, and atother times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in[ifInOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p> |
+|Network_interfaces |Interface {#IFDESCR}: Bits sent |<p>MIB: IF-MIB</p><p>The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occurat re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out[ifOutOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p> |
+|Network_interfaces |Interface {#IFDESCR}: Inbound packets with errors |<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in.errors[ifInErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFDESCR}: Outbound packets with errors |<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out.errors[ifOutErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFDESCR}: Outbound packets discarded |<p>MIB: IF-MIB</p><p>The number of outbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFDESCR}: Inbound packets discarded |<p>MIB: IF-MIB</p><p>The number of inbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in.discards[ifInDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFDESCR}: Interface type |<p>MIB: IF-MIB</p><p>The type of interface.</p><p>Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),</p><p>through updating the syntax of the IANAifType textual convention.</p> |SNMP |net.if.type[ifType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Network_interfaces |Interface {#IFDESCR}: Speed |<p>MIB: IF-MIB</p><p>An estimate of the interface's current bandwidth in bits per second.</p><p>For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made,</p><p>this object should contain the nominal bandwidth.</p><p>If the bandwidth of the interface is greater than the maximum value reportable by this object then</p><p>this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interace's speed.</p><p>For a sub-layer which has no concept of bandwidth, this object should be zero.</p> |SNMP |net.if.speed[ifSpeed.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Interface {#IFDESCR}: Link down |<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>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.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p> |`{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0` |AVERAGE |<p>Manual close: YES</p> |
+|Interface {#IFDESCR}: High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% ) |<p>The network interface utilization is close to its estimated maximum bandwidth.</p> |`({TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} or {Template Module Interfaces Simple SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}) and {Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}>0`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} and {Template Module Interfaces Simple SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p> |
+|Interface {#IFDESCR}: High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) |<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p> |`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {Template Module Interfaces Simple SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {Template Module Interfaces Simple SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p> |
+|Interface {#IFDESCR}: Ethernet has changed to lower speed than it was before |<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p> |`{TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}<0 and {TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}>0 and ( {Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or {Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or {Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or {Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or {Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or {Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117 ) and ({Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2)`<p>Recovery expression:</p>`({TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}>0 and {TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].prev()}>0) or ({Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)` |INFO |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: 32bit counters are used in this template (since there is no ifXtable available). If busy interfaces return incorrect bits sent/received - set update interval to 1m or less.
+
diff --git a/templates/module/interfaces_simple_snmpv1/template_module_interfaces_simple_snmpv1.xml b/templates/module/interfaces_simple_snmp/template_module_interfaces_simple_snmp.xml
index 780e7d1310c..702f8f1c864 100644
--- a/templates/module/interfaces_simple_snmpv1/template_module_interfaces_simple_snmpv1.xml
+++ b/templates/module/interfaces_simple_snmp/template_module_interfaces_simple_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:27:50Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Module Interfaces Simple SNMPv1</template>
- <name>Template Module Interfaces Simple SNMPv1</name>
+ <template>Template Module Interfaces Simple SNMP</template>
+ <name>Template Module Interfaces Simple SNMP</name>
<description>Template Module Interfaces Simple (no ifXTable). This is the exact copy of Template Module Interfaces template with the exception that metrics from ifXTable are replaced with ifTable counters where possible. Use this template with devices where IF-MIB::ifXtable is not available. If supported by the host - use Template Module Interfaces template instead.&#13;
&#13;
MIBs used:&#13;
@@ -20,7 +20,7 @@ Known Issues:&#13;
&#13;
Description: 32bit counters are used in this template (since there is no ifXtable available). If busy interfaces return incorrect bits sent/received - set update interval to 1m or less.&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -34,8 +34,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Network interfaces discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFNAME},1.3.6.1.2.1.2.2.1.2,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]</snmp_oid>
<key>net.if.discovery</key>
<delay>1h</delay>
@@ -103,8 +102,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>Interface {#IFDESCR}: Inbound packets discarded</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}</snmp_oid>
<key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -129,8 +127,7 @@ and at other times as indicated by the value of ifCounterDiscontinuityTime.</des
</item_prototype>
<item_prototype>
<name>Interface {#IFDESCR}: Inbound packets with errors</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}</snmp_oid>
<key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -151,8 +148,7 @@ For packet-oriented interfaces, the number of inbound packets that contained err
</item_prototype>
<item_prototype>
<name>Interface {#IFDESCR}: Bits received</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}</snmp_oid>
<key>net.if.in[ifInOctets.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -178,8 +174,7 @@ The total number of octets received on the interface,including framing character
</item_prototype>
<item_prototype>
<name>Interface {#IFDESCR}: Outbound packets discarded</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}</snmp_oid>
<key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -204,8 +199,7 @@ and at other times as indicated by the value of ifCounterDiscontinuityTime.</des
</item_prototype>
<item_prototype>
<name>Interface {#IFDESCR}: Outbound packets with errors</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}</snmp_oid>
<key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -226,8 +220,7 @@ For packet-oriented interfaces, the number of outbound packets that contained er
</item_prototype>
<item_prototype>
<name>Interface {#IFDESCR}: Bits sent</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.16.{#SNMPINDEX}</snmp_oid>
<key>net.if.out[ifOutOctets.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -253,8 +246,7 @@ The total number of octets transmitted out of the interface, including framing c
</item_prototype>
<item_prototype>
<name>Interface {#IFDESCR}: Speed</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.5.{#SNMPINDEX}</snmp_oid>
<key>net.if.speed[ifSpeed.{#SNMPINDEX}]</key>
<delay>5m</delay>
@@ -276,8 +268,7 @@ For a sub-layer which has no concept of bandwidth, this object should be zero.</
</item_prototype>
<item_prototype>
<name>Interface {#IFDESCR}: Operational status</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}</snmp_oid>
<key>net.if.status[ifOperStatus.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -302,7 +293,7 @@ The current operational state of the interface.&#13;
<trigger_prototype>
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{last()}&lt;&gt;2</recovery_expression>
+ <recovery_expression>{last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
<name>Interface {#IFDESCR}: Link down</name>
<opdata>Current state: {ITEM.LASTVALUE1}</opdata>
<priority>AVERAGE</priority>
@@ -318,8 +309,7 @@ WARNING: if closed manually - won't fire again on next poll, because of .diff.</
</item_prototype>
<item_prototype>
<name>Interface {#IFDESCR}: Interface type</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>net.if.type[ifType.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -347,20 +337,20 @@ through updating the syntax of the IANAifType textual convention.</description>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}&lt;0 and {Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}&gt;0&#13;
+ <expression>{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}&lt;0 and {Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}&gt;0&#13;
and (&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=117&#13;
+{Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or&#13;
+{Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or&#13;
+{Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or&#13;
+{Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or&#13;
+{Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or&#13;
+{Template Module Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117&#13;
)&#13;
and&#13;
-({Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2)</expression>
+({Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2)</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>({Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}&gt;0 and {Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].prev()}&gt;0) or&#13;
-({Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)</recovery_expression>
+ <recovery_expression>({Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}&gt;0 and {Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].prev()}&gt;0) or&#13;
+({Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)</recovery_expression>
<name>Interface {#IFDESCR}: Ethernet has changed to lower speed than it was before</name>
<opdata>Current reported speed: {ITEM.LASTVALUE1}</opdata>
<priority>INFO</priority>
@@ -369,18 +359,18 @@ and&#13;
<dependencies>
<dependency>
<name>Interface {#IFDESCR}: Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
- <expression>({Template Module Interfaces Simple SNMPv1:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} or&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}) and&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}&gt;0</expression>
+ <expression>({Template Module Interfaces Simple SNMP:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} or&#13;
+{Template Module Interfaces Simple SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}) and&#13;
+{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}&gt;0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces Simple SNMPv1:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} and&#13;
-{Template Module Interfaces Simple SNMPv1:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}</recovery_expression>
+ <recovery_expression>{Template Module Interfaces Simple SNMP:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} and&#13;
+{Template Module Interfaces Simple SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}</recovery_expression>
<name>Interface {#IFDESCR}: High bandwidth usage ( &gt; {$IF.UTIL.MAX:"{#IFNAME}"}% )</name>
<opdata>In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
@@ -389,17 +379,17 @@ and&#13;
<dependencies>
<dependency>
<name>Interface {#IFDESCR}: Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Module Interfaces Simple SNMPv1:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}&#13;
-or {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
+ <expression>{Template Module Interfaces Simple SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}&#13;
+or {Template Module Interfaces Simple SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces Simple SNMPv1:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8&#13;
-and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
+ <recovery_expression>{Template Module Interfaces Simple SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8&#13;
+and {Template Module Interfaces Simple SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
<name>Interface {#IFDESCR}: High error rate ( &gt; {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)</name>
<opdata>errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
@@ -408,8 +398,8 @@ and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SN
<dependencies>
<dependency>
<name>Interface {#IFDESCR}: Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -422,7 +412,7 @@ and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SN
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Interfaces Simple SNMPv1</host>
+ <host>Template Module Interfaces Simple SNMP</host>
<key>net.if.in[ifInOctets.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -431,7 +421,7 @@ and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SN
<drawtype>BOLD_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Module Interfaces Simple SNMPv1</host>
+ <host>Template Module Interfaces Simple SNMP</host>
<key>net.if.out[ifOutOctets.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -440,7 +430,7 @@ and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SN
<color>F63100</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces Simple SNMPv1</host>
+ <host>Template Module Interfaces Simple SNMP</host>
<key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -449,7 +439,7 @@ and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SN
<color>A54F10</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces Simple SNMPv1</host>
+ <host>Template Module Interfaces Simple SNMP</host>
<key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -458,7 +448,7 @@ and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SN
<color>FC6EA3</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces Simple SNMPv1</host>
+ <host>Template Module Interfaces Simple SNMP</host>
<key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -467,7 +457,7 @@ and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SN
<color>6C59DC</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces Simple SNMPv1</host>
+ <host>Template Module Interfaces Simple SNMP</host>
<key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -545,9 +535,9 @@ and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SN
<style>0</style>
<resource>
<name>Interface {#IFDESCR}: Network traffic</name>
- <host>Template Module Interfaces Simple SNMPv1</host>
+ <host>Template Module Interfaces Simple SNMP</host>
</resource>
- <width>750</width>
+ <width>500</width>
<height>100</height>
<x>0</x>
<y>0</y>
diff --git a/templates/module/interfaces_simple_snmpv1/README.md b/templates/module/interfaces_simple_snmpv1/README.md
deleted file mode 100644
index 0998f30d7ba..00000000000
--- a/templates/module/interfaces_simple_snmpv1/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-
-# Template Module Interfaces Simple SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$IF.ERRORS.WARN}|<p>-</p>|`2`|
-|{$IF.UTIL.MAX}|<p>-</p>|`95`|
-|{$IFCONTROL}|<p>-</p>|`1`|
-|{$NET.IF.IFADMINSTATUS.MATCHES}|<p>Ignore notPresent(6)</p>|`^.*`|
-|{$NET.IF.IFADMINSTATUS.NOT_MATCHES}|<p>Ignore down(2) administrative status</p>|`^2$`|
-|{$NET.IF.IFDESCR.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFDESCR.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-|{$NET.IF.IFNAME.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFNAME.NOT_MATCHES}|<p>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</p>|`(^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})`|
-|{$NET.IF.IFOPERSTATUS.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFOPERSTATUS.NOT_MATCHES}|<p>Ignore notPresent(6)</p>|`^6$`|
-|{$NET.IF.IFTYPE.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFTYPE.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Network interfaces discovery|<p>Discovering interfaces from IF-MIB.</p>|SNMP|net.if.discovery<p>**Filter**:</p>AND <p>- A: {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- B: {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- C: {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- D: {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- E: {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- F: {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- G: {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- H: {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- K: {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- L: {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Network_interfaces|Interface {#IFDESCR}: Operational status|<p>MIB: IF-MIB</p><p>The current operational state of the interface.</p><p>- The testing(3) state indicates that no operational packet scan be passed</p><p>- If ifAdminStatus is down(2) then ifOperStatus should be down(2)</p><p>- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic</p><p>- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)</p><p>- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state</p><p>- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</p>|SNMP|net.if.status[ifOperStatus.{#SNMPINDEX}]|
-|Network_interfaces|Interface {#IFDESCR}: Bits received|<p>MIB: IF-MIB</p><p>The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occurat re-initialization of the management system, and atother times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in[ifInOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFDESCR}: Bits sent|<p>MIB: IF-MIB</p><p>The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occurat re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out[ifOutOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFDESCR}: Inbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.errors[ifInErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFDESCR}: Outbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.errors[ifOutErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFDESCR}: Outbound packets discarded|<p>MIB: IF-MIB</p><p>The number of outbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFDESCR}: Inbound packets discarded|<p>MIB: IF-MIB</p><p>The number of inbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.discards[ifInDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFDESCR}: Interface type|<p>MIB: IF-MIB</p><p>The type of interface.</p><p>Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),</p><p>through updating the syntax of the IANAifType textual convention.</p>|SNMP|net.if.type[ifType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Network_interfaces|Interface {#IFDESCR}: Speed|<p>MIB: IF-MIB</p><p>An estimate of the interface's current bandwidth in bits per second.</p><p>For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made,</p><p>this object should contain the nominal bandwidth.</p><p>If the bandwidth of the interface is greater than the maximum value reportable by this object then</p><p>this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interace's speed.</p><p>For a sub-layer which has no concept of bandwidth, this object should be zero.</p>|SNMP|net.if.speed[ifSpeed.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Interface {#IFDESCR}: Link down|<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>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.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p>|`{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2`|AVERAGE|<p>Manual close: YES</p>|
-|Interface {#IFDESCR}: High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )|<p>The network interface utilization is close to its estimated maximum bandwidth.</p>|`({TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} or {Template Module Interfaces Simple SNMPv1:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}) and {Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}>0`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} and {Template Module Interfaces Simple SNMPv1:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMPv1:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p>|
-|Interface {#IFDESCR}: High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)|<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p>|`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {Template Module Interfaces Simple SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p>|
-|Interface {#IFDESCR}: Ethernet has changed to lower speed than it was before|<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p>|`{TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}<0 and {TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}>0 and ( {Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or {Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or {Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or {Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or {Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or {Template Module Interfaces Simple SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=117 ) and ({Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2)`<p>Recovery expression:</p>`({TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}>0 and {TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].prev()}>0) or ({Template Module Interfaces Simple SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)`|INFO|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: 32bit counters are used in this template (since there is no ifXtable available). If busy interfaces return incorrect bits sent/received - set update interval to 1m or less.
-
diff --git a/templates/module/interfaces_simple_snmpv2/README.md b/templates/module/interfaces_simple_snmpv2/README.md
deleted file mode 100644
index c5d338b1a32..00000000000
--- a/templates/module/interfaces_simple_snmpv2/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-
-# Template Module Interfaces Simple SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$IF.ERRORS.WARN}|<p>-</p>|`2`|
-|{$IF.UTIL.MAX}|<p>-</p>|`95`|
-|{$IFCONTROL}|<p>-</p>|`1`|
-|{$NET.IF.IFADMINSTATUS.MATCHES}|<p>Ignore notPresent(6)</p>|`^.*`|
-|{$NET.IF.IFADMINSTATUS.NOT_MATCHES}|<p>Ignore down(2) administrative status</p>|`^2$`|
-|{$NET.IF.IFDESCR.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFDESCR.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-|{$NET.IF.IFNAME.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFNAME.NOT_MATCHES}|<p>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</p>|`(^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})`|
-|{$NET.IF.IFOPERSTATUS.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFOPERSTATUS.NOT_MATCHES}|<p>Ignore notPresent(6)</p>|`^6$`|
-|{$NET.IF.IFTYPE.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFTYPE.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Network interfaces discovery|<p>Discovering interfaces from IF-MIB.</p>|SNMP|net.if.discovery<p>**Filter**:</p>AND <p>- A: {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- B: {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- C: {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- D: {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- E: {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- F: {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- G: {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- H: {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- K: {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- L: {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Network_interfaces|Interface {#IFDESCR}: Operational status|<p>MIB: IF-MIB</p><p>The current operational state of the interface.</p><p>- The testing(3) state indicates that no operational packet scan be passed</p><p>- If ifAdminStatus is down(2) then ifOperStatus should be down(2)</p><p>- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic</p><p>- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)</p><p>- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state</p><p>- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</p>|SNMP|net.if.status[ifOperStatus.{#SNMPINDEX}]|
-|Network_interfaces|Interface {#IFDESCR}: Bits received|<p>MIB: IF-MIB</p><p>The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occurat re-initialization of the management system, and atother times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in[ifInOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFDESCR}: Bits sent|<p>MIB: IF-MIB</p><p>The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occurat re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out[ifOutOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFDESCR}: Inbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.errors[ifInErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFDESCR}: Outbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.errors[ifOutErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFDESCR}: Outbound packets discarded|<p>MIB: IF-MIB</p><p>The number of outbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFDESCR}: Inbound packets discarded|<p>MIB: IF-MIB</p><p>The number of inbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.discards[ifInDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFDESCR}: Interface type|<p>MIB: IF-MIB</p><p>The type of interface.</p><p>Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),</p><p>through updating the syntax of the IANAifType textual convention.</p>|SNMP|net.if.type[ifType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Network_interfaces|Interface {#IFDESCR}: Speed|<p>MIB: IF-MIB</p><p>An estimate of the interface's current bandwidth in bits per second.</p><p>For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made,</p><p>this object should contain the nominal bandwidth.</p><p>If the bandwidth of the interface is greater than the maximum value reportable by this object then</p><p>this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interace's speed.</p><p>For a sub-layer which has no concept of bandwidth, this object should be zero.</p>|SNMP|net.if.speed[ifSpeed.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Interface {#IFDESCR}: Link down|<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>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.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p>|`{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2`|AVERAGE|<p>Manual close: YES</p>|
-|Interface {#IFDESCR}: High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )|<p>The network interface utilization is close to its estimated maximum bandwidth.</p>|`({TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} or {Template Module Interfaces Simple SNMPv2:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}) and {Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}>0`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} and {Template Module Interfaces Simple SNMPv2:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p>|
-|Interface {#IFDESCR}: High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)|<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p>|`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {Template Module Interfaces Simple SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {Template Module Interfaces Simple SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p>|
-|Interface {#IFDESCR}: Ethernet has changed to lower speed than it was before|<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p>|`{TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}<0 and {TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}>0 and ( {Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or {Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or {Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or {Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or {Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or {Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=117 ) and ({Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2)`<p>Recovery expression:</p>`({TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}>0 and {TEMPLATE_NAME:net.if.speed[ifSpeed.{#SNMPINDEX}].prev()}>0) or ({Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)`|INFO|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFDESCR}: Link down</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: 32bit counters are used in this template (since there is no ifXtable available). If busy interfaces return incorrect bits sent/received - set update interval to 1m or less.
-
diff --git a/templates/module/interfaces_simple_snmpv2/template_module_interfaces_simple_snmpv2.xml b/templates/module/interfaces_simple_snmpv2/template_module_interfaces_simple_snmpv2.xml
deleted file mode 100644
index d76c3bb48f1..00000000000
--- a/templates/module/interfaces_simple_snmpv2/template_module_interfaces_simple_snmpv2.xml
+++ /dev/null
@@ -1,1754 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <templates>
- <template>
- <template>Template Module Interfaces Simple SNMPv2</template>
- <name>Template Module Interfaces Simple SNMPv2</name>
- <description>Template Module Interfaces Simple (no ifXTable). This is the exact copy of Template Module Interfaces template with the exception that metrics from ifXTable are replaced with ifTable counters where possible. Use this template with devices where IF-MIB::ifXtable is not available. If supported by the host - use Template Module Interfaces template instead.&#13;
-&#13;
-MIBs used:&#13;
-IF-MIB&#13;
-&#13;
-Known Issues:&#13;
-&#13;
- Description: 32bit counters are used in this template (since there is no ifXtable available). If busy interfaces return incorrect bits sent/received - set update interval to 1m or less.&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <applications>
- <application>
- <name>Network interfaces</name>
- </application>
- </applications>
- <discovery_rules>
- <discovery_rule>
- <name>Network interfaces discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFNAME},1.3.6.1.2.1.2.2.1.2,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]</snmp_oid>
- <key>net.if.discovery</key>
- <delay>1h</delay>
- <filter>
- <evaltype>AND</evaltype>
- <conditions>
- <condition>
- <macro>{#IFADMINSTATUS}</macro>
- <value>{$NET.IF.IFADMINSTATUS.MATCHES}</value>
- <formulaid>A</formulaid>
- </condition>
- <condition>
- <macro>{#IFADMINSTATUS}</macro>
- <value>{$NET.IF.IFADMINSTATUS.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>B</formulaid>
- </condition>
- <condition>
- <macro>{#IFOPERSTATUS}</macro>
- <value>{$NET.IF.IFOPERSTATUS.MATCHES}</value>
- <formulaid>C</formulaid>
- </condition>
- <condition>
- <macro>{#IFOPERSTATUS}</macro>
- <value>{$NET.IF.IFOPERSTATUS.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>D</formulaid>
- </condition>
- <condition>
- <macro>{#IFNAME}</macro>
- <value>{$NET.IF.IFNAME.MATCHES}</value>
- <formulaid>E</formulaid>
- </condition>
- <condition>
- <macro>{#IFNAME}</macro>
- <value>{$NET.IF.IFNAME.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>F</formulaid>
- </condition>
- <condition>
- <macro>{#IFDESCR}</macro>
- <value>{$NET.IF.IFDESCR.MATCHES}</value>
- <formulaid>G</formulaid>
- </condition>
- <condition>
- <macro>{#IFDESCR}</macro>
- <value>{$NET.IF.IFDESCR.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>H</formulaid>
- </condition>
- <condition>
- <macro>{#IFTYPE}</macro>
- <value>{$NET.IF.IFTYPE.MATCHES}</value>
- <formulaid>K</formulaid>
- </condition>
- <condition>
- <macro>{#IFTYPE}</macro>
- <value>{$NET.IF.IFTYPE.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>L</formulaid>
- </condition>
- </conditions>
- </filter>
- <description>Discovering interfaces from IF-MIB.</description>
- <item_prototypes>
- <item_prototype>
- <name>Interface {#IFDESCR}: Inbound packets discarded</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}</snmp_oid>
- <key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <description>MIB: IF-MIB&#13;
-The number of inbound packets which were chosen to be discarded&#13;
-even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.&#13;
-One possible reason for discarding such a packet could be to free up buffer space.&#13;
-Discontinuities in the value of this counter can occur at re-initialization of the management system,&#13;
-and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>CHANGE_PER_SECOND</type>
- <params/>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFDESCR}: Inbound packets with errors</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}</snmp_oid>
- <key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <description>MIB: IF-MIB&#13;
-For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>CHANGE_PER_SECOND</type>
- <params/>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFDESCR}: Bits received</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}</snmp_oid>
- <key>net.if.in[ifInOctets.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <units>bps</units>
- <description>MIB: IF-MIB&#13;
-The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occurat re-initialization of the management system, and atother times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</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 {#IFDESCR}: Outbound packets discarded</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}</snmp_oid>
- <key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <description>MIB: IF-MIB&#13;
-The number of outbound packets which were chosen to be discarded&#13;
-even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.&#13;
-One possible reason for discarding such a packet could be to free up buffer space.&#13;
-Discontinuities in the value of this counter can occur at re-initialization of the management system,&#13;
-and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>CHANGE_PER_SECOND</type>
- <params/>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFDESCR}: Outbound packets with errors</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}</snmp_oid>
- <key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <description>MIB: IF-MIB&#13;
-For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>CHANGE_PER_SECOND</type>
- <params/>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFDESCR}: Bits sent</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.16.{#SNMPINDEX}</snmp_oid>
- <key>net.if.out[ifOutOctets.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <units>bps</units>
- <description>MIB: IF-MIB&#13;
-The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occurat re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</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 {#IFDESCR}: Speed</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.5.{#SNMPINDEX}</snmp_oid>
- <key>net.if.speed[ifSpeed.{#SNMPINDEX}]</key>
- <delay>5m</delay>
- <history>7d</history>
- <trends>0d</trends>
- <units>bps</units>
- <description>MIB: IF-MIB&#13;
-An estimate of the interface's current bandwidth in bits per second.&#13;
-For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made,&#13;
-this object should contain the nominal bandwidth.&#13;
-If the bandwidth of the interface is greater than the maximum value reportable by this object then&#13;
-this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interace's speed.&#13;
-For a sub-layer which has no concept of bandwidth, this object should be zero.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</name>
- </application_prototype>
- </application_prototypes>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFDESCR}: Operational status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}</snmp_oid>
- <key>net.if.status[ifOperStatus.{#SNMPINDEX}]</key>
- <history>7d</history>
- <trends>0</trends>
- <description>MIB: IF-MIB&#13;
-The current operational state of the interface.&#13;
-- The testing(3) state indicates that no operational packet scan be passed&#13;
-- If ifAdminStatus is down(2) then ifOperStatus should be down(2)&#13;
-- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic&#13;
-- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)&#13;
-- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state&#13;
-- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</name>
- </application_prototype>
- </application_prototypes>
- <valuemap>
- <name>IF-MIB::ifOperStatus</name>
- </valuemap>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{last()}&lt;&gt;2</recovery_expression>
- <name>Interface {#IFDESCR}: Link down</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>AVERAGE</priority>
- <description>This trigger expression works as follows:&#13;
-1. Can be triggered if operations status is down.&#13;
-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.&#13;
-3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)&#13;
-&#13;
-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 {#IFDESCR}: Interface type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}</snmp_oid>
- <key>net.if.type[ifType.{#SNMPINDEX}]</key>
- <delay>1h</delay>
- <history>7d</history>
- <trends>0d</trends>
- <description>MIB: IF-MIB&#13;
-The type of interface.&#13;
-Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),&#13;
-through updating the syntax of the IANAifType textual convention.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFDESCR}</name>
- </application_prototype>
- </application_prototypes>
- <valuemap>
- <name>IF-MIB::ifType</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 Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}&lt;0 and {Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}&gt;0&#13;
-and (&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=117&#13;
-)&#13;
-and&#13;
-({Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2)</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>({Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}&gt;0 and {Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].prev()}&gt;0) or&#13;
-({Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)</recovery_expression>
- <name>Interface {#IFDESCR}: 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 {#IFDESCR}: Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- <trigger_prototype>
- <expression>({Template Module Interfaces Simple SNMPv2:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} or&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}) and&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}&gt;0</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces Simple SNMPv2:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} and&#13;
-{Template Module Interfaces Simple SNMPv2:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Simple SNMPv2:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}</recovery_expression>
- <name>Interface {#IFDESCR}: High bandwidth usage ( &gt; {$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 {#IFDESCR}: Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{Template Module Interfaces Simple SNMPv2:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}&#13;
-or {Template Module Interfaces Simple SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces Simple SNMPv2:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8&#13;
-and {Template Module Interfaces Simple SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
- <name>Interface {#IFDESCR}: High error rate ( &gt; {$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 {#IFDESCR}: Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Simple SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- </trigger_prototypes>
- <graph_prototypes>
- <graph_prototype>
- <name>Interface {#IFDESCR}: Network traffic</name>
- <graph_items>
- <graph_item>
- <drawtype>GRADIENT_LINE</drawtype>
- <color>1A7C11</color>
- <item>
- <host>Template Module Interfaces Simple SNMPv2</host>
- <key>net.if.in[ifInOctets.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>1</sortorder>
- <drawtype>BOLD_LINE</drawtype>
- <color>2774A4</color>
- <item>
- <host>Template Module Interfaces Simple SNMPv2</host>
- <key>net.if.out[ifOutOctets.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>2</sortorder>
- <color>F63100</color>
- <yaxisside>RIGHT</yaxisside>
- <item>
- <host>Template Module Interfaces Simple SNMPv2</host>
- <key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>3</sortorder>
- <color>A54F10</color>
- <yaxisside>RIGHT</yaxisside>
- <item>
- <host>Template Module Interfaces Simple SNMPv2</host>
- <key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>4</sortorder>
- <color>FC6EA3</color>
- <yaxisside>RIGHT</yaxisside>
- <item>
- <host>Template Module Interfaces Simple SNMPv2</host>
- <key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>5</sortorder>
- <color>6C59DC</color>
- <yaxisside>RIGHT</yaxisside>
- <item>
- <host>Template Module Interfaces Simple SNMPv2</host>
- <key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</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>95</value>
- </macro>
- <macro>
- <macro>{$IFCONTROL}</macro>
- <value>1</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFADMINSTATUS.MATCHES}</macro>
- <value>^.*</value>
- <description>Ignore notPresent(6)</description>
- </macro>
- <macro>
- <macro>{$NET.IF.IFADMINSTATUS.NOT_MATCHES}</macro>
- <value>^2$</value>
- <description>Ignore down(2) administrative status</description>
- </macro>
- <macro>
- <macro>{$NET.IF.IFDESCR.MATCHES}</macro>
- <value>.*</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFDESCR.NOT_MATCHES}</macro>
- <value>CHANGE_IF_NEEDED</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>
- <macro>
- <macro>{$NET.IF.IFOPERSTATUS.MATCHES}</macro>
- <value>^.*$</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFOPERSTATUS.NOT_MATCHES}</macro>
- <value>^6$</value>
- <description>Ignore notPresent(6)</description>
- </macro>
- <macro>
- <macro>{$NET.IF.IFTYPE.MATCHES}</macro>
- <value>.*</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFTYPE.NOT_MATCHES}</macro>
- <value>CHANGE_IF_NEEDED</value>
- </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 {#IFDESCR}: Network traffic</name>
- <host>Template Module Interfaces Simple SNMPv2</host>
- </resource>
- <width>750</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>
- </templates>
- <value_maps>
- <value_map>
- <name>IF-MIB::ifOperStatus</name>
- <mappings>
- <mapping>
- <value>1</value>
- <newvalue>up</newvalue>
- </mapping>
- <mapping>
- <value>2</value>
- <newvalue>down</newvalue>
- </mapping>
- <mapping>
- <value>3</value>
- <newvalue>testing</newvalue>
- </mapping>
- <mapping>
- <value>4</value>
- <newvalue>unknown</newvalue>
- </mapping>
- <mapping>
- <value>5</value>
- <newvalue>dormant</newvalue>
- </mapping>
- <mapping>
- <value>6</value>
- <newvalue>notPresent</newvalue>
- </mapping>
- <mapping>
- <value>7</value>
- <newvalue>lowerLayerDown</newvalue>
- </mapping>
- </mappings>
- </value_map>
- <value_map>
- <name>IF-MIB::ifType</name>
- <mappings>
- <mapping>
- <value>1</value>
- <newvalue>other</newvalue>
- </mapping>
- <mapping>
- <value>2</value>
- <newvalue>regular1822</newvalue>
- </mapping>
- <mapping>
- <value>3</value>
- <newvalue>hdh1822</newvalue>
- </mapping>
- <mapping>
- <value>4</value>
- <newvalue>ddnX25</newvalue>
- </mapping>
- <mapping>
- <value>5</value>
- <newvalue>rfc877x25</newvalue>
- </mapping>
- <mapping>
- <value>6</value>
- <newvalue>ethernetCsmacd</newvalue>
- </mapping>
- <mapping>
- <value>7</value>
- <newvalue>iso88023Csmacd</newvalue>
- </mapping>
- <mapping>
- <value>8</value>
- <newvalue>iso88024TokenBus</newvalue>
- </mapping>
- <mapping>
- <value>9</value>
- <newvalue>iso88025TokenRing</newvalue>
- </mapping>
- <mapping>
- <value>10</value>
- <newvalue>iso88026Man</newvalue>
- </mapping>
- <mapping>
- <value>11</value>
- <newvalue>starLan</newvalue>
- </mapping>
- <mapping>
- <value>12</value>
- <newvalue>proteon10Mbit</newvalue>
- </mapping>
- <mapping>
- <value>13</value>
- <newvalue>proteon80Mbit</newvalue>
- </mapping>
- <mapping>
- <value>14</value>
- <newvalue>hyperchannel</newvalue>
- </mapping>
- <mapping>
- <value>15</value>
- <newvalue>fddi</newvalue>
- </mapping>
- <mapping>
- <value>16</value>
- <newvalue>lapb</newvalue>
- </mapping>
- <mapping>
- <value>17</value>
- <newvalue>sdlc</newvalue>
- </mapping>
- <mapping>
- <value>18</value>
- <newvalue>ds1</newvalue>
- </mapping>
- <mapping>
- <value>19</value>
- <newvalue>e1</newvalue>
- </mapping>
- <mapping>
- <value>20</value>
- <newvalue>basicISDN</newvalue>
- </mapping>
- <mapping>
- <value>21</value>
- <newvalue>primaryISDN</newvalue>
- </mapping>
- <mapping>
- <value>22</value>
- <newvalue>propPointToPointSerial</newvalue>
- </mapping>
- <mapping>
- <value>23</value>
- <newvalue>ppp</newvalue>
- </mapping>
- <mapping>
- <value>24</value>
- <newvalue>softwareLoopback</newvalue>
- </mapping>
- <mapping>
- <value>25</value>
- <newvalue>eon</newvalue>
- </mapping>
- <mapping>
- <value>26</value>
- <newvalue>ethernet3Mbit</newvalue>
- </mapping>
- <mapping>
- <value>27</value>
- <newvalue>nsip</newvalue>
- </mapping>
- <mapping>
- <value>28</value>
- <newvalue>slip</newvalue>
- </mapping>
- <mapping>
- <value>29</value>
- <newvalue>ultra</newvalue>
- </mapping>
- <mapping>
- <value>30</value>
- <newvalue>ds3</newvalue>
- </mapping>
- <mapping>
- <value>31</value>
- <newvalue>sip</newvalue>
- </mapping>
- <mapping>
- <value>32</value>
- <newvalue>frameRelay</newvalue>
- </mapping>
- <mapping>
- <value>33</value>
- <newvalue>rs232</newvalue>
- </mapping>
- <mapping>
- <value>34</value>
- <newvalue>para</newvalue>
- </mapping>
- <mapping>
- <value>35</value>
- <newvalue>arcnet</newvalue>
- </mapping>
- <mapping>
- <value>36</value>
- <newvalue>arcnetPlus</newvalue>
- </mapping>
- <mapping>
- <value>37</value>
- <newvalue>atm</newvalue>
- </mapping>
- <mapping>
- <value>38</value>
- <newvalue>miox25</newvalue>
- </mapping>
- <mapping>
- <value>39</value>
- <newvalue>sonet</newvalue>
- </mapping>
- <mapping>
- <value>40</value>
- <newvalue>x25ple</newvalue>
- </mapping>
- <mapping>
- <value>41</value>
- <newvalue>iso88022llc</newvalue>
- </mapping>
- <mapping>
- <value>42</value>
- <newvalue>localTalk</newvalue>
- </mapping>
- <mapping>
- <value>43</value>
- <newvalue>smdsDxi</newvalue>
- </mapping>
- <mapping>
- <value>44</value>
- <newvalue>frameRelayService</newvalue>
- </mapping>
- <mapping>
- <value>45</value>
- <newvalue>v35</newvalue>
- </mapping>
- <mapping>
- <value>46</value>
- <newvalue>hssi</newvalue>
- </mapping>
- <mapping>
- <value>47</value>
- <newvalue>hippi</newvalue>
- </mapping>
- <mapping>
- <value>48</value>
- <newvalue>modem</newvalue>
- </mapping>
- <mapping>
- <value>49</value>
- <newvalue>aal5</newvalue>
- </mapping>
- <mapping>
- <value>50</value>
- <newvalue>sonetPath</newvalue>
- </mapping>
- <mapping>
- <value>51</value>
- <newvalue>sonetVT</newvalue>
- </mapping>
- <mapping>
- <value>52</value>
- <newvalue>smdsIcip</newvalue>
- </mapping>
- <mapping>
- <value>53</value>
- <newvalue>propVirtual</newvalue>
- </mapping>
- <mapping>
- <value>54</value>
- <newvalue>propMultiplexor</newvalue>
- </mapping>
- <mapping>
- <value>55</value>
- <newvalue>ieee80212</newvalue>
- </mapping>
- <mapping>
- <value>56</value>
- <newvalue>fibreChannel</newvalue>
- </mapping>
- <mapping>
- <value>57</value>
- <newvalue>hippiInterface</newvalue>
- </mapping>
- <mapping>
- <value>58</value>
- <newvalue>frameRelayInterconnect</newvalue>
- </mapping>
- <mapping>
- <value>59</value>
- <newvalue>aflane8023</newvalue>
- </mapping>
- <mapping>
- <value>60</value>
- <newvalue>aflane8025</newvalue>
- </mapping>
- <mapping>
- <value>61</value>
- <newvalue>cctEmul</newvalue>
- </mapping>
- <mapping>
- <value>62</value>
- <newvalue>fastEther</newvalue>
- </mapping>
- <mapping>
- <value>63</value>
- <newvalue>isdn</newvalue>
- </mapping>
- <mapping>
- <value>64</value>
- <newvalue>v11</newvalue>
- </mapping>
- <mapping>
- <value>65</value>
- <newvalue>v36</newvalue>
- </mapping>
- <mapping>
- <value>66</value>
- <newvalue>g703at64k</newvalue>
- </mapping>
- <mapping>
- <value>67</value>
- <newvalue>g703at2mb</newvalue>
- </mapping>
- <mapping>
- <value>68</value>
- <newvalue>qllc</newvalue>
- </mapping>
- <mapping>
- <value>69</value>
- <newvalue>fastEtherFX</newvalue>
- </mapping>
- <mapping>
- <value>70</value>
- <newvalue>channel</newvalue>
- </mapping>
- <mapping>
- <value>71</value>
- <newvalue>ieee80211</newvalue>
- </mapping>
- <mapping>
- <value>72</value>
- <newvalue>ibm370parChan</newvalue>
- </mapping>
- <mapping>
- <value>73</value>
- <newvalue>escon</newvalue>
- </mapping>
- <mapping>
- <value>74</value>
- <newvalue>dlsw</newvalue>
- </mapping>
- <mapping>
- <value>75</value>
- <newvalue>isdns</newvalue>
- </mapping>
- <mapping>
- <value>76</value>
- <newvalue>isdnu</newvalue>
- </mapping>
- <mapping>
- <value>77</value>
- <newvalue>lapd</newvalue>
- </mapping>
- <mapping>
- <value>78</value>
- <newvalue>ipSwitch</newvalue>
- </mapping>
- <mapping>
- <value>79</value>
- <newvalue>rsrb</newvalue>
- </mapping>
- <mapping>
- <value>80</value>
- <newvalue>atmLogical</newvalue>
- </mapping>
- <mapping>
- <value>81</value>
- <newvalue>ds0</newvalue>
- </mapping>
- <mapping>
- <value>82</value>
- <newvalue>ds0Bundle</newvalue>
- </mapping>
- <mapping>
- <value>83</value>
- <newvalue>bsc</newvalue>
- </mapping>
- <mapping>
- <value>84</value>
- <newvalue>async</newvalue>
- </mapping>
- <mapping>
- <value>85</value>
- <newvalue>cnr</newvalue>
- </mapping>
- <mapping>
- <value>86</value>
- <newvalue>iso88025Dtr</newvalue>
- </mapping>
- <mapping>
- <value>87</value>
- <newvalue>eplrs</newvalue>
- </mapping>
- <mapping>
- <value>88</value>
- <newvalue>arap</newvalue>
- </mapping>
- <mapping>
- <value>89</value>
- <newvalue>propCnls</newvalue>
- </mapping>
- <mapping>
- <value>90</value>
- <newvalue>hostPad</newvalue>
- </mapping>
- <mapping>
- <value>91</value>
- <newvalue>termPad</newvalue>
- </mapping>
- <mapping>
- <value>92</value>
- <newvalue>frameRelayMPI</newvalue>
- </mapping>
- <mapping>
- <value>93</value>
- <newvalue>x213</newvalue>
- </mapping>
- <mapping>
- <value>94</value>
- <newvalue>adsl</newvalue>
- </mapping>
- <mapping>
- <value>95</value>
- <newvalue>radsl</newvalue>
- </mapping>
- <mapping>
- <value>96</value>
- <newvalue>sdsl</newvalue>
- </mapping>
- <mapping>
- <value>97</value>
- <newvalue>vdsl</newvalue>
- </mapping>
- <mapping>
- <value>98</value>
- <newvalue>iso88025CRFPInt</newvalue>
- </mapping>
- <mapping>
- <value>99</value>
- <newvalue>myrinet</newvalue>
- </mapping>
- <mapping>
- <value>100</value>
- <newvalue>voiceEM</newvalue>
- </mapping>
- <mapping>
- <value>101</value>
- <newvalue>voiceFXO</newvalue>
- </mapping>
- <mapping>
- <value>102</value>
- <newvalue>voiceFXS</newvalue>
- </mapping>
- <mapping>
- <value>103</value>
- <newvalue>voiceEncap</newvalue>
- </mapping>
- <mapping>
- <value>104</value>
- <newvalue>voiceOverIp</newvalue>
- </mapping>
- <mapping>
- <value>105</value>
- <newvalue>atmDxi</newvalue>
- </mapping>
- <mapping>
- <value>106</value>
- <newvalue>atmFuni</newvalue>
- </mapping>
- <mapping>
- <value>107</value>
- <newvalue>atmIma</newvalue>
- </mapping>
- <mapping>
- <value>108</value>
- <newvalue>pppMultilinkBundle</newvalue>
- </mapping>
- <mapping>
- <value>109</value>
- <newvalue>ipOverCdlc</newvalue>
- </mapping>
- <mapping>
- <value>110</value>
- <newvalue>ipOverClaw</newvalue>
- </mapping>
- <mapping>
- <value>111</value>
- <newvalue>stackToStack</newvalue>
- </mapping>
- <mapping>
- <value>112</value>
- <newvalue>virtualIpAddress</newvalue>
- </mapping>
- <mapping>
- <value>113</value>
- <newvalue>mpc</newvalue>
- </mapping>
- <mapping>
- <value>114</value>
- <newvalue>ipOverAtm</newvalue>
- </mapping>
- <mapping>
- <value>115</value>
- <newvalue>iso88025Fiber</newvalue>
- </mapping>
- <mapping>
- <value>116</value>
- <newvalue>tdlc</newvalue>
- </mapping>
- <mapping>
- <value>117</value>
- <newvalue>gigabitEthernet</newvalue>
- </mapping>
- <mapping>
- <value>118</value>
- <newvalue>hdlc</newvalue>
- </mapping>
- <mapping>
- <value>119</value>
- <newvalue>lapf</newvalue>
- </mapping>
- <mapping>
- <value>120</value>
- <newvalue>v37</newvalue>
- </mapping>
- <mapping>
- <value>121</value>
- <newvalue>x25mlp</newvalue>
- </mapping>
- <mapping>
- <value>122</value>
- <newvalue>x25huntGroup</newvalue>
- </mapping>
- <mapping>
- <value>123</value>
- <newvalue>trasnpHdlc</newvalue>
- </mapping>
- <mapping>
- <value>124</value>
- <newvalue>interleave</newvalue>
- </mapping>
- <mapping>
- <value>125</value>
- <newvalue>fast</newvalue>
- </mapping>
- <mapping>
- <value>126</value>
- <newvalue>ip</newvalue>
- </mapping>
- <mapping>
- <value>127</value>
- <newvalue>docsCableMaclayer</newvalue>
- </mapping>
- <mapping>
- <value>128</value>
- <newvalue>docsCableDownstream</newvalue>
- </mapping>
- <mapping>
- <value>129</value>
- <newvalue>docsCableUpstream</newvalue>
- </mapping>
- <mapping>
- <value>130</value>
- <newvalue>a12MppSwitch</newvalue>
- </mapping>
- <mapping>
- <value>131</value>
- <newvalue>tunnel</newvalue>
- </mapping>
- <mapping>
- <value>132</value>
- <newvalue>coffee</newvalue>
- </mapping>
- <mapping>
- <value>133</value>
- <newvalue>ces</newvalue>
- </mapping>
- <mapping>
- <value>134</value>
- <newvalue>atmSubInterface</newvalue>
- </mapping>
- <mapping>
- <value>135</value>
- <newvalue>l2vlan</newvalue>
- </mapping>
- <mapping>
- <value>136</value>
- <newvalue>l3ipvlan</newvalue>
- </mapping>
- <mapping>
- <value>137</value>
- <newvalue>l3ipxvlan</newvalue>
- </mapping>
- <mapping>
- <value>138</value>
- <newvalue>digitalPowerline</newvalue>
- </mapping>
- <mapping>
- <value>139</value>
- <newvalue>mediaMailOverIp</newvalue>
- </mapping>
- <mapping>
- <value>140</value>
- <newvalue>dtm</newvalue>
- </mapping>
- <mapping>
- <value>141</value>
- <newvalue>dcn</newvalue>
- </mapping>
- <mapping>
- <value>142</value>
- <newvalue>ipForward</newvalue>
- </mapping>
- <mapping>
- <value>143</value>
- <newvalue>msdsl</newvalue>
- </mapping>
- <mapping>
- <value>144</value>
- <newvalue>ieee1394</newvalue>
- </mapping>
- <mapping>
- <value>145</value>
- <newvalue>if-gsn</newvalue>
- </mapping>
- <mapping>
- <value>146</value>
- <newvalue>dvbRccMacLayer</newvalue>
- </mapping>
- <mapping>
- <value>147</value>
- <newvalue>dvbRccDownstream</newvalue>
- </mapping>
- <mapping>
- <value>148</value>
- <newvalue>dvbRccUpstream</newvalue>
- </mapping>
- <mapping>
- <value>149</value>
- <newvalue>atmVirtual</newvalue>
- </mapping>
- <mapping>
- <value>150</value>
- <newvalue>mplsTunnel</newvalue>
- </mapping>
- <mapping>
- <value>151</value>
- <newvalue>srp</newvalue>
- </mapping>
- <mapping>
- <value>152</value>
- <newvalue>voiceOverAtm</newvalue>
- </mapping>
- <mapping>
- <value>153</value>
- <newvalue>voiceOverFrameRelay</newvalue>
- </mapping>
- <mapping>
- <value>154</value>
- <newvalue>idsl</newvalue>
- </mapping>
- <mapping>
- <value>155</value>
- <newvalue>compositeLink</newvalue>
- </mapping>
- <mapping>
- <value>156</value>
- <newvalue>ss7SigLink</newvalue>
- </mapping>
- <mapping>
- <value>157</value>
- <newvalue>propWirelessP2P</newvalue>
- </mapping>
- <mapping>
- <value>158</value>
- <newvalue>frForward</newvalue>
- </mapping>
- <mapping>
- <value>159</value>
- <newvalue>rfc1483</newvalue>
- </mapping>
- <mapping>
- <value>160</value>
- <newvalue>usb</newvalue>
- </mapping>
- <mapping>
- <value>161</value>
- <newvalue>ieee8023adLag</newvalue>
- </mapping>
- <mapping>
- <value>162</value>
- <newvalue>bgppolicyaccounting</newvalue>
- </mapping>
- <mapping>
- <value>163</value>
- <newvalue>frf16MfrBundle</newvalue>
- </mapping>
- <mapping>
- <value>164</value>
- <newvalue>h323Gatekeeper</newvalue>
- </mapping>
- <mapping>
- <value>165</value>
- <newvalue>h323Proxy</newvalue>
- </mapping>
- <mapping>
- <value>166</value>
- <newvalue>mpls</newvalue>
- </mapping>
- <mapping>
- <value>167</value>
- <newvalue>mfSigLink</newvalue>
- </mapping>
- <mapping>
- <value>168</value>
- <newvalue>hdsl2</newvalue>
- </mapping>
- <mapping>
- <value>169</value>
- <newvalue>shdsl</newvalue>
- </mapping>
- <mapping>
- <value>170</value>
- <newvalue>ds1FDL</newvalue>
- </mapping>
- <mapping>
- <value>171</value>
- <newvalue>pos</newvalue>
- </mapping>
- <mapping>
- <value>172</value>
- <newvalue>dvbAsiIn</newvalue>
- </mapping>
- <mapping>
- <value>173</value>
- <newvalue>dvbAsiOut</newvalue>
- </mapping>
- <mapping>
- <value>174</value>
- <newvalue>plc</newvalue>
- </mapping>
- <mapping>
- <value>175</value>
- <newvalue>nfas</newvalue>
- </mapping>
- <mapping>
- <value>176</value>
- <newvalue>tr008</newvalue>
- </mapping>
- <mapping>
- <value>177</value>
- <newvalue>gr303RDT</newvalue>
- </mapping>
- <mapping>
- <value>178</value>
- <newvalue>gr303IDT</newvalue>
- </mapping>
- <mapping>
- <value>179</value>
- <newvalue>isup</newvalue>
- </mapping>
- <mapping>
- <value>180</value>
- <newvalue>propDocsWirelessMaclayer</newvalue>
- </mapping>
- <mapping>
- <value>181</value>
- <newvalue>propDocsWirelessDownstream</newvalue>
- </mapping>
- <mapping>
- <value>182</value>
- <newvalue>propDocsWirelessUpstream</newvalue>
- </mapping>
- <mapping>
- <value>183</value>
- <newvalue>hiperlan2</newvalue>
- </mapping>
- <mapping>
- <value>184</value>
- <newvalue>propBWAp2Mp</newvalue>
- </mapping>
- <mapping>
- <value>185</value>
- <newvalue>sonetOverheadChannel</newvalue>
- </mapping>
- <mapping>
- <value>186</value>
- <newvalue>digitalWrapperOverheadChannel</newvalue>
- </mapping>
- <mapping>
- <value>187</value>
- <newvalue>aal2</newvalue>
- </mapping>
- <mapping>
- <value>188</value>
- <newvalue>radioMAC</newvalue>
- </mapping>
- <mapping>
- <value>189</value>
- <newvalue>atmRadio</newvalue>
- </mapping>
- <mapping>
- <value>190</value>
- <newvalue>imt</newvalue>
- </mapping>
- <mapping>
- <value>191</value>
- <newvalue>mvl</newvalue>
- </mapping>
- <mapping>
- <value>192</value>
- <newvalue>reachDSL</newvalue>
- </mapping>
- <mapping>
- <value>193</value>
- <newvalue>frDlciEndPt</newvalue>
- </mapping>
- <mapping>
- <value>194</value>
- <newvalue>atmVciEndPt</newvalue>
- </mapping>
- <mapping>
- <value>195</value>
- <newvalue>opticalChannel</newvalue>
- </mapping>
- <mapping>
- <value>196</value>
- <newvalue>opticalTransport</newvalue>
- </mapping>
- <mapping>
- <value>197</value>
- <newvalue>propAtm</newvalue>
- </mapping>
- <mapping>
- <value>198</value>
- <newvalue>voiceOverCable</newvalue>
- </mapping>
- <mapping>
- <value>199</value>
- <newvalue>infiniband</newvalue>
- </mapping>
- <mapping>
- <value>200</value>
- <newvalue>teLink</newvalue>
- </mapping>
- <mapping>
- <value>201</value>
- <newvalue>q2931</newvalue>
- </mapping>
- <mapping>
- <value>202</value>
- <newvalue>virtualTg</newvalue>
- </mapping>
- <mapping>
- <value>203</value>
- <newvalue>sipTg</newvalue>
- </mapping>
- <mapping>
- <value>204</value>
- <newvalue>sipSig</newvalue>
- </mapping>
- <mapping>
- <value>205</value>
- <newvalue>docsCableUpstreamChannel</newvalue>
- </mapping>
- <mapping>
- <value>206</value>
- <newvalue>econet</newvalue>
- </mapping>
- <mapping>
- <value>207</value>
- <newvalue>pon155</newvalue>
- </mapping>
- <mapping>
- <value>208</value>
- <newvalue>pon622</newvalue>
- </mapping>
- <mapping>
- <value>209</value>
- <newvalue>bridge</newvalue>
- </mapping>
- <mapping>
- <value>210</value>
- <newvalue>linegroup</newvalue>
- </mapping>
- <mapping>
- <value>211</value>
- <newvalue>voiceEMFGD</newvalue>
- </mapping>
- <mapping>
- <value>212</value>
- <newvalue>voiceFGDEANA</newvalue>
- </mapping>
- <mapping>
- <value>213</value>
- <newvalue>voiceDID</newvalue>
- </mapping>
- <mapping>
- <value>214</value>
- <newvalue>mpegTransport</newvalue>
- </mapping>
- <mapping>
- <value>215</value>
- <newvalue>sixToFour</newvalue>
- </mapping>
- <mapping>
- <value>216</value>
- <newvalue>gtp</newvalue>
- </mapping>
- <mapping>
- <value>217</value>
- <newvalue>pdnEtherLoop1</newvalue>
- </mapping>
- <mapping>
- <value>218</value>
- <newvalue>pdnEtherLoop2</newvalue>
- </mapping>
- <mapping>
- <value>219</value>
- <newvalue>opticalChannelGroup</newvalue>
- </mapping>
- <mapping>
- <value>220</value>
- <newvalue>homepna</newvalue>
- </mapping>
- <mapping>
- <value>221</value>
- <newvalue>gfp</newvalue>
- </mapping>
- <mapping>
- <value>222</value>
- <newvalue>ciscoISLvlan</newvalue>
- </mapping>
- <mapping>
- <value>223</value>
- <newvalue>actelisMetaLOOP</newvalue>
- </mapping>
- <mapping>
- <value>224</value>
- <newvalue>fcipLink</newvalue>
- </mapping>
- <mapping>
- <value>225</value>
- <newvalue>rpr</newvalue>
- </mapping>
- <mapping>
- <value>226</value>
- <newvalue>qam</newvalue>
- </mapping>
- <mapping>
- <value>227</value>
- <newvalue>lmp</newvalue>
- </mapping>
- <mapping>
- <value>228</value>
- <newvalue>cblVectaStar</newvalue>
- </mapping>
- <mapping>
- <value>229</value>
- <newvalue>docsCableMCmtsDownstream</newvalue>
- </mapping>
- <mapping>
- <value>230</value>
- <newvalue>adsl2</newvalue>
- </mapping>
- <mapping>
- <value>231</value>
- <newvalue>macSecControlledIF</newvalue>
- </mapping>
- <mapping>
- <value>232</value>
- <newvalue>macSecUncontrolledIF</newvalue>
- </mapping>
- <mapping>
- <value>233</value>
- <newvalue>aviciOpticalEther</newvalue>
- </mapping>
- <mapping>
- <value>234</value>
- <newvalue>atmbond</newvalue>
- </mapping>
- <mapping>
- <value>235</value>
- <newvalue>voiceFGDOS</newvalue>
- </mapping>
- <mapping>
- <value>236</value>
- <newvalue>mocaVersion1</newvalue>
- </mapping>
- <mapping>
- <value>237</value>
- <newvalue>ieee80216WMAN</newvalue>
- </mapping>
- <mapping>
- <value>238</value>
- <newvalue>adsl2plus</newvalue>
- </mapping>
- <mapping>
- <value>239</value>
- <newvalue>dvbRcsMacLayer</newvalue>
- </mapping>
- <mapping>
- <value>240</value>
- <newvalue>dvbTdm</newvalue>
- </mapping>
- <mapping>
- <value>241</value>
- <newvalue>dvbRcsTdma</newvalue>
- </mapping>
- <mapping>
- <value>242</value>
- <newvalue>x86Laps</newvalue>
- </mapping>
- <mapping>
- <value>243</value>
- <newvalue>wwanPP</newvalue>
- </mapping>
- <mapping>
- <value>244</value>
- <newvalue>wwanPP2</newvalue>
- </mapping>
- <mapping>
- <value>245</value>
- <newvalue>voiceEBS</newvalue>
- </mapping>
- <mapping>
- <value>246</value>
- <newvalue>ifPwType</newvalue>
- </mapping>
- <mapping>
- <value>247</value>
- <newvalue>ilan</newvalue>
- </mapping>
- <mapping>
- <value>248</value>
- <newvalue>pip</newvalue>
- </mapping>
- <mapping>
- <value>249</value>
- <newvalue>aluELP</newvalue>
- </mapping>
- <mapping>
- <value>250</value>
- <newvalue>gpon</newvalue>
- </mapping>
- <mapping>
- <value>251</value>
- <newvalue>vdsl2</newvalue>
- </mapping>
- <mapping>
- <value>252</value>
- <newvalue>capwapDot11Profile</newvalue>
- </mapping>
- <mapping>
- <value>253</value>
- <newvalue>capwapDot11Bss</newvalue>
- </mapping>
- <mapping>
- <value>254</value>
- <newvalue>capwapWtpVirtualRadio</newvalue>
- </mapping>
- <mapping>
- <value>255</value>
- <newvalue>bits</newvalue>
- </mapping>
- <mapping>
- <value>256</value>
- <newvalue>docsCableUpstreamRfPort</newvalue>
- </mapping>
- <mapping>
- <value>257</value>
- <newvalue>cableDownstreamRfPort</newvalue>
- </mapping>
- <mapping>
- <value>258</value>
- <newvalue>vmwareVirtualNic</newvalue>
- </mapping>
- <mapping>
- <value>259</value>
- <newvalue>ieee802154</newvalue>
- </mapping>
- <mapping>
- <value>260</value>
- <newvalue>otnOdu</newvalue>
- </mapping>
- <mapping>
- <value>261</value>
- <newvalue>otnOtu</newvalue>
- </mapping>
- <mapping>
- <value>262</value>
- <newvalue>ifVfiType</newvalue>
- </mapping>
- <mapping>
- <value>263</value>
- <newvalue>g9981</newvalue>
- </mapping>
- <mapping>
- <value>264</value>
- <newvalue>g9982</newvalue>
- </mapping>
- <mapping>
- <value>265</value>
- <newvalue>g9983</newvalue>
- </mapping>
- <mapping>
- <value>266</value>
- <newvalue>aluEpon</newvalue>
- </mapping>
- <mapping>
- <value>267</value>
- <newvalue>aluEponOnu</newvalue>
- </mapping>
- <mapping>
- <value>268</value>
- <newvalue>aluEponPhysicalUni</newvalue>
- </mapping>
- <mapping>
- <value>269</value>
- <newvalue>aluEponLogicalLink</newvalue>
- </mapping>
- <mapping>
- <value>270</value>
- <newvalue>aluGponOnu</newvalue>
- </mapping>
- <mapping>
- <value>271</value>
- <newvalue>aluGponPhysicalUni</newvalue>
- </mapping>
- <mapping>
- <value>272</value>
- <newvalue>vmwareNicTeam</newvalue>
- </mapping>
- <mapping>
- <value>277</value>
- <newvalue>docsOfdmDownstream</newvalue>
- </mapping>
- <mapping>
- <value>278</value>
- <newvalue>docsOfdmaUpstream</newvalue>
- </mapping>
- <mapping>
- <value>279</value>
- <newvalue>gfast</newvalue>
- </mapping>
- <mapping>
- <value>280</value>
- <newvalue>sdci</newvalue>
- </mapping>
- <mapping>
- <value>281</value>
- <newvalue>xboxWireless</newvalue>
- </mapping>
- <mapping>
- <value>282</value>
- <newvalue>fastdsl</newvalue>
- </mapping>
- <mapping>
- <value>283</value>
- <newvalue>docsCableScte55d1FwdOob</newvalue>
- </mapping>
- <mapping>
- <value>284</value>
- <newvalue>docsCableScte55d1RetOob</newvalue>
- </mapping>
- <mapping>
- <value>285</value>
- <newvalue>docsCableScte55d2DsOob</newvalue>
- </mapping>
- <mapping>
- <value>286</value>
- <newvalue>docsCableScte55d2UsOob</newvalue>
- </mapping>
- <mapping>
- <value>287</value>
- <newvalue>docsCableNdf</newvalue>
- </mapping>
- <mapping>
- <value>288</value>
- <newvalue>docsCableNdr</newvalue>
- </mapping>
- <mapping>
- <value>289</value>
- <newvalue>ptm</newvalue>
- </mapping>
- <mapping>
- <value>290</value>
- <newvalue>ghn</newvalue>
- </mapping>
- </mappings>
- </value_map>
- </value_maps>
-</zabbix_export>
diff --git a/templates/module/interfaces_snmp/README.md b/templates/module/interfaces_snmp/README.md
new file mode 100644
index 00000000000..b38cafc7d17
--- /dev/null
+++ b/templates/module/interfaces_snmp/README.md
@@ -0,0 +1,70 @@
+
+# Template Module Interfaces SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$IF.ERRORS.WARN} |<p>-</p> |`2` |
+|{$IF.UTIL.MAX} |<p>-</p> |`90` |
+|{$IFCONTROL} |<p>-</p> |`1` |
+|{$NET.IF.IFADMINSTATUS.MATCHES} |<p>Ignore notPresent(6)</p> |`^.*` |
+|{$NET.IF.IFADMINSTATUS.NOT_MATCHES} |<p>Ignore down(2) administrative status</p> |`^2$` |
+|{$NET.IF.IFALIAS.MATCHES} |<p>-</p> |`.*` |
+|{$NET.IF.IFALIAS.NOT_MATCHES} |<p>-</p> |`CHANGE_IF_NEEDED` |
+|{$NET.IF.IFDESCR.MATCHES} |<p>-</p> |`.*` |
+|{$NET.IF.IFDESCR.NOT_MATCHES} |<p>-</p> |`CHANGE_IF_NEEDED` |
+|{$NET.IF.IFNAME.MATCHES} |<p>-</p> |`^.*$` |
+|{$NET.IF.IFNAME.NOT_MATCHES} |<p>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</p> |`(^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})` |
+|{$NET.IF.IFOPERSTATUS.MATCHES} |<p>-</p> |`^.*$` |
+|{$NET.IF.IFOPERSTATUS.NOT_MATCHES} |<p>Ignore notPresent(6)</p> |`^6$` |
+|{$NET.IF.IFTYPE.MATCHES} |<p>-</p> |`.*` |
+|{$NET.IF.IFTYPE.NOT_MATCHES} |<p>-</p> |`CHANGE_IF_NEEDED` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Network interfaces discovery |<p>Discovering interfaces from IF-MIB.</p> |SNMP |net.if.discovery<p>**Filter**:</p>AND <p>- A: {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- B: {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- C: {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- D: {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- E: {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- F: {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- G: {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- H: {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- I: {#IFALIAS} MATCHES_REGEX `{$NET.IF.IFALIAS.MATCHES}`</p><p>- J: {#IFALIAS} NOT_MATCHES_REGEX `{$NET.IF.IFALIAS.NOT_MATCHES}`</p><p>- K: {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- L: {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Operational status |<p>MIB: IF-MIB</p><p>The current operational state of the interface.</p><p>- The testing(3) state indicates that no operational packet scan be passed</p><p>- If ifAdminStatus is down(2) then ifOperStatus should be down(2)</p><p>- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic</p><p>- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)</p><p>- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state</p><p>- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</p> |SNMP |net.if.status[ifOperStatus.{#SNMPINDEX}] |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Bits received |<p>MIB: IF-MIB</p><p>The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in[ifHCInOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p> |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Bits sent |<p>MIB: IF-MIB</p><p>The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out[ifHCOutOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p> |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors |<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in.errors[ifInErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors |<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out.errors[ifOutErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded |<p>MIB: IF-MIB</p><p>The number of outbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded |<p>MIB: IF-MIB</p><p>The number of inbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in.discards[ifInDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Interface type |<p>MIB: IF-MIB</p><p>The type of interface.</p><p>Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),</p><p>through updating the syntax of the IANAifType textual convention.</p> |SNMP |net.if.type[ifType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Speed |<p>MIB: IF-MIB</p><p>An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.</p> |SNMP |net.if.speed[ifHighSpeed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1000000`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Interface {#IFNAME}({#IFALIAS}): Link down |<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>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.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p> |`{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0` |AVERAGE |<p>Manual close: YES</p> |
+|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% ) |<p>The network interface utilization is close to its estimated maximum bandwidth.</p> |`({TEMPLATE_NAME:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or {Template Module Interfaces SNMP:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and {Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and {Template Module Interfaces SNMP:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+|Interface {#IFNAME}({#IFALIAS}): High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) |<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p> |`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {Template Module Interfaces SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {Template Module Interfaces SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+|Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before |<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p> |`{TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}<0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 and ( {Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or {Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or {Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or {Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or {Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or {Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117 ) and ({Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2)`<p>Recovery expression:</p>`({TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}>0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}>0) or ({Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)` |INFO |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/module/interfaces_snmpv1/template_module_interfaces_snmpv1.xml b/templates/module/interfaces_snmp/template_module_interfaces_snmp.xml
index f479eb6250b..5d4342a0240 100644
--- a/templates/module/interfaces_snmpv1/template_module_interfaces_snmpv1.xml
+++ b/templates/module/interfaces_snmp/template_module_interfaces_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:27:52Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -9,14 +9,14 @@
</groups>
<templates>
<template>
- <template>Template Module Interfaces SNMPv1</template>
- <name>Template Module Interfaces SNMPv1</name>
+ <template>Template Module Interfaces SNMP</template>
+ <name>Template Module Interfaces SNMP</name>
<description>Template Module Interfaces&#13;
&#13;
MIBs used:&#13;
IF-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -30,8 +30,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Network interfaces discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]</snmp_oid>
<key>net.if.discovery</key>
<delay>1h</delay>
@@ -110,8 +109,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}</snmp_oid>
<key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -136,8 +134,7 @@ and at other times as indicated by the value of ifCounterDiscontinuityTime.</des
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}</snmp_oid>
<key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -158,8 +155,7 @@ For packet-oriented interfaces, the number of inbound packets that contained err
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Bits received</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>net.if.in[ifHCInOctets.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -185,8 +181,7 @@ The total number of octets received on the interface, including framing characte
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}</snmp_oid>
<key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -211,8 +206,7 @@ and at other times as indicated by the value of ifCounterDiscontinuityTime.</des
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}</snmp_oid>
<key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -233,8 +227,7 @@ For packet-oriented interfaces, the number of outbound packets that contained er
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Bits sent</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}</snmp_oid>
<key>net.if.out[ifHCOutOctets.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -260,8 +253,7 @@ The total number of octets transmitted out of the interface, including framing c
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Speed</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}</snmp_oid>
<key>net.if.speed[ifHighSpeed.{#SNMPINDEX}]</key>
<delay>5m</delay>
@@ -288,8 +280,7 @@ An estimate of the interface's current bandwidth in units of 1,000,000 bits per
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Operational status</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}</snmp_oid>
<key>net.if.status[ifOperStatus.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -314,7 +305,7 @@ The current operational state of the interface.&#13;
<trigger_prototype>
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{last()}&lt;&gt;2</recovery_expression>
+ <recovery_expression>{last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
<opdata>Current state: {ITEM.LASTVALUE1}</opdata>
<priority>AVERAGE</priority>
@@ -330,8 +321,7 @@ WARNING: if closed manually - won't fire again on next poll, because of .diff.</
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Interface type</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>net.if.type[ifType.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -359,20 +349,20 @@ through updating the syntax of the IANAifType textual convention.</description>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&lt;0 and {Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0&#13;
+ <expression>{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&lt;0 and {Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0&#13;
and (&#13;
-{Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or&#13;
-{Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or&#13;
-{Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or&#13;
-{Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or&#13;
-{Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or&#13;
-{Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=117&#13;
+{Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or&#13;
+{Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or&#13;
+{Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or&#13;
+{Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or&#13;
+{Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or&#13;
+{Template Module Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117&#13;
)&#13;
and&#13;
-({Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2)</expression>
+({Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2)</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>({Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&gt;0 and {Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}&gt;0) or&#13;
-({Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)</recovery_expression>
+ <recovery_expression>({Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&gt;0 and {Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}&gt;0) or&#13;
+({Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)</recovery_expression>
<name>Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before</name>
<opdata>Current reported speed: {ITEM.LASTVALUE1}</opdata>
<priority>INFO</priority>
@@ -381,18 +371,18 @@ and&#13;
<dependencies>
<dependency>
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
- <expression>({Template Module Interfaces SNMPv1:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or&#13;
-{Template Module Interfaces SNMPv1:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and&#13;
-{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0</expression>
+ <expression>({Template Module Interfaces SNMP:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or&#13;
+{Template Module Interfaces SNMP:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and&#13;
+{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces SNMPv1:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and&#13;
-{Template Module Interfaces SNMPv1:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}</recovery_expression>
+ <recovery_expression>{Template Module Interfaces SNMP:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and&#13;
+{Template Module Interfaces SNMP:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}</recovery_expression>
<name>Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( &gt; {$IF.UTIL.MAX:"{#IFNAME}"}% )</name>
<opdata>In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
@@ -401,17 +391,17 @@ and&#13;
<dependencies>
<dependency>
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Module Interfaces SNMPv1:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}&#13;
-or {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
+ <expression>{Template Module Interfaces SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}&#13;
+or {Template Module Interfaces SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces SNMPv1:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8&#13;
-and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
+ <recovery_expression>{Template Module Interfaces SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8&#13;
+and {Template Module Interfaces SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
<name>Interface {#IFNAME}({#IFALIAS}): High error rate ( &gt; {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)</name>
<opdata>errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
@@ -420,8 +410,8 @@ and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX
<dependencies>
<dependency>
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -434,7 +424,7 @@ and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Interfaces SNMPv1</host>
+ <host>Template Module Interfaces SNMP</host>
<key>net.if.in[ifHCInOctets.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -443,7 +433,7 @@ and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX
<drawtype>BOLD_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Module Interfaces SNMPv1</host>
+ <host>Template Module Interfaces SNMP</host>
<key>net.if.out[ifHCOutOctets.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -452,7 +442,7 @@ and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX
<color>F63100</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces SNMPv1</host>
+ <host>Template Module Interfaces SNMP</host>
<key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -461,7 +451,7 @@ and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX
<color>A54F10</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces SNMPv1</host>
+ <host>Template Module Interfaces SNMP</host>
<key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -470,7 +460,7 @@ and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX
<color>FC6EA3</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces SNMPv1</host>
+ <host>Template Module Interfaces SNMP</host>
<key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -479,7 +469,7 @@ and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX
<color>6C59DC</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces SNMPv1</host>
+ <host>Template Module Interfaces SNMP</host>
<key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -565,9 +555,9 @@ and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX
<style>0</style>
<resource>
<name>Interface {#IFNAME}({#IFALIAS}): Network traffic</name>
- <host>Template Module Interfaces SNMPv1</host>
+ <host>Template Module Interfaces SNMP</host>
</resource>
- <width>750</width>
+ <width>500</width>
<height>100</height>
<x>0</x>
<y>0</y>
diff --git a/templates/module/interfaces_snmpv1/README.md b/templates/module/interfaces_snmpv1/README.md
deleted file mode 100644
index 36bb43d805f..00000000000
--- a/templates/module/interfaces_snmpv1/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-
-# Template Module Interfaces SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$IF.ERRORS.WARN}|<p>-</p>|`2`|
-|{$IF.UTIL.MAX}|<p>-</p>|`90`|
-|{$IFCONTROL}|<p>-</p>|`1`|
-|{$NET.IF.IFADMINSTATUS.MATCHES}|<p>Ignore notPresent(6)</p>|`^.*`|
-|{$NET.IF.IFADMINSTATUS.NOT_MATCHES}|<p>Ignore down(2) administrative status</p>|`^2$`|
-|{$NET.IF.IFALIAS.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFALIAS.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-|{$NET.IF.IFDESCR.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFDESCR.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-|{$NET.IF.IFNAME.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFNAME.NOT_MATCHES}|<p>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</p>|`(^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})`|
-|{$NET.IF.IFOPERSTATUS.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFOPERSTATUS.NOT_MATCHES}|<p>Ignore notPresent(6)</p>|`^6$`|
-|{$NET.IF.IFTYPE.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFTYPE.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Network interfaces discovery|<p>Discovering interfaces from IF-MIB.</p>|SNMP|net.if.discovery<p>**Filter**:</p>AND <p>- A: {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- B: {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- C: {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- D: {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- E: {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- F: {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- G: {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- H: {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- I: {#IFALIAS} MATCHES_REGEX `{$NET.IF.IFALIAS.MATCHES}`</p><p>- J: {#IFALIAS} NOT_MATCHES_REGEX `{$NET.IF.IFALIAS.NOT_MATCHES}`</p><p>- K: {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- L: {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Operational status|<p>MIB: IF-MIB</p><p>The current operational state of the interface.</p><p>- The testing(3) state indicates that no operational packet scan be passed</p><p>- If ifAdminStatus is down(2) then ifOperStatus should be down(2)</p><p>- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic</p><p>- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)</p><p>- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state</p><p>- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</p>|SNMP|net.if.status[ifOperStatus.{#SNMPINDEX}]|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Bits received|<p>MIB: IF-MIB</p><p>The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in[ifHCInOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Bits sent|<p>MIB: IF-MIB</p><p>The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out[ifHCOutOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.errors[ifInErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.errors[ifOutErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded|<p>MIB: IF-MIB</p><p>The number of outbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded|<p>MIB: IF-MIB</p><p>The number of inbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.discards[ifInDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Interface type|<p>MIB: IF-MIB</p><p>The type of interface.</p><p>Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),</p><p>through updating the syntax of the IANAifType textual convention.</p>|SNMP|net.if.type[ifType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Speed|<p>MIB: IF-MIB</p><p>An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.</p>|SNMP|net.if.speed[ifHighSpeed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1000000`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Interface {#IFNAME}({#IFALIAS}): Link down|<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>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.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p>|`{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2`|AVERAGE|<p>Manual close: YES</p>|
-|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )|<p>The network interface utilization is close to its estimated maximum bandwidth.</p>|`({TEMPLATE_NAME:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or {Template Module Interfaces SNMPv1:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and {Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and {Template Module Interfaces SNMPv1:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMPv1:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-|Interface {#IFNAME}({#IFALIAS}): High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)|<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p>|`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {Template Module Interfaces SNMPv1:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-|Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before|<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p>|`{TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}<0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 and ( {Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or {Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or {Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or {Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or {Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or {Template Module Interfaces SNMPv1:net.if.type[ifType.{#SNMPINDEX}].last()}=117 ) and ({Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2)`<p>Recovery expression:</p>`({TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}>0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}>0) or ({Template Module Interfaces SNMPv1:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)`|INFO|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/module/interfaces_snmpv2/README.md b/templates/module/interfaces_snmpv2/README.md
deleted file mode 100644
index 99c5bf1f213..00000000000
--- a/templates/module/interfaces_snmpv2/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-
-# Template Module Interfaces SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$IF.ERRORS.WARN}|<p>-</p>|`2`|
-|{$IF.UTIL.MAX}|<p>-</p>|`90`|
-|{$IFCONTROL}|<p>-</p>|`1`|
-|{$NET.IF.IFADMINSTATUS.MATCHES}|<p>Ignore notPresent(6)</p>|`^.*`|
-|{$NET.IF.IFADMINSTATUS.NOT_MATCHES}|<p>Ignore down(2) administrative status</p>|`^2$`|
-|{$NET.IF.IFALIAS.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFALIAS.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-|{$NET.IF.IFDESCR.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFDESCR.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-|{$NET.IF.IFNAME.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFNAME.NOT_MATCHES}|<p>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</p>|`(^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})`|
-|{$NET.IF.IFOPERSTATUS.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFOPERSTATUS.NOT_MATCHES}|<p>Ignore notPresent(6)</p>|`^6$`|
-|{$NET.IF.IFTYPE.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFTYPE.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Network interfaces discovery|<p>Discovering interfaces from IF-MIB.</p>|SNMP|net.if.discovery<p>**Filter**:</p>AND <p>- A: {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- B: {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- C: {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- D: {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- E: {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- F: {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- G: {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- H: {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- I: {#IFALIAS} MATCHES_REGEX `{$NET.IF.IFALIAS.MATCHES}`</p><p>- J: {#IFALIAS} NOT_MATCHES_REGEX `{$NET.IF.IFALIAS.NOT_MATCHES}`</p><p>- K: {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- L: {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Operational status|<p>MIB: IF-MIB</p><p>The current operational state of the interface.</p><p>- The testing(3) state indicates that no operational packet scan be passed</p><p>- If ifAdminStatus is down(2) then ifOperStatus should be down(2)</p><p>- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic</p><p>- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)</p><p>- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state</p><p>- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</p>|SNMP|net.if.status[ifOperStatus.{#SNMPINDEX}]|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Bits received|<p>MIB: IF-MIB</p><p>The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in[ifHCInOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Bits sent|<p>MIB: IF-MIB</p><p>The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out[ifHCOutOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.errors[ifInErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.errors[ifOutErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded|<p>MIB: IF-MIB</p><p>The number of outbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded|<p>MIB: IF-MIB</p><p>The number of inbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.discards[ifInDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Interface type|<p>MIB: IF-MIB</p><p>The type of interface.</p><p>Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),</p><p>through updating the syntax of the IANAifType textual convention.</p>|SNMP|net.if.type[ifType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Speed|<p>MIB: IF-MIB</p><p>An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.</p>|SNMP|net.if.speed[ifHighSpeed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1000000`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Interface {#IFNAME}({#IFALIAS}): Link down|<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>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.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p>|`{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2`|AVERAGE|<p>Manual close: YES</p>|
-|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )|<p>The network interface utilization is close to its estimated maximum bandwidth.</p>|`({TEMPLATE_NAME:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or {Template Module Interfaces SNMPv2:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and {Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and {Template Module Interfaces SNMPv2:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-|Interface {#IFNAME}({#IFALIAS}): High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)|<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p>|`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {Template Module Interfaces SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {Template Module Interfaces SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-|Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before|<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p>|`{TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}<0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 and ( {Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or {Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or {Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or {Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or {Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or {Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=117 ) and ({Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2)`<p>Recovery expression:</p>`({TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}>0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}>0) or ({Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)`|INFO|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/module/interfaces_snmpv2/template_module_interfaces_snmpv2.xml b/templates/module/interfaces_snmpv2/template_module_interfaces_snmpv2.xml
deleted file mode 100644
index 031e415c1c3..00000000000
--- a/templates/module/interfaces_snmpv2/template_module_interfaces_snmpv2.xml
+++ /dev/null
@@ -1,1774 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <templates>
- <template>
- <template>Template Module Interfaces SNMPv2</template>
- <name>Template Module Interfaces SNMPv2</name>
- <description>Template Module Interfaces&#13;
-&#13;
-MIBs used:&#13;
-IF-MIB&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <groups>
- <group>
- <name>Templates/Modules</name>
- </group>
- </groups>
- <applications>
- <application>
- <name>Network interfaces</name>
- </application>
- </applications>
- <discovery_rules>
- <discovery_rule>
- <name>Network interfaces discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]</snmp_oid>
- <key>net.if.discovery</key>
- <delay>1h</delay>
- <filter>
- <evaltype>AND</evaltype>
- <conditions>
- <condition>
- <macro>{#IFADMINSTATUS}</macro>
- <value>{$NET.IF.IFADMINSTATUS.MATCHES}</value>
- <formulaid>A</formulaid>
- </condition>
- <condition>
- <macro>{#IFADMINSTATUS}</macro>
- <value>{$NET.IF.IFADMINSTATUS.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>B</formulaid>
- </condition>
- <condition>
- <macro>{#IFOPERSTATUS}</macro>
- <value>{$NET.IF.IFOPERSTATUS.MATCHES}</value>
- <formulaid>C</formulaid>
- </condition>
- <condition>
- <macro>{#IFOPERSTATUS}</macro>
- <value>{$NET.IF.IFOPERSTATUS.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>D</formulaid>
- </condition>
- <condition>
- <macro>{#IFNAME}</macro>
- <value>{$NET.IF.IFNAME.MATCHES}</value>
- <formulaid>E</formulaid>
- </condition>
- <condition>
- <macro>{#IFNAME}</macro>
- <value>{$NET.IF.IFNAME.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>F</formulaid>
- </condition>
- <condition>
- <macro>{#IFDESCR}</macro>
- <value>{$NET.IF.IFDESCR.MATCHES}</value>
- <formulaid>G</formulaid>
- </condition>
- <condition>
- <macro>{#IFDESCR}</macro>
- <value>{$NET.IF.IFDESCR.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>H</formulaid>
- </condition>
- <condition>
- <macro>{#IFALIAS}</macro>
- <value>{$NET.IF.IFALIAS.MATCHES}</value>
- <formulaid>I</formulaid>
- </condition>
- <condition>
- <macro>{#IFALIAS}</macro>
- <value>{$NET.IF.IFALIAS.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>J</formulaid>
- </condition>
- <condition>
- <macro>{#IFTYPE}</macro>
- <value>{$NET.IF.IFTYPE.MATCHES}</value>
- <formulaid>K</formulaid>
- </condition>
- <condition>
- <macro>{#IFTYPE}</macro>
- <value>{$NET.IF.IFTYPE.NOT_MATCHES}</value>
- <operator>NOT_MATCHES_REGEX</operator>
- <formulaid>L</formulaid>
- </condition>
- </conditions>
- </filter>
- <description>Discovering interfaces from IF-MIB.</description>
- <item_prototypes>
- <item_prototype>
- <name>Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}</snmp_oid>
- <key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <description>MIB: IF-MIB&#13;
-The number of inbound packets which were chosen to be discarded&#13;
-even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.&#13;
-One possible reason for discarding such a packet could be to free up buffer space.&#13;
-Discontinuities in the value of this counter can occur at re-initialization of the management system,&#13;
-and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>CHANGE_PER_SECOND</type>
- <params/>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}</snmp_oid>
- <key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <description>MIB: IF-MIB&#13;
-For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>CHANGE_PER_SECOND</type>
- <params/>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFNAME}({#IFALIAS}): Bits received</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}</snmp_oid>
- <key>net.if.in[ifHCInOctets.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <units>bps</units>
- <description>MIB: IF-MIB&#13;
-The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</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}({#IFALIAS}): Outbound packets discarded</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}</snmp_oid>
- <key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <description>MIB: IF-MIB&#13;
-The number of outbound packets which were chosen to be discarded&#13;
-even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.&#13;
-One possible reason for discarding such a packet could be to free up buffer space.&#13;
-Discontinuities in the value of this counter can occur at re-initialization of the management system,&#13;
-and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>CHANGE_PER_SECOND</type>
- <params/>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}</snmp_oid>
- <key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <description>MIB: IF-MIB&#13;
-For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</name>
- </application_prototype>
- </application_prototypes>
- <preprocessing>
- <step>
- <type>CHANGE_PER_SECOND</type>
- <params/>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>Interface {#IFNAME}({#IFALIAS}): Bits sent</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}</snmp_oid>
- <key>net.if.out[ifHCOutOctets.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>7d</history>
- <units>bps</units>
- <description>MIB: IF-MIB&#13;
-The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</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}({#IFALIAS}): Speed</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}</snmp_oid>
- <key>net.if.speed[ifHighSpeed.{#SNMPINDEX}]</key>
- <delay>5m</delay>
- <history>7d</history>
- <trends>0d</trends>
- <units>bps</units>
- <description>MIB: IF-MIB&#13;
-An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</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}({#IFALIAS}): Operational status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}</snmp_oid>
- <key>net.if.status[ifOperStatus.{#SNMPINDEX}]</key>
- <history>7d</history>
- <trends>0</trends>
- <description>MIB: IF-MIB&#13;
-The current operational state of the interface.&#13;
-- The testing(3) state indicates that no operational packet scan be passed&#13;
-- If ifAdminStatus is down(2) then ifOperStatus should be down(2)&#13;
-- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic&#13;
-- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)&#13;
-- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state&#13;
-- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</name>
- </application_prototype>
- </application_prototypes>
- <valuemap>
- <name>IF-MIB::ifOperStatus</name>
- </valuemap>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{last()}&lt;&gt;2</recovery_expression>
- <name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>AVERAGE</priority>
- <description>This trigger expression works as follows:&#13;
-1. Can be triggered if operations status is down.&#13;
-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.&#13;
-3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)&#13;
-&#13;
-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}({#IFALIAS}): Interface type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}</snmp_oid>
- <key>net.if.type[ifType.{#SNMPINDEX}]</key>
- <delay>1h</delay>
- <history>7d</history>
- <trends>0d</trends>
- <description>MIB: IF-MIB&#13;
-The type of interface.&#13;
-Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),&#13;
-through updating the syntax of the IANAifType textual convention.</description>
- <application_prototypes>
- <application_prototype>
- <name>Interface {#IFNAME}({#IFALIAS})</name>
- </application_prototype>
- </application_prototypes>
- <valuemap>
- <name>IF-MIB::ifType</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 Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&lt;0 and {Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0&#13;
-and (&#13;
-{Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or&#13;
-{Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or&#13;
-{Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or&#13;
-{Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or&#13;
-{Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or&#13;
-{Template Module Interfaces SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=117&#13;
-)&#13;
-and&#13;
-({Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2)</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>({Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&gt;0 and {Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}&gt;0) or&#13;
-({Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)</recovery_expression>
- <name>Interface {#IFNAME}({#IFALIAS}): 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}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- <trigger_prototype>
- <expression>({Template Module Interfaces SNMPv2:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or&#13;
-{Template Module Interfaces SNMPv2:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and&#13;
-{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces SNMPv2:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and&#13;
-{Template Module Interfaces SNMPv2:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}</recovery_expression>
- <name>Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( &gt; {$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}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{Template Module Interfaces SNMPv2:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}&#13;
-or {Template Module Interfaces SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces SNMPv2:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8&#13;
-and {Template Module Interfaces SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
- <name>Interface {#IFNAME}({#IFALIAS}): High error rate ( &gt; {$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}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- </trigger_prototypes>
- <graph_prototypes>
- <graph_prototype>
- <name>Interface {#IFNAME}({#IFALIAS}): Network traffic</name>
- <graph_items>
- <graph_item>
- <drawtype>GRADIENT_LINE</drawtype>
- <color>1A7C11</color>
- <item>
- <host>Template Module Interfaces SNMPv2</host>
- <key>net.if.in[ifHCInOctets.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>1</sortorder>
- <drawtype>BOLD_LINE</drawtype>
- <color>2774A4</color>
- <item>
- <host>Template Module Interfaces SNMPv2</host>
- <key>net.if.out[ifHCOutOctets.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>2</sortorder>
- <color>F63100</color>
- <yaxisside>RIGHT</yaxisside>
- <item>
- <host>Template Module Interfaces SNMPv2</host>
- <key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>3</sortorder>
- <color>A54F10</color>
- <yaxisside>RIGHT</yaxisside>
- <item>
- <host>Template Module Interfaces SNMPv2</host>
- <key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>4</sortorder>
- <color>FC6EA3</color>
- <yaxisside>RIGHT</yaxisside>
- <item>
- <host>Template Module Interfaces SNMPv2</host>
- <key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
- </item>
- </graph_item>
- <graph_item>
- <sortorder>5</sortorder>
- <color>6C59DC</color>
- <yaxisside>RIGHT</yaxisside>
- <item>
- <host>Template Module Interfaces SNMPv2</host>
- <key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</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>
- </macro>
- <macro>
- <macro>{$IFCONTROL}</macro>
- <value>1</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFADMINSTATUS.MATCHES}</macro>
- <value>^.*</value>
- <description>Ignore notPresent(6)</description>
- </macro>
- <macro>
- <macro>{$NET.IF.IFADMINSTATUS.NOT_MATCHES}</macro>
- <value>^2$</value>
- <description>Ignore down(2) administrative status</description>
- </macro>
- <macro>
- <macro>{$NET.IF.IFALIAS.MATCHES}</macro>
- <value>.*</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFALIAS.NOT_MATCHES}</macro>
- <value>CHANGE_IF_NEEDED</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFDESCR.MATCHES}</macro>
- <value>.*</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFDESCR.NOT_MATCHES}</macro>
- <value>CHANGE_IF_NEEDED</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>
- <macro>
- <macro>{$NET.IF.IFOPERSTATUS.MATCHES}</macro>
- <value>^.*$</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFOPERSTATUS.NOT_MATCHES}</macro>
- <value>^6$</value>
- <description>Ignore notPresent(6)</description>
- </macro>
- <macro>
- <macro>{$NET.IF.IFTYPE.MATCHES}</macro>
- <value>.*</value>
- </macro>
- <macro>
- <macro>{$NET.IF.IFTYPE.NOT_MATCHES}</macro>
- <value>CHANGE_IF_NEEDED</value>
- </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}({#IFALIAS}): Network traffic</name>
- <host>Template Module Interfaces SNMPv2</host>
- </resource>
- <width>750</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>
- </templates>
- <value_maps>
- <value_map>
- <name>IF-MIB::ifOperStatus</name>
- <mappings>
- <mapping>
- <value>1</value>
- <newvalue>up</newvalue>
- </mapping>
- <mapping>
- <value>2</value>
- <newvalue>down</newvalue>
- </mapping>
- <mapping>
- <value>3</value>
- <newvalue>testing</newvalue>
- </mapping>
- <mapping>
- <value>4</value>
- <newvalue>unknown</newvalue>
- </mapping>
- <mapping>
- <value>5</value>
- <newvalue>dormant</newvalue>
- </mapping>
- <mapping>
- <value>6</value>
- <newvalue>notPresent</newvalue>
- </mapping>
- <mapping>
- <value>7</value>
- <newvalue>lowerLayerDown</newvalue>
- </mapping>
- </mappings>
- </value_map>
- <value_map>
- <name>IF-MIB::ifType</name>
- <mappings>
- <mapping>
- <value>1</value>
- <newvalue>other</newvalue>
- </mapping>
- <mapping>
- <value>2</value>
- <newvalue>regular1822</newvalue>
- </mapping>
- <mapping>
- <value>3</value>
- <newvalue>hdh1822</newvalue>
- </mapping>
- <mapping>
- <value>4</value>
- <newvalue>ddnX25</newvalue>
- </mapping>
- <mapping>
- <value>5</value>
- <newvalue>rfc877x25</newvalue>
- </mapping>
- <mapping>
- <value>6</value>
- <newvalue>ethernetCsmacd</newvalue>
- </mapping>
- <mapping>
- <value>7</value>
- <newvalue>iso88023Csmacd</newvalue>
- </mapping>
- <mapping>
- <value>8</value>
- <newvalue>iso88024TokenBus</newvalue>
- </mapping>
- <mapping>
- <value>9</value>
- <newvalue>iso88025TokenRing</newvalue>
- </mapping>
- <mapping>
- <value>10</value>
- <newvalue>iso88026Man</newvalue>
- </mapping>
- <mapping>
- <value>11</value>
- <newvalue>starLan</newvalue>
- </mapping>
- <mapping>
- <value>12</value>
- <newvalue>proteon10Mbit</newvalue>
- </mapping>
- <mapping>
- <value>13</value>
- <newvalue>proteon80Mbit</newvalue>
- </mapping>
- <mapping>
- <value>14</value>
- <newvalue>hyperchannel</newvalue>
- </mapping>
- <mapping>
- <value>15</value>
- <newvalue>fddi</newvalue>
- </mapping>
- <mapping>
- <value>16</value>
- <newvalue>lapb</newvalue>
- </mapping>
- <mapping>
- <value>17</value>
- <newvalue>sdlc</newvalue>
- </mapping>
- <mapping>
- <value>18</value>
- <newvalue>ds1</newvalue>
- </mapping>
- <mapping>
- <value>19</value>
- <newvalue>e1</newvalue>
- </mapping>
- <mapping>
- <value>20</value>
- <newvalue>basicISDN</newvalue>
- </mapping>
- <mapping>
- <value>21</value>
- <newvalue>primaryISDN</newvalue>
- </mapping>
- <mapping>
- <value>22</value>
- <newvalue>propPointToPointSerial</newvalue>
- </mapping>
- <mapping>
- <value>23</value>
- <newvalue>ppp</newvalue>
- </mapping>
- <mapping>
- <value>24</value>
- <newvalue>softwareLoopback</newvalue>
- </mapping>
- <mapping>
- <value>25</value>
- <newvalue>eon</newvalue>
- </mapping>
- <mapping>
- <value>26</value>
- <newvalue>ethernet3Mbit</newvalue>
- </mapping>
- <mapping>
- <value>27</value>
- <newvalue>nsip</newvalue>
- </mapping>
- <mapping>
- <value>28</value>
- <newvalue>slip</newvalue>
- </mapping>
- <mapping>
- <value>29</value>
- <newvalue>ultra</newvalue>
- </mapping>
- <mapping>
- <value>30</value>
- <newvalue>ds3</newvalue>
- </mapping>
- <mapping>
- <value>31</value>
- <newvalue>sip</newvalue>
- </mapping>
- <mapping>
- <value>32</value>
- <newvalue>frameRelay</newvalue>
- </mapping>
- <mapping>
- <value>33</value>
- <newvalue>rs232</newvalue>
- </mapping>
- <mapping>
- <value>34</value>
- <newvalue>para</newvalue>
- </mapping>
- <mapping>
- <value>35</value>
- <newvalue>arcnet</newvalue>
- </mapping>
- <mapping>
- <value>36</value>
- <newvalue>arcnetPlus</newvalue>
- </mapping>
- <mapping>
- <value>37</value>
- <newvalue>atm</newvalue>
- </mapping>
- <mapping>
- <value>38</value>
- <newvalue>miox25</newvalue>
- </mapping>
- <mapping>
- <value>39</value>
- <newvalue>sonet</newvalue>
- </mapping>
- <mapping>
- <value>40</value>
- <newvalue>x25ple</newvalue>
- </mapping>
- <mapping>
- <value>41</value>
- <newvalue>iso88022llc</newvalue>
- </mapping>
- <mapping>
- <value>42</value>
- <newvalue>localTalk</newvalue>
- </mapping>
- <mapping>
- <value>43</value>
- <newvalue>smdsDxi</newvalue>
- </mapping>
- <mapping>
- <value>44</value>
- <newvalue>frameRelayService</newvalue>
- </mapping>
- <mapping>
- <value>45</value>
- <newvalue>v35</newvalue>
- </mapping>
- <mapping>
- <value>46</value>
- <newvalue>hssi</newvalue>
- </mapping>
- <mapping>
- <value>47</value>
- <newvalue>hippi</newvalue>
- </mapping>
- <mapping>
- <value>48</value>
- <newvalue>modem</newvalue>
- </mapping>
- <mapping>
- <value>49</value>
- <newvalue>aal5</newvalue>
- </mapping>
- <mapping>
- <value>50</value>
- <newvalue>sonetPath</newvalue>
- </mapping>
- <mapping>
- <value>51</value>
- <newvalue>sonetVT</newvalue>
- </mapping>
- <mapping>
- <value>52</value>
- <newvalue>smdsIcip</newvalue>
- </mapping>
- <mapping>
- <value>53</value>
- <newvalue>propVirtual</newvalue>
- </mapping>
- <mapping>
- <value>54</value>
- <newvalue>propMultiplexor</newvalue>
- </mapping>
- <mapping>
- <value>55</value>
- <newvalue>ieee80212</newvalue>
- </mapping>
- <mapping>
- <value>56</value>
- <newvalue>fibreChannel</newvalue>
- </mapping>
- <mapping>
- <value>57</value>
- <newvalue>hippiInterface</newvalue>
- </mapping>
- <mapping>
- <value>58</value>
- <newvalue>frameRelayInterconnect</newvalue>
- </mapping>
- <mapping>
- <value>59</value>
- <newvalue>aflane8023</newvalue>
- </mapping>
- <mapping>
- <value>60</value>
- <newvalue>aflane8025</newvalue>
- </mapping>
- <mapping>
- <value>61</value>
- <newvalue>cctEmul</newvalue>
- </mapping>
- <mapping>
- <value>62</value>
- <newvalue>fastEther</newvalue>
- </mapping>
- <mapping>
- <value>63</value>
- <newvalue>isdn</newvalue>
- </mapping>
- <mapping>
- <value>64</value>
- <newvalue>v11</newvalue>
- </mapping>
- <mapping>
- <value>65</value>
- <newvalue>v36</newvalue>
- </mapping>
- <mapping>
- <value>66</value>
- <newvalue>g703at64k</newvalue>
- </mapping>
- <mapping>
- <value>67</value>
- <newvalue>g703at2mb</newvalue>
- </mapping>
- <mapping>
- <value>68</value>
- <newvalue>qllc</newvalue>
- </mapping>
- <mapping>
- <value>69</value>
- <newvalue>fastEtherFX</newvalue>
- </mapping>
- <mapping>
- <value>70</value>
- <newvalue>channel</newvalue>
- </mapping>
- <mapping>
- <value>71</value>
- <newvalue>ieee80211</newvalue>
- </mapping>
- <mapping>
- <value>72</value>
- <newvalue>ibm370parChan</newvalue>
- </mapping>
- <mapping>
- <value>73</value>
- <newvalue>escon</newvalue>
- </mapping>
- <mapping>
- <value>74</value>
- <newvalue>dlsw</newvalue>
- </mapping>
- <mapping>
- <value>75</value>
- <newvalue>isdns</newvalue>
- </mapping>
- <mapping>
- <value>76</value>
- <newvalue>isdnu</newvalue>
- </mapping>
- <mapping>
- <value>77</value>
- <newvalue>lapd</newvalue>
- </mapping>
- <mapping>
- <value>78</value>
- <newvalue>ipSwitch</newvalue>
- </mapping>
- <mapping>
- <value>79</value>
- <newvalue>rsrb</newvalue>
- </mapping>
- <mapping>
- <value>80</value>
- <newvalue>atmLogical</newvalue>
- </mapping>
- <mapping>
- <value>81</value>
- <newvalue>ds0</newvalue>
- </mapping>
- <mapping>
- <value>82</value>
- <newvalue>ds0Bundle</newvalue>
- </mapping>
- <mapping>
- <value>83</value>
- <newvalue>bsc</newvalue>
- </mapping>
- <mapping>
- <value>84</value>
- <newvalue>async</newvalue>
- </mapping>
- <mapping>
- <value>85</value>
- <newvalue>cnr</newvalue>
- </mapping>
- <mapping>
- <value>86</value>
- <newvalue>iso88025Dtr</newvalue>
- </mapping>
- <mapping>
- <value>87</value>
- <newvalue>eplrs</newvalue>
- </mapping>
- <mapping>
- <value>88</value>
- <newvalue>arap</newvalue>
- </mapping>
- <mapping>
- <value>89</value>
- <newvalue>propCnls</newvalue>
- </mapping>
- <mapping>
- <value>90</value>
- <newvalue>hostPad</newvalue>
- </mapping>
- <mapping>
- <value>91</value>
- <newvalue>termPad</newvalue>
- </mapping>
- <mapping>
- <value>92</value>
- <newvalue>frameRelayMPI</newvalue>
- </mapping>
- <mapping>
- <value>93</value>
- <newvalue>x213</newvalue>
- </mapping>
- <mapping>
- <value>94</value>
- <newvalue>adsl</newvalue>
- </mapping>
- <mapping>
- <value>95</value>
- <newvalue>radsl</newvalue>
- </mapping>
- <mapping>
- <value>96</value>
- <newvalue>sdsl</newvalue>
- </mapping>
- <mapping>
- <value>97</value>
- <newvalue>vdsl</newvalue>
- </mapping>
- <mapping>
- <value>98</value>
- <newvalue>iso88025CRFPInt</newvalue>
- </mapping>
- <mapping>
- <value>99</value>
- <newvalue>myrinet</newvalue>
- </mapping>
- <mapping>
- <value>100</value>
- <newvalue>voiceEM</newvalue>
- </mapping>
- <mapping>
- <value>101</value>
- <newvalue>voiceFXO</newvalue>
- </mapping>
- <mapping>
- <value>102</value>
- <newvalue>voiceFXS</newvalue>
- </mapping>
- <mapping>
- <value>103</value>
- <newvalue>voiceEncap</newvalue>
- </mapping>
- <mapping>
- <value>104</value>
- <newvalue>voiceOverIp</newvalue>
- </mapping>
- <mapping>
- <value>105</value>
- <newvalue>atmDxi</newvalue>
- </mapping>
- <mapping>
- <value>106</value>
- <newvalue>atmFuni</newvalue>
- </mapping>
- <mapping>
- <value>107</value>
- <newvalue>atmIma</newvalue>
- </mapping>
- <mapping>
- <value>108</value>
- <newvalue>pppMultilinkBundle</newvalue>
- </mapping>
- <mapping>
- <value>109</value>
- <newvalue>ipOverCdlc</newvalue>
- </mapping>
- <mapping>
- <value>110</value>
- <newvalue>ipOverClaw</newvalue>
- </mapping>
- <mapping>
- <value>111</value>
- <newvalue>stackToStack</newvalue>
- </mapping>
- <mapping>
- <value>112</value>
- <newvalue>virtualIpAddress</newvalue>
- </mapping>
- <mapping>
- <value>113</value>
- <newvalue>mpc</newvalue>
- </mapping>
- <mapping>
- <value>114</value>
- <newvalue>ipOverAtm</newvalue>
- </mapping>
- <mapping>
- <value>115</value>
- <newvalue>iso88025Fiber</newvalue>
- </mapping>
- <mapping>
- <value>116</value>
- <newvalue>tdlc</newvalue>
- </mapping>
- <mapping>
- <value>117</value>
- <newvalue>gigabitEthernet</newvalue>
- </mapping>
- <mapping>
- <value>118</value>
- <newvalue>hdlc</newvalue>
- </mapping>
- <mapping>
- <value>119</value>
- <newvalue>lapf</newvalue>
- </mapping>
- <mapping>
- <value>120</value>
- <newvalue>v37</newvalue>
- </mapping>
- <mapping>
- <value>121</value>
- <newvalue>x25mlp</newvalue>
- </mapping>
- <mapping>
- <value>122</value>
- <newvalue>x25huntGroup</newvalue>
- </mapping>
- <mapping>
- <value>123</value>
- <newvalue>trasnpHdlc</newvalue>
- </mapping>
- <mapping>
- <value>124</value>
- <newvalue>interleave</newvalue>
- </mapping>
- <mapping>
- <value>125</value>
- <newvalue>fast</newvalue>
- </mapping>
- <mapping>
- <value>126</value>
- <newvalue>ip</newvalue>
- </mapping>
- <mapping>
- <value>127</value>
- <newvalue>docsCableMaclayer</newvalue>
- </mapping>
- <mapping>
- <value>128</value>
- <newvalue>docsCableDownstream</newvalue>
- </mapping>
- <mapping>
- <value>129</value>
- <newvalue>docsCableUpstream</newvalue>
- </mapping>
- <mapping>
- <value>130</value>
- <newvalue>a12MppSwitch</newvalue>
- </mapping>
- <mapping>
- <value>131</value>
- <newvalue>tunnel</newvalue>
- </mapping>
- <mapping>
- <value>132</value>
- <newvalue>coffee</newvalue>
- </mapping>
- <mapping>
- <value>133</value>
- <newvalue>ces</newvalue>
- </mapping>
- <mapping>
- <value>134</value>
- <newvalue>atmSubInterface</newvalue>
- </mapping>
- <mapping>
- <value>135</value>
- <newvalue>l2vlan</newvalue>
- </mapping>
- <mapping>
- <value>136</value>
- <newvalue>l3ipvlan</newvalue>
- </mapping>
- <mapping>
- <value>137</value>
- <newvalue>l3ipxvlan</newvalue>
- </mapping>
- <mapping>
- <value>138</value>
- <newvalue>digitalPowerline</newvalue>
- </mapping>
- <mapping>
- <value>139</value>
- <newvalue>mediaMailOverIp</newvalue>
- </mapping>
- <mapping>
- <value>140</value>
- <newvalue>dtm</newvalue>
- </mapping>
- <mapping>
- <value>141</value>
- <newvalue>dcn</newvalue>
- </mapping>
- <mapping>
- <value>142</value>
- <newvalue>ipForward</newvalue>
- </mapping>
- <mapping>
- <value>143</value>
- <newvalue>msdsl</newvalue>
- </mapping>
- <mapping>
- <value>144</value>
- <newvalue>ieee1394</newvalue>
- </mapping>
- <mapping>
- <value>145</value>
- <newvalue>if-gsn</newvalue>
- </mapping>
- <mapping>
- <value>146</value>
- <newvalue>dvbRccMacLayer</newvalue>
- </mapping>
- <mapping>
- <value>147</value>
- <newvalue>dvbRccDownstream</newvalue>
- </mapping>
- <mapping>
- <value>148</value>
- <newvalue>dvbRccUpstream</newvalue>
- </mapping>
- <mapping>
- <value>149</value>
- <newvalue>atmVirtual</newvalue>
- </mapping>
- <mapping>
- <value>150</value>
- <newvalue>mplsTunnel</newvalue>
- </mapping>
- <mapping>
- <value>151</value>
- <newvalue>srp</newvalue>
- </mapping>
- <mapping>
- <value>152</value>
- <newvalue>voiceOverAtm</newvalue>
- </mapping>
- <mapping>
- <value>153</value>
- <newvalue>voiceOverFrameRelay</newvalue>
- </mapping>
- <mapping>
- <value>154</value>
- <newvalue>idsl</newvalue>
- </mapping>
- <mapping>
- <value>155</value>
- <newvalue>compositeLink</newvalue>
- </mapping>
- <mapping>
- <value>156</value>
- <newvalue>ss7SigLink</newvalue>
- </mapping>
- <mapping>
- <value>157</value>
- <newvalue>propWirelessP2P</newvalue>
- </mapping>
- <mapping>
- <value>158</value>
- <newvalue>frForward</newvalue>
- </mapping>
- <mapping>
- <value>159</value>
- <newvalue>rfc1483</newvalue>
- </mapping>
- <mapping>
- <value>160</value>
- <newvalue>usb</newvalue>
- </mapping>
- <mapping>
- <value>161</value>
- <newvalue>ieee8023adLag</newvalue>
- </mapping>
- <mapping>
- <value>162</value>
- <newvalue>bgppolicyaccounting</newvalue>
- </mapping>
- <mapping>
- <value>163</value>
- <newvalue>frf16MfrBundle</newvalue>
- </mapping>
- <mapping>
- <value>164</value>
- <newvalue>h323Gatekeeper</newvalue>
- </mapping>
- <mapping>
- <value>165</value>
- <newvalue>h323Proxy</newvalue>
- </mapping>
- <mapping>
- <value>166</value>
- <newvalue>mpls</newvalue>
- </mapping>
- <mapping>
- <value>167</value>
- <newvalue>mfSigLink</newvalue>
- </mapping>
- <mapping>
- <value>168</value>
- <newvalue>hdsl2</newvalue>
- </mapping>
- <mapping>
- <value>169</value>
- <newvalue>shdsl</newvalue>
- </mapping>
- <mapping>
- <value>170</value>
- <newvalue>ds1FDL</newvalue>
- </mapping>
- <mapping>
- <value>171</value>
- <newvalue>pos</newvalue>
- </mapping>
- <mapping>
- <value>172</value>
- <newvalue>dvbAsiIn</newvalue>
- </mapping>
- <mapping>
- <value>173</value>
- <newvalue>dvbAsiOut</newvalue>
- </mapping>
- <mapping>
- <value>174</value>
- <newvalue>plc</newvalue>
- </mapping>
- <mapping>
- <value>175</value>
- <newvalue>nfas</newvalue>
- </mapping>
- <mapping>
- <value>176</value>
- <newvalue>tr008</newvalue>
- </mapping>
- <mapping>
- <value>177</value>
- <newvalue>gr303RDT</newvalue>
- </mapping>
- <mapping>
- <value>178</value>
- <newvalue>gr303IDT</newvalue>
- </mapping>
- <mapping>
- <value>179</value>
- <newvalue>isup</newvalue>
- </mapping>
- <mapping>
- <value>180</value>
- <newvalue>propDocsWirelessMaclayer</newvalue>
- </mapping>
- <mapping>
- <value>181</value>
- <newvalue>propDocsWirelessDownstream</newvalue>
- </mapping>
- <mapping>
- <value>182</value>
- <newvalue>propDocsWirelessUpstream</newvalue>
- </mapping>
- <mapping>
- <value>183</value>
- <newvalue>hiperlan2</newvalue>
- </mapping>
- <mapping>
- <value>184</value>
- <newvalue>propBWAp2Mp</newvalue>
- </mapping>
- <mapping>
- <value>185</value>
- <newvalue>sonetOverheadChannel</newvalue>
- </mapping>
- <mapping>
- <value>186</value>
- <newvalue>digitalWrapperOverheadChannel</newvalue>
- </mapping>
- <mapping>
- <value>187</value>
- <newvalue>aal2</newvalue>
- </mapping>
- <mapping>
- <value>188</value>
- <newvalue>radioMAC</newvalue>
- </mapping>
- <mapping>
- <value>189</value>
- <newvalue>atmRadio</newvalue>
- </mapping>
- <mapping>
- <value>190</value>
- <newvalue>imt</newvalue>
- </mapping>
- <mapping>
- <value>191</value>
- <newvalue>mvl</newvalue>
- </mapping>
- <mapping>
- <value>192</value>
- <newvalue>reachDSL</newvalue>
- </mapping>
- <mapping>
- <value>193</value>
- <newvalue>frDlciEndPt</newvalue>
- </mapping>
- <mapping>
- <value>194</value>
- <newvalue>atmVciEndPt</newvalue>
- </mapping>
- <mapping>
- <value>195</value>
- <newvalue>opticalChannel</newvalue>
- </mapping>
- <mapping>
- <value>196</value>
- <newvalue>opticalTransport</newvalue>
- </mapping>
- <mapping>
- <value>197</value>
- <newvalue>propAtm</newvalue>
- </mapping>
- <mapping>
- <value>198</value>
- <newvalue>voiceOverCable</newvalue>
- </mapping>
- <mapping>
- <value>199</value>
- <newvalue>infiniband</newvalue>
- </mapping>
- <mapping>
- <value>200</value>
- <newvalue>teLink</newvalue>
- </mapping>
- <mapping>
- <value>201</value>
- <newvalue>q2931</newvalue>
- </mapping>
- <mapping>
- <value>202</value>
- <newvalue>virtualTg</newvalue>
- </mapping>
- <mapping>
- <value>203</value>
- <newvalue>sipTg</newvalue>
- </mapping>
- <mapping>
- <value>204</value>
- <newvalue>sipSig</newvalue>
- </mapping>
- <mapping>
- <value>205</value>
- <newvalue>docsCableUpstreamChannel</newvalue>
- </mapping>
- <mapping>
- <value>206</value>
- <newvalue>econet</newvalue>
- </mapping>
- <mapping>
- <value>207</value>
- <newvalue>pon155</newvalue>
- </mapping>
- <mapping>
- <value>208</value>
- <newvalue>pon622</newvalue>
- </mapping>
- <mapping>
- <value>209</value>
- <newvalue>bridge</newvalue>
- </mapping>
- <mapping>
- <value>210</value>
- <newvalue>linegroup</newvalue>
- </mapping>
- <mapping>
- <value>211</value>
- <newvalue>voiceEMFGD</newvalue>
- </mapping>
- <mapping>
- <value>212</value>
- <newvalue>voiceFGDEANA</newvalue>
- </mapping>
- <mapping>
- <value>213</value>
- <newvalue>voiceDID</newvalue>
- </mapping>
- <mapping>
- <value>214</value>
- <newvalue>mpegTransport</newvalue>
- </mapping>
- <mapping>
- <value>215</value>
- <newvalue>sixToFour</newvalue>
- </mapping>
- <mapping>
- <value>216</value>
- <newvalue>gtp</newvalue>
- </mapping>
- <mapping>
- <value>217</value>
- <newvalue>pdnEtherLoop1</newvalue>
- </mapping>
- <mapping>
- <value>218</value>
- <newvalue>pdnEtherLoop2</newvalue>
- </mapping>
- <mapping>
- <value>219</value>
- <newvalue>opticalChannelGroup</newvalue>
- </mapping>
- <mapping>
- <value>220</value>
- <newvalue>homepna</newvalue>
- </mapping>
- <mapping>
- <value>221</value>
- <newvalue>gfp</newvalue>
- </mapping>
- <mapping>
- <value>222</value>
- <newvalue>ciscoISLvlan</newvalue>
- </mapping>
- <mapping>
- <value>223</value>
- <newvalue>actelisMetaLOOP</newvalue>
- </mapping>
- <mapping>
- <value>224</value>
- <newvalue>fcipLink</newvalue>
- </mapping>
- <mapping>
- <value>225</value>
- <newvalue>rpr</newvalue>
- </mapping>
- <mapping>
- <value>226</value>
- <newvalue>qam</newvalue>
- </mapping>
- <mapping>
- <value>227</value>
- <newvalue>lmp</newvalue>
- </mapping>
- <mapping>
- <value>228</value>
- <newvalue>cblVectaStar</newvalue>
- </mapping>
- <mapping>
- <value>229</value>
- <newvalue>docsCableMCmtsDownstream</newvalue>
- </mapping>
- <mapping>
- <value>230</value>
- <newvalue>adsl2</newvalue>
- </mapping>
- <mapping>
- <value>231</value>
- <newvalue>macSecControlledIF</newvalue>
- </mapping>
- <mapping>
- <value>232</value>
- <newvalue>macSecUncontrolledIF</newvalue>
- </mapping>
- <mapping>
- <value>233</value>
- <newvalue>aviciOpticalEther</newvalue>
- </mapping>
- <mapping>
- <value>234</value>
- <newvalue>atmbond</newvalue>
- </mapping>
- <mapping>
- <value>235</value>
- <newvalue>voiceFGDOS</newvalue>
- </mapping>
- <mapping>
- <value>236</value>
- <newvalue>mocaVersion1</newvalue>
- </mapping>
- <mapping>
- <value>237</value>
- <newvalue>ieee80216WMAN</newvalue>
- </mapping>
- <mapping>
- <value>238</value>
- <newvalue>adsl2plus</newvalue>
- </mapping>
- <mapping>
- <value>239</value>
- <newvalue>dvbRcsMacLayer</newvalue>
- </mapping>
- <mapping>
- <value>240</value>
- <newvalue>dvbTdm</newvalue>
- </mapping>
- <mapping>
- <value>241</value>
- <newvalue>dvbRcsTdma</newvalue>
- </mapping>
- <mapping>
- <value>242</value>
- <newvalue>x86Laps</newvalue>
- </mapping>
- <mapping>
- <value>243</value>
- <newvalue>wwanPP</newvalue>
- </mapping>
- <mapping>
- <value>244</value>
- <newvalue>wwanPP2</newvalue>
- </mapping>
- <mapping>
- <value>245</value>
- <newvalue>voiceEBS</newvalue>
- </mapping>
- <mapping>
- <value>246</value>
- <newvalue>ifPwType</newvalue>
- </mapping>
- <mapping>
- <value>247</value>
- <newvalue>ilan</newvalue>
- </mapping>
- <mapping>
- <value>248</value>
- <newvalue>pip</newvalue>
- </mapping>
- <mapping>
- <value>249</value>
- <newvalue>aluELP</newvalue>
- </mapping>
- <mapping>
- <value>250</value>
- <newvalue>gpon</newvalue>
- </mapping>
- <mapping>
- <value>251</value>
- <newvalue>vdsl2</newvalue>
- </mapping>
- <mapping>
- <value>252</value>
- <newvalue>capwapDot11Profile</newvalue>
- </mapping>
- <mapping>
- <value>253</value>
- <newvalue>capwapDot11Bss</newvalue>
- </mapping>
- <mapping>
- <value>254</value>
- <newvalue>capwapWtpVirtualRadio</newvalue>
- </mapping>
- <mapping>
- <value>255</value>
- <newvalue>bits</newvalue>
- </mapping>
- <mapping>
- <value>256</value>
- <newvalue>docsCableUpstreamRfPort</newvalue>
- </mapping>
- <mapping>
- <value>257</value>
- <newvalue>cableDownstreamRfPort</newvalue>
- </mapping>
- <mapping>
- <value>258</value>
- <newvalue>vmwareVirtualNic</newvalue>
- </mapping>
- <mapping>
- <value>259</value>
- <newvalue>ieee802154</newvalue>
- </mapping>
- <mapping>
- <value>260</value>
- <newvalue>otnOdu</newvalue>
- </mapping>
- <mapping>
- <value>261</value>
- <newvalue>otnOtu</newvalue>
- </mapping>
- <mapping>
- <value>262</value>
- <newvalue>ifVfiType</newvalue>
- </mapping>
- <mapping>
- <value>263</value>
- <newvalue>g9981</newvalue>
- </mapping>
- <mapping>
- <value>264</value>
- <newvalue>g9982</newvalue>
- </mapping>
- <mapping>
- <value>265</value>
- <newvalue>g9983</newvalue>
- </mapping>
- <mapping>
- <value>266</value>
- <newvalue>aluEpon</newvalue>
- </mapping>
- <mapping>
- <value>267</value>
- <newvalue>aluEponOnu</newvalue>
- </mapping>
- <mapping>
- <value>268</value>
- <newvalue>aluEponPhysicalUni</newvalue>
- </mapping>
- <mapping>
- <value>269</value>
- <newvalue>aluEponLogicalLink</newvalue>
- </mapping>
- <mapping>
- <value>270</value>
- <newvalue>aluGponOnu</newvalue>
- </mapping>
- <mapping>
- <value>271</value>
- <newvalue>aluGponPhysicalUni</newvalue>
- </mapping>
- <mapping>
- <value>272</value>
- <newvalue>vmwareNicTeam</newvalue>
- </mapping>
- <mapping>
- <value>277</value>
- <newvalue>docsOfdmDownstream</newvalue>
- </mapping>
- <mapping>
- <value>278</value>
- <newvalue>docsOfdmaUpstream</newvalue>
- </mapping>
- <mapping>
- <value>279</value>
- <newvalue>gfast</newvalue>
- </mapping>
- <mapping>
- <value>280</value>
- <newvalue>sdci</newvalue>
- </mapping>
- <mapping>
- <value>281</value>
- <newvalue>xboxWireless</newvalue>
- </mapping>
- <mapping>
- <value>282</value>
- <newvalue>fastdsl</newvalue>
- </mapping>
- <mapping>
- <value>283</value>
- <newvalue>docsCableScte55d1FwdOob</newvalue>
- </mapping>
- <mapping>
- <value>284</value>
- <newvalue>docsCableScte55d1RetOob</newvalue>
- </mapping>
- <mapping>
- <value>285</value>
- <newvalue>docsCableScte55d2DsOob</newvalue>
- </mapping>
- <mapping>
- <value>286</value>
- <newvalue>docsCableScte55d2UsOob</newvalue>
- </mapping>
- <mapping>
- <value>287</value>
- <newvalue>docsCableNdf</newvalue>
- </mapping>
- <mapping>
- <value>288</value>
- <newvalue>docsCableNdr</newvalue>
- </mapping>
- <mapping>
- <value>289</value>
- <newvalue>ptm</newvalue>
- </mapping>
- <mapping>
- <value>290</value>
- <newvalue>ghn</newvalue>
- </mapping>
- </mappings>
- </value_map>
- </value_maps>
-</zabbix_export>
diff --git a/templates/module/interfaces_win_snmp/README.md b/templates/module/interfaces_win_snmp/README.md
new file mode 100644
index 00000000000..6b5bbba9cf2
--- /dev/null
+++ b/templates/module/interfaces_win_snmp/README.md
@@ -0,0 +1,77 @@
+
+# Template Module Interfaces Windows SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+Special version of interfaces template that is required for Windows OS. Since MS doesn't support 64 bit counters but supports ifAlias and ifHighSpeed.
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$IF.ERRORS.WARN} |<p>-</p> |`2` |
+|{$IF.UTIL.MAX} |<p>-</p> |`90` |
+|{$IFCONTROL} |<p>-</p> |`1` |
+|{$NET.IF.IFADMINSTATUS.MATCHES} |<p>-</p> |`^.*$` |
+|{$NET.IF.IFADMINSTATUS.NOT_MATCHES} |<p>Ignore down(2) administrative status</p> |`^2$` |
+|{$NET.IF.IFALIAS.MATCHES} |<p>-</p> |`.*` |
+|{$NET.IF.IFALIAS.NOT_MATCHES} |<p>-</p> |`CHANGE_IF_NEEDED` |
+|{$NET.IF.IFDESCR.MATCHES} |<p>-</p> |`.*` |
+|{$NET.IF.IFDESCR.NOT_MATCHES} |<p>-</p> |`Miniport|Virtual|Teredo|Kernel|Loopback|Bluetooth|HTTPS|6to4|QoS|Layer|isatap|ISATAP` |
+|{$NET.IF.IFNAME.MATCHES} |<p>-</p> |`^.*$` |
+|{$NET.IF.IFNAME.NOT_MATCHES} |<p>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</p> |`(^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})` |
+|{$NET.IF.IFOPERSTATUS.MATCHES} |<p>-</p> |`^.*$` |
+|{$NET.IF.IFOPERSTATUS.NOT_MATCHES} |<p>Ignore notPresent(6)</p> |`^6$` |
+|{$NET.IF.IFTYPE.MATCHES} |<p>-</p> |`.*` |
+|{$NET.IF.IFTYPE.NOT_MATCHES} |<p>-</p> |`CHANGE_IF_NEEDED` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Network interfaces discovery |<p>Discovering interfaces from IF-MIB.</p> |SNMP |net.if.discovery<p>**Filter**:</p>AND <p>- A: {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- B: {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- C: {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- D: {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- E: {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- F: {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- G: {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- H: {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- I: {#IFALIAS} MATCHES_REGEX `{$NET.IF.IFALIAS.MATCHES}`</p><p>- J: {#IFALIAS} NOT_MATCHES_REGEX `{$NET.IF.IFALIAS.NOT_MATCHES}`</p><p>- K: {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- L: {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Operational status |<p>MIB: IF-MIB</p><p>The current operational state of the interface.</p><p>- The testing(3) state indicates that no operational packet scan be passed</p><p>- If ifAdminStatus is down(2) then ifOperStatus should be down(2)</p><p>- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic</p><p>- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)</p><p>- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state</p><p>- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</p> |SNMP |net.if.status[ifOperStatus.{#SNMPINDEX}] |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Bits received |<p>MIB: IF-MIB</p><p>The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and atother times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in[ifInOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p> |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Bits sent |<p>MIB: IF-MIB</p><p>The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out[ifOutOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p> |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors |<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in.errors[ifInErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors |<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out.errors[ifOutErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded |<p>MIB: IF-MIB</p><p>The number of outbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded |<p>MIB: IF-MIB</p><p>The number of inbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p> |SNMP |net.if.in.discards[ifInDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Interface type |<p>MIB: IF-MIB</p><p>The type of interface.</p><p>Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),</p><p>through updating the syntax of the IANAifType textual convention.</p> |SNMP |net.if.type[ifType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Network_interfaces |Interface {#IFNAME}({#IFALIAS}): Speed |<p>MIB: IF-MIB</p><p>An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.</p> |SNMP |net.if.speed[ifHighSpeed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1000000`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Interface {#IFNAME}({#IFALIAS}): Link down |<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>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.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p> |`{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0` |AVERAGE |<p>Manual close: YES</p> |
+|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% ) |<p>The network interface utilization is close to its estimated maximum bandwidth.</p> |`({TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or {Template Module Interfaces Windows SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and {Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and {Template Module Interfaces Windows SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+|Interface {#IFNAME}({#IFALIAS}): High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) |<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p> |`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {Template Module Interfaces Windows SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {Template Module Interfaces Windows SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+|Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before |<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p> |`{TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}<0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 and ( {Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or {Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or {Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or {Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or {Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or {Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117 ) and ({Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2)`<p>Recovery expression:</p>`({TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}>0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}>0) or ({Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)` |INFO |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: 32bit counters are used in this template (since 64bit are not supported by Windows OS). If busy interfaces return incorrect bits sent/received - set update interval to 1m or less.
+
diff --git a/templates/module/interfaces_win_snmpv2/template_module_interfaces_win_snmpv2.xml b/templates/module/interfaces_win_snmp/template_module_interfaces_win_snmp.xml
index 867b9400c01..7fa65874658 100644
--- a/templates/module/interfaces_win_snmpv2/template_module_interfaces_win_snmpv2.xml
+++ b/templates/module/interfaces_win_snmp/template_module_interfaces_win_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:27:53Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Module Interfaces Windows SNMPv2</template>
- <name>Template Module Interfaces Windows SNMPv2</name>
+ <template>Template Module Interfaces Windows SNMP</template>
+ <name>Template Module Interfaces Windows SNMP</name>
<description>Template Interfaces Windows&#13;
&#13;
MIBs used:&#13;
@@ -20,7 +20,7 @@ Known Issues:&#13;
&#13;
Description: 32bit counters are used in this template (since 64bit are not supported by Windows OS). If busy interfaces return incorrect bits sent/received - set update interval to 1m or less.&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -34,8 +34,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Network interfaces discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]</snmp_oid>
<key>net.if.discovery</key>
<delay>1h</delay>
@@ -114,8 +113,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}</snmp_oid>
<key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -140,8 +138,7 @@ and at other times as indicated by the value of ifCounterDiscontinuityTime.</des
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}</snmp_oid>
<key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -162,8 +159,7 @@ For packet-oriented interfaces, the number of inbound packets that contained err
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Bits received</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}</snmp_oid>
<key>net.if.in[ifInOctets.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -189,8 +185,7 @@ The total number of octets received on the interface,including framing character
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}</snmp_oid>
<key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -215,8 +210,7 @@ and at other times as indicated by the value of ifCounterDiscontinuityTime.</des
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}</snmp_oid>
<key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -237,8 +231,7 @@ For packet-oriented interfaces, the number of outbound packets that contained er
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Bits sent</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.16.{#SNMPINDEX}</snmp_oid>
<key>net.if.out[ifOutOctets.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -264,8 +257,7 @@ The total number of octets transmitted out of the interface, including framing c
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Speed</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}</snmp_oid>
<key>net.if.speed[ifHighSpeed.{#SNMPINDEX}]</key>
<delay>5m</delay>
@@ -292,8 +284,7 @@ An estimate of the interface's current bandwidth in units of 1,000,000 bits per
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Operational status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}</snmp_oid>
<key>net.if.status[ifOperStatus.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -318,7 +309,7 @@ The current operational state of the interface.&#13;
<trigger_prototype>
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{last()}&lt;&gt;2</recovery_expression>
+ <recovery_expression>{last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
<opdata>Current state: {ITEM.LASTVALUE1}</opdata>
<priority>AVERAGE</priority>
@@ -334,8 +325,7 @@ WARNING: if closed manually - won't fire again on next poll, because of .diff.</
</item_prototype>
<item_prototype>
<name>Interface {#IFNAME}({#IFALIAS}): Interface type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>net.if.type[ifType.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -363,20 +353,20 @@ through updating the syntax of the IANAifType textual convention.</description>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&lt;0 and {Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0&#13;
+ <expression>{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&lt;0 and {Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0&#13;
and (&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=117&#13;
+{Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or&#13;
+{Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or&#13;
+{Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or&#13;
+{Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or&#13;
+{Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or&#13;
+{Template Module Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117&#13;
)&#13;
and&#13;
-({Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2)</expression>
+({Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2)</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>({Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&gt;0 and {Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}&gt;0) or&#13;
-({Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)</recovery_expression>
+ <recovery_expression>({Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}&gt;0 and {Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}&gt;0) or&#13;
+({Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)</recovery_expression>
<name>Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before</name>
<opdata>Current reported speed: {ITEM.LASTVALUE1}</opdata>
<priority>INFO</priority>
@@ -385,18 +375,18 @@ and&#13;
<dependencies>
<dependency>
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
- <expression>({Template Module Interfaces Windows SNMPv2:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0</expression>
+ <expression>({Template Module Interfaces Windows SNMP:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or&#13;
+{Template Module Interfaces Windows SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&gt;({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and&#13;
+{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}&gt;0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces Windows SNMPv2:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and&#13;
-{Template Module Interfaces Windows SNMPv2:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}</recovery_expression>
+ <recovery_expression>{Template Module Interfaces Windows SNMP:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and&#13;
+{Template Module Interfaces Windows SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}&lt;(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}</recovery_expression>
<name>Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( &gt; {$IF.UTIL.MAX:"{#IFNAME}"}% )</name>
<opdata>In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
@@ -405,17 +395,17 @@ and&#13;
<dependencies>
<dependency>
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Module Interfaces Windows SNMPv2:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}&#13;
-or {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
+ <expression>{Template Module Interfaces Windows SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}&#13;
+or {Template Module Interfaces Windows SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}&gt;{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Interfaces Windows SNMPv2:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8&#13;
-and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
+ <recovery_expression>{Template Module Interfaces Windows SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8&#13;
+and {Template Module Interfaces Windows SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}&lt;{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
<name>Interface {#IFNAME}({#IFALIAS}): High error rate ( &gt; {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)</name>
<opdata>errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}</opdata>
<priority>WARNING</priority>
@@ -424,8 +414,8 @@ and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#S
<dependencies>
<dependency>
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
- <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
- <recovery_expression>{Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2</recovery_expression>
+ <expression>{$IFCONTROL:"{#IFNAME}"}=1 and ({Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)</expression>
+ <recovery_expression>{Template Module Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}&lt;&gt;2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -438,7 +428,7 @@ and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#S
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Interfaces Windows SNMPv2</host>
+ <host>Template Module Interfaces Windows SNMP</host>
<key>net.if.in[ifInOctets.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -447,7 +437,7 @@ and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#S
<drawtype>BOLD_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Module Interfaces Windows SNMPv2</host>
+ <host>Template Module Interfaces Windows SNMP</host>
<key>net.if.out[ifOutOctets.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -456,7 +446,7 @@ and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#S
<color>F63100</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces Windows SNMPv2</host>
+ <host>Template Module Interfaces Windows SNMP</host>
<key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -465,7 +455,7 @@ and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#S
<color>A54F10</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces Windows SNMPv2</host>
+ <host>Template Module Interfaces Windows SNMP</host>
<key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -474,7 +464,7 @@ and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#S
<color>FC6EA3</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces Windows SNMPv2</host>
+ <host>Template Module Interfaces Windows SNMP</host>
<key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -483,7 +473,7 @@ and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#S
<color>6C59DC</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Interfaces Windows SNMPv2</host>
+ <host>Template Module Interfaces Windows SNMP</host>
<key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -568,9 +558,9 @@ and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#S
<style>0</style>
<resource>
<name>Interface {#IFNAME}({#IFALIAS}): Network traffic</name>
- <host>Template Module Interfaces Windows SNMPv2</host>
+ <host>Template Module Interfaces Windows SNMP</host>
</resource>
- <width>750</width>
+ <width>500</width>
<height>100</height>
<x>0</x>
<y>0</y>
diff --git a/templates/module/interfaces_win_snmpv2/README.md b/templates/module/interfaces_win_snmpv2/README.md
deleted file mode 100644
index 55c842ba876..00000000000
--- a/templates/module/interfaces_win_snmpv2/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# Template Module Interfaces Windows SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-Special version of interfaces template that is required for Windows OS. Since MS doesn't support 64 bit counters but supports ifAlias and ifHighSpeed.
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$IF.ERRORS.WARN}|<p>-</p>|`2`|
-|{$IF.UTIL.MAX}|<p>-</p>|`90`|
-|{$IFCONTROL}|<p>-</p>|`1`|
-|{$NET.IF.IFADMINSTATUS.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFADMINSTATUS.NOT_MATCHES}|<p>Ignore down(2) administrative status</p>|`^2$`|
-|{$NET.IF.IFALIAS.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFALIAS.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-|{$NET.IF.IFDESCR.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFDESCR.NOT_MATCHES}|<p>-</p>|`Miniport|Virtual|Teredo|Kernel|Loopback|Bluetooth|HTTPS|6to4|QoS|Layer|isatap|ISATAP`|
-|{$NET.IF.IFNAME.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFNAME.NOT_MATCHES}|<p>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</p>|`(^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})`|
-|{$NET.IF.IFOPERSTATUS.MATCHES}|<p>-</p>|`^.*$`|
-|{$NET.IF.IFOPERSTATUS.NOT_MATCHES}|<p>Ignore notPresent(6)</p>|`^6$`|
-|{$NET.IF.IFTYPE.MATCHES}|<p>-</p>|`.*`|
-|{$NET.IF.IFTYPE.NOT_MATCHES}|<p>-</p>|`CHANGE_IF_NEEDED`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Network interfaces discovery|<p>Discovering interfaces from IF-MIB.</p>|SNMP|net.if.discovery<p>**Filter**:</p>AND <p>- A: {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- B: {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- C: {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- D: {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- E: {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- F: {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- G: {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- H: {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- I: {#IFALIAS} MATCHES_REGEX `{$NET.IF.IFALIAS.MATCHES}`</p><p>- J: {#IFALIAS} NOT_MATCHES_REGEX `{$NET.IF.IFALIAS.NOT_MATCHES}`</p><p>- K: {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- L: {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Operational status|<p>MIB: IF-MIB</p><p>The current operational state of the interface.</p><p>- The testing(3) state indicates that no operational packet scan be passed</p><p>- If ifAdminStatus is down(2) then ifOperStatus should be down(2)</p><p>- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic</p><p>- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)</p><p>- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state</p><p>- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</p>|SNMP|net.if.status[ifOperStatus.{#SNMPINDEX}]|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Bits received|<p>MIB: IF-MIB</p><p>The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and atother times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in[ifInOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Bits sent|<p>MIB: IF-MIB</p><p>The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out[ifOutOctets.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- MULTIPLIER: `8`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.errors[ifInErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors|<p>MIB: IF-MIB</p><p>For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.errors[ifOutErrors.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded|<p>MIB: IF-MIB</p><p>The number of outbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded|<p>MIB: IF-MIB</p><p>The number of inbound packets which were chosen to be discarded</p><p>even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</p><p>One possible reason for discarding such a packet could be to free up buffer space.</p><p>Discontinuities in the value of this counter can occur at re-initialization of the management system,</p><p>and at other times as indicated by the value of ifCounterDiscontinuityTime.</p>|SNMP|net.if.in.discards[ifInDiscards.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Interface type|<p>MIB: IF-MIB</p><p>The type of interface.</p><p>Additional values for ifType are assigned by the Internet Assigned NumbersAuthority (IANA),</p><p>through updating the syntax of the IANAifType textual convention.</p>|SNMP|net.if.type[ifType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Network_interfaces|Interface {#IFNAME}({#IFALIAS}): Speed|<p>MIB: IF-MIB</p><p>An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.</p>|SNMP|net.if.speed[ifHighSpeed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1000000`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Interface {#IFNAME}({#IFALIAS}): Link down|<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>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.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p>|`{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2`|AVERAGE|<p>Manual close: YES</p>|
-|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )|<p>The network interface utilization is close to its estimated maximum bandwidth.</p>|`({TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or {Template Module Interfaces Windows SNMPv2:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and {Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and {Template Module Interfaces Windows SNMPv2:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Template Module Interfaces Windows SNMPv2:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-|Interface {#IFNAME}({#IFALIAS}): High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)|<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p>|`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {Template Module Interfaces Windows SNMPv2:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-|Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before|<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p>|`{TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}<0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 and ( {Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or {Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or {Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or {Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or {Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or {Template Module Interfaces Windows SNMPv2:net.if.type[ifType.{#SNMPINDEX}].last()}=117 ) and ({Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2)`<p>Recovery expression:</p>`({TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}>0 and {TEMPLATE_NAME:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}>0) or ({Template Module Interfaces Windows SNMPv2:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2)`|INFO|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: 32bit counters are used in this template (since 64bit are not supported by Windows OS). If busy interfaces return incorrect bits sent/received - set update interval to 1m or less.
-
diff --git a/templates/net/alcatel_timetra_snmp/README.md b/templates/net/alcatel_timetra_snmp/README.md
new file mode 100644
index 00000000000..66a7ee1f322
--- /dev/null
+++ b/templates/net/alcatel_timetra_snmp/README.md
@@ -0,0 +1,78 @@
+
+# Template Net Alcatel Timetra TiMOS SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`4` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`4` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`75` |
+|{$TEMP_WARN} |<p>-</p> |`65` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>-</p> |SNMP |temperature.discovery<p>**Filter**:</p>AND_OR <p>- A: {#TEMP_SENSOR} MATCHES_REGEX `1`</p> |
+|FAN Discovery |<p>-</p> |SNMP |fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `[^1]`</p> |
+|PSU Discovery |<p>-</p> |SNMP |psu.discovery |
+|Entity Serial Numbers Discovery |<p>-</p> |SNMP |entity_sn.discovery<p>**Filter**:</p>AND <p>- B: {#ENT_SN} MATCHES_REGEX `.+`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The value of sgiCpuUsage indicates the current CPU utilization for the system.</p> |SNMP |system.cpu.util[sgiCpuUsage.0] |
+|Fans |#{#SNMPINDEX}: Fan status |<p>MIB: TIMETRA-SYSTEM-MIB</p><p>Current status of the Fan tray.</p> |SNMP |sensor.fan.status[tmnxChassisFanOperStatus.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: SNMPv2-MIB</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- REGEX: `^(\w|-|\.|/)+ (\w|-|\.|/)+ (.+) Copyright \3`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Operating system |<p>MIB: SNMPv2-MIB</p> |SNMP |system.sw.os[sysDescr.0]<p>**Preprocessing**:</p><p>- REGEX: `^((\w|-|\.|/)+) \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware serial number |<p>MIB: TIMETRA-CHASSIS-MIB</p> |SNMP |system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |Used memory |<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The value of sgiKbMemoryUsed indicates the total pre-allocated pool memory, in kilobytes, currently in use on the system.</p> |SNMP |vm.memory.used[sgiKbMemoryUsed.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Available memory |<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The value of sgiKbMemoryAvailable indicates the amount of free memory, in kilobytes, in the overall system that is not allocated to memory pools, but is available in case a memory pool needs to grow.</p> |SNMP |vm.memory.available[sgiKbMemoryAvailable.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Total memory |<p>Total memory in Bytes</p> |CALCULATED |vm.memory.total[snmp]<p>**Expression**:</p>`last("vm.memory.available[sgiKbMemoryAvailable.0]")+last("vm.memory.used[sgiKbMemoryUsed.0]")` |
+|Memory |Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[vm.memory.util.0]<p>**Expression**:</p>`last("vm.memory.used[sgiKbMemoryUsed.0]")/(last("vm.memory.available[sgiKbMemoryAvailable.0]")+last("vm.memory.used[sgiKbMemoryUsed.0]"))*100` |
+|Power_supply |#{#SNMPINDEX}: Power supply status |<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The overall status of an equipped power supply. </p><p>For AC multiple powersupplies, this represents the overall status of the first power supplyin the tray (or shelf).</p><p>For any other type, this represents the overall status of the power supply.</p><p>If tmnxChassisPowerSupply1Status is'deviceStateOk', then all monitored statuses are 'deviceStateOk'.</p><p>A value of 'deviceStateFailed' represents a condition where at least one monitored status is in a failed state.</p> |SNMP |sensor.psu.status[tmnxChassisPowerSupply1Status.{#SNMPINDEX}] |
+|Power_supply |#{#SNMPINDEX}: Power supply status |<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The overall status of an equipped power supply.</p><p>For AC multiple powersupplies, this represents the overall status of the second power supplyin the tray (or shelf).</p><p>For any other type, this field is unused and set to 'deviceNotEquipped'.</p><p>If tmnxChassisPowerSupply2Status is 'deviceStateOk', then all monitored statuses are 'deviceStateOk'.</p><p>A value of 'deviceStateFailed' represents a condition where at least one monitored status is in a failed state.</p> |SNMP |sensor.psu.status[tmnxChassisPowerSupply2Status.{#SNMPINDEX}] |
+|Temperature |{#SNMPVALUE}: Temperature |<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The current temperature reading in degrees celsius from this hardware component's temperature sensor. If this component does not contain a temperature sensor, then the value -1 is returned.</p> |SNMP |sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[sgiCpuUsage.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|#{#SNMPINDEX}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[tmnxChassisFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[sysDescr.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[sysDescr.0].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[vm.memory.util.0].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|#{#SNMPINDEX}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[tmnxChassisPowerSupply1Status.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|#{#SNMPINDEX}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[tmnxChassisPowerSupply2Status.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/alcatel_timetra_snmpv2/template_net_alcatel_timetra_snmpv2.xml b/templates/net/alcatel_timetra_snmp/template_net_alcatel_timetra_snmp.xml
index 25d6ec1973a..2191af946e8 100644
--- a/templates/net/alcatel_timetra_snmpv2/template_net_alcatel_timetra_snmpv2.xml
+++ b/templates/net/alcatel_timetra_snmp/template_net_alcatel_timetra_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:17Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net Alcatel Timetra TiMOS SNMPv2</template>
- <name>Template Net Alcatel Timetra TiMOS SNMPv2</name>
+ <template>Template Net Alcatel Timetra TiMOS SNMP</template>
+ <name>Template Net Alcatel Timetra TiMOS SNMP</name>
<description>Template Net Alcatel Timetra TiMOS&#13;
&#13;
MIBs used:&#13;
@@ -18,16 +18,16 @@ TIMETRA-CHASSIS-MIB&#13;
TIMETRA-SYSTEM-MIB&#13;
SNMPv2-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -58,8 +58,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6527.3.1.2.1.1.1.0</snmp_oid>
<key>system.cpu.util[sgiCpuUsage.0]</key>
<history>7d</history>
@@ -84,8 +83,7 @@ The value of sgiCpuUsage indicates the current CPU utilization for the system.</
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -113,8 +111,7 @@ The value of sgiCpuUsage indicates the current CPU utilization for the system.</
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
<key>system.sw.os[sysDescr.0]</key>
<delay>1h</delay>
@@ -152,8 +149,7 @@ The value of sgiCpuUsage indicates the current CPU utilization for the system.</
</item>
<item>
<name>Available memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6527.3.1.2.1.1.10.0</snmp_oid>
<key>vm.memory.available[sgiKbMemoryAvailable.0]</key>
<history>7d</history>
@@ -188,8 +184,7 @@ The value of sgiKbMemoryAvailable indicates the amount of free memory, in kiloby
</item>
<item>
<name>Used memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6527.3.1.2.1.1.9.0</snmp_oid>
<key>vm.memory.used[sgiKbMemoryUsed.0]</key>
<history>7d</history>
@@ -235,8 +230,7 @@ The value of sgiKbMemoryUsed indicates the total pre-allocated pool memory, in k
<discovery_rules>
<discovery_rule>
<name>Entity Serial Numbers Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_NAME},1.3.6.1.4.1.6527.3.1.2.2.1.8.1.8,{#ENT_CLASS},1.3.6.1.4.1.6527.3.1.2.2.1.8.1.7,{#ENT_SN},1.3.6.1.4.1.6527.3.1.2.2.1.8.1.5]</snmp_oid>
<key>entity_sn.discovery</key>
<delay>1h</delay>
@@ -253,8 +247,7 @@ The value of sgiKbMemoryUsed indicates the total pre-allocated pool memory, in k
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6527.3.1.2.2.1.8.1.5.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -287,8 +280,7 @@ The value of sgiKbMemoryUsed indicates the total pre-allocated pool memory, in k
</discovery_rule>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.6527.3.1.2.2.1.4.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -305,8 +297,7 @@ The value of sgiKbMemoryUsed indicates the total pre-allocated pool memory, in k
<item_prototypes>
<item_prototype>
<name>#{#SNMPINDEX}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6527.3.1.2.2.1.4.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[tmnxChassisFanOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -336,16 +327,14 @@ Current status of the Fan tray.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.6527.3.1.2.2.1.5.1.6]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>#{#SNMPINDEX}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6527.3.1.2.2.1.5.1.6.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[tmnxChassisPowerSupply1Status.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -377,8 +366,7 @@ A value of 'deviceStateFailed' represents a condition where at least one monitor
</item_prototype>
<item_prototype>
<name>#{#SNMPINDEX}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6527.3.1.2.2.1.5.1.7.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[tmnxChassisPowerSupply2Status.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -412,8 +400,7 @@ A value of 'deviceStateFailed' represents a condition where at least one monitor
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.6527.3.1.2.2.1.8.1.8,{#TEMP_SENSOR},1.3.6.1.4.1.6527.3.1.2.2.1.8.1.17]</snmp_oid>
<key>temperature.discovery</key>
<delay>1h</delay>
@@ -430,8 +417,7 @@ A value of 'deviceStateFailed' represents a condition where at least one monitor
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6527.3.1.2.2.1.8.1.18.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -456,8 +442,8 @@ The current temperature reading in degrees celsius from this hardware component'
<dependencies>
<dependency>
<name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Alcatel Timetra TiMOS SNMPv2:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Alcatel Timetra TiMOS SNMPv2:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Alcatel Timetra TiMOS SNMP:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Alcatel Timetra TiMOS SNMP:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -525,7 +511,7 @@ The current temperature reading in degrees celsius from this hardware component'
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Alcatel Timetra TiMOS SNMPv2</host>
+ <host>Template Net Alcatel Timetra TiMOS SNMP</host>
<key>system.cpu.util[sgiCpuUsage.0]</key>
</item>
</graph_item>
@@ -539,7 +525,7 @@ The current temperature reading in degrees celsius from this hardware component'
<drawtype>BOLD_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Alcatel Timetra TiMOS SNMPv2</host>
+ <host>Template Net Alcatel Timetra TiMOS SNMP</host>
<key>vm.memory.total[snmp]</key>
</item>
</graph_item>
@@ -548,7 +534,7 @@ The current temperature reading in degrees celsius from this hardware component'
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Net Alcatel Timetra TiMOS SNMPv2</host>
+ <host>Template Net Alcatel Timetra TiMOS SNMP</host>
<key>vm.memory.available[sgiKbMemoryAvailable.0]</key>
</item>
</graph_item>
@@ -563,7 +549,7 @@ The current temperature reading in degrees celsius from this hardware component'
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Alcatel Timetra TiMOS SNMPv2</host>
+ <host>Template Net Alcatel Timetra TiMOS SNMP</host>
<key>vm.memory.util[vm.memory.util.0]</key>
</item>
</graph_item>
diff --git a/templates/net/alcatel_timetra_snmpv2/README.md b/templates/net/alcatel_timetra_snmpv2/README.md
deleted file mode 100644
index d5e92b485e0..00000000000
--- a/templates/net/alcatel_timetra_snmpv2/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-
-# Template Net Alcatel Timetra TiMOS SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`4`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`4`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`75`|
-|{$TEMP_WARN}|<p>-</p>|`65`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>-</p>|SNMP|temperature.discovery<p>**Filter**:</p>AND_OR <p>- A: {#TEMP_SENSOR} MATCHES_REGEX `1`</p>|
-|FAN Discovery|<p>-</p>|SNMP|fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `[^1]`</p>|
-|PSU Discovery|<p>-</p>|SNMP|psu.discovery|
-|Entity Serial Numbers Discovery|<p>-</p>|SNMP|entity_sn.discovery<p>**Filter**:</p>AND <p>- B: {#ENT_SN} MATCHES_REGEX `.+`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The value of sgiCpuUsage indicates the current CPU utilization for the system.</p>|SNMP|system.cpu.util[sgiCpuUsage.0]|
-|Fans|#{#SNMPINDEX}: Fan status|<p>MIB: TIMETRA-SYSTEM-MIB</p><p>Current status of the Fan tray.</p>|SNMP|sensor.fan.status[tmnxChassisFanOperStatus.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: SNMPv2-MIB</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- REGEX: `^(\w|-|\.|/)+ (\w|-|\.|/)+ (.+) Copyright \3`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Operating system|<p>MIB: SNMPv2-MIB</p>|SNMP|system.sw.os[sysDescr.0]<p>**Preprocessing**:</p><p>- REGEX: `^((\w|-|\.|/)+) \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware serial number|<p>MIB: TIMETRA-CHASSIS-MIB</p>|SNMP|system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|Used memory|<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The value of sgiKbMemoryUsed indicates the total pre-allocated pool memory, in kilobytes, currently in use on the system.</p>|SNMP|vm.memory.used[sgiKbMemoryUsed.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Available memory|<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The value of sgiKbMemoryAvailable indicates the amount of free memory, in kilobytes, in the overall system that is not allocated to memory pools, but is available in case a memory pool needs to grow.</p>|SNMP|vm.memory.available[sgiKbMemoryAvailable.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Total memory|<p>Total memory in Bytes</p>|CALCULATED|vm.memory.total[snmp]<p>**Expression**:</p>`last("vm.memory.available[sgiKbMemoryAvailable.0]")+last("vm.memory.used[sgiKbMemoryUsed.0]")`|
-|Memory|Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[vm.memory.util.0]<p>**Expression**:</p>`last("vm.memory.used[sgiKbMemoryUsed.0]")/(last("vm.memory.available[sgiKbMemoryAvailable.0]")+last("vm.memory.used[sgiKbMemoryUsed.0]"))*100`|
-|Power_supply|#{#SNMPINDEX}: Power supply status|<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The overall status of an equipped power supply. </p><p>For AC multiple powersupplies, this represents the overall status of the first power supplyin the tray (or shelf).</p><p>For any other type, this represents the overall status of the power supply.</p><p>If tmnxChassisPowerSupply1Status is'deviceStateOk', then all monitored statuses are 'deviceStateOk'.</p><p>A value of 'deviceStateFailed' represents a condition where at least one monitored status is in a failed state.</p>|SNMP|sensor.psu.status[tmnxChassisPowerSupply1Status.{#SNMPINDEX}]|
-|Power_supply|#{#SNMPINDEX}: Power supply status|<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The overall status of an equipped power supply.</p><p>For AC multiple powersupplies, this represents the overall status of the second power supplyin the tray (or shelf).</p><p>For any other type, this field is unused and set to 'deviceNotEquipped'.</p><p>If tmnxChassisPowerSupply2Status is 'deviceStateOk', then all monitored statuses are 'deviceStateOk'.</p><p>A value of 'deviceStateFailed' represents a condition where at least one monitored status is in a failed state.</p>|SNMP|sensor.psu.status[tmnxChassisPowerSupply2Status.{#SNMPINDEX}]|
-|Temperature|{#SNMPVALUE}: Temperature|<p>MIB: TIMETRA-SYSTEM-MIB</p><p>The current temperature reading in degrees celsius from this hardware component's temperature sensor. If this component does not contain a temperature sensor, then the value -1 is returned.</p>|SNMP|sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[sgiCpuUsage.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|#{#SNMPINDEX}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[tmnxChassisFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[sysDescr.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[sysDescr.0].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[vm.memory.util.0].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|#{#SNMPINDEX}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[tmnxChassisPowerSupply1Status.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|#{#SNMPINDEX}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[tmnxChassisPowerSupply2Status.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/arista_snmp/README.md b/templates/net/arista_snmp/README.md
new file mode 100644
index 00000000000..378edacc278
--- /dev/null
+++ b/templates/net/arista_snmp/README.md
@@ -0,0 +1,78 @@
+
+# Template Net Arista SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+This template was tested on:
+
+- Arista DCS-7050Q-16, version EOS version 4.12.6
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$FAN_CRIT_STATUS} |<p>-</p> |`3` |
+|{$MEMORY.NAME.NOT_MATCHES} |<p>Filter is overriden to ignore RAM(Cache) and RAM(Buffers) memory objects.</p> |`(Buffer|Cache)` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`2` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN_STATUS} |<p>-</p> |`3` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+|{$VFS.FS.PUSED.MAX.CRIT} |<p>-</p> |`95` |
+|{$VFS.FS.PUSED.MAX.WARN} |<p>-</p> |`90` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module HOST-RESOURCES-MIB SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with celsius filter</p> |SNMP |temp.discovery<p>**Filter**:</p>AND <p>- B: {#SENSOR_TYPE} MATCHES_REGEX `8`</p><p>- B: {#SENSOR_PRECISION} MATCHES_REGEX `1`</p> |
+|Fan discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with rpm filter</p> |SNMP |fan.discovery<p>**Filter**:</p>OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `10`</p> |
+|Entity discovery |<p>-</p> |SNMP |entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p> |
+|PSU discovery |<p>-</p> |SNMP |psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `6`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Fans |{#SENSOR_INFO}: Fan speed |<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p> |SNMP |sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}] |
+|Fans |{#SENSOR_INFO}: Fan status |<p>MIB: ENTITY-SENSORS-MIB</p><p>The operational status of the sensor {#SENSOR_INFO}</p> |SNMP |sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}] |
+|Inventory |{#ENT_NAME}: Hardware model name |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.model[entPhysicalModelName.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware serial number |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Power_supply |{#ENT_NAME}: Power supply status |<p>MIB: ENTITY-STATE-MIB</p> |SNMP |sensor.psu.status[entStateOper.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_INFO}: Temperature |<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p> |SNMP |sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p> |
+|Temperature |{#SENSOR_INFO}: Temperature status |<p>MIB: ENTITY-SENSORS-MIB</p><p>The operational status of the sensor {#SENSOR_INFO}</p> |SNMP |sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#SENSOR_INFO}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#ENT_NAME}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[entStateOper.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Arista SNMP:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/arista_snmpv2/template_net_arista_snmpv2.xml b/templates/net/arista_snmp/template_net_arista_snmp.xml
index 77f8a40b4dd..05dffc03b5a 100644
--- a/templates/net/arista_snmpv2/template_net_arista_snmpv2.xml
+++ b/templates/net/arista_snmp/template_net_arista_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:08Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net Arista SNMPv2</template>
- <name>Template Net Arista SNMPv2</name>
+ <template>Template Net Arista SNMP</template>
+ <name>Template Net Arista SNMP</name>
<description>Template Net Arista&#13;
&#13;
MIBs used:&#13;
@@ -18,19 +18,19 @@ ENTITY-SENSORS-MIB&#13;
ENTITY-STATE-MIB&#13;
ENTITY-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module HOST-RESOURCES-MIB SNMPv2</name>
+ <name>Template Module HOST-RESOURCES-MIB SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -55,8 +55,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Entity discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>entity.discovery</key>
<delay>1h</delay>
@@ -73,8 +72,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.13.{#SNMPINDEX}</snmp_oid>
<key>system.hw.model[entPhysicalModelName.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -96,8 +94,7 @@ Template tooling version used: 0.34</description>
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.11.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -130,8 +127,7 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>Fan discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.99.1.1.1.1,{#SENSOR_INFO},1.3.6.1.2.1.47.1.1.1.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -149,8 +145,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Fan speed</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}]</key>
<units>rpm</units>
@@ -166,8 +161,7 @@ entPhySensorScale, and entPhySensorPrecision objects must also be examined.</des
</item_prototype>
<item_prototype>
<name>{#SENSOR_INFO}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -197,8 +191,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
</discovery_rule>
<discovery_rule>
<name>PSU discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -215,8 +208,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.131.1.1.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[entStateOper.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -245,8 +237,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_TYPE},1.3.6.1.2.1.99.1.1.1.1,{#SENSOR_INFO},1.3.6.1.2.1.47.1.1.1.1.2,{#SENSOR_PRECISION},1.3.6.1.2.1.99.1.1.1.3]</snmp_oid>
<key>temp.discovery</key>
<delay>1h</delay>
@@ -269,8 +260,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -289,8 +279,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
</item_prototype>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -334,11 +323,11 @@ entPhySensorScale, and entPhySensorPrecision objects must also be examined.</des
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Net Arista SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
+ <expression>{Template Net Arista SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
or&#13;
-{Template Net Arista SNMPv2:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
+{Template Net Arista SNMP:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Net Arista SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
+ <recovery_expression>{Template Net Arista SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
<name>{#SENSOR_INFO}: Temperature is above warning threshold: &gt;{$TEMP_WARN:""}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
@@ -346,8 +335,8 @@ or&#13;
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Arista SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Arista SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Arista SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Arista SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
diff --git a/templates/net/arista_snmpv2/README.md b/templates/net/arista_snmpv2/README.md
deleted file mode 100644
index f672fc17bd0..00000000000
--- a/templates/net/arista_snmpv2/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-
-# Template Net Arista SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-This template was tested on:
-
-- Arista DCS-7050Q-16, version EOS version 4.12.6
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`3`|
-|{$MEMORY.NAME.NOT_MATCHES}|<p>Filter is overriden to ignore RAM(Cache) and RAM(Buffers) memory objects.</p>|`(Buffer|Cache)`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`2`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN_STATUS}|<p>-</p>|`3`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-|{$VFS.FS.PUSED.MAX.CRIT}|<p>-</p>|`95`|
-|{$VFS.FS.PUSED.MAX.WARN}|<p>-</p>|`90`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module HOST-RESOURCES-MIB SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature discovery|<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with celsius filter</p>|SNMP|temp.discovery<p>**Filter**:</p>AND <p>- B: {#SENSOR_TYPE} MATCHES_REGEX `8`</p><p>- B: {#SENSOR_PRECISION} MATCHES_REGEX `1`</p>|
-|Fan discovery|<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with rpm filter</p>|SNMP|fan.discovery<p>**Filter**:</p>OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `10`</p>|
-|Entity discovery|<p>-</p>|SNMP|entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p>|
-|PSU discovery|<p>-</p>|SNMP|psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `6`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|{#SENSOR_INFO}: Fan speed|<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p>|SNMP|sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}]|
-|Fans|{#SENSOR_INFO}: Fan status|<p>MIB: ENTITY-SENSORS-MIB</p><p>The operational status of the sensor {#SENSOR_INFO}</p>|SNMP|sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}]|
-|Inventory|{#ENT_NAME}: Hardware model name|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.model[entPhysicalModelName.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware serial number|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Power_supply|{#ENT_NAME}: Power supply status|<p>MIB: ENTITY-STATE-MIB</p>|SNMP|sensor.psu.status[entStateOper.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_INFO}: Temperature|<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p>|SNMP|sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p>|
-|Temperature|{#SENSOR_INFO}: Temperature status|<p>MIB: ENTITY-SENSORS-MIB</p><p>The operational status of the sensor {#SENSOR_INFO}</p>|SNMP|sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#SENSOR_INFO}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#ENT_NAME}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[entStateOper.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Arista SNMPv2:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/brocade_fc_sw_snmp/README.md b/templates/net/brocade_fc_sw_snmp/README.md
new file mode 100644
index 00000000000..35125dc7853
--- /dev/null
+++ b/templates/net/brocade_fc_sw_snmp/README.md
@@ -0,0 +1,98 @@
+
+# Template Net Brocade FC SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+https://community.brocade.com/dtscp75322/attachments/dtscp75322/fibre/25235/1/FOS_MIB_Reference_v740.pdf
+
+This template was tested on:
+
+- Brocade 6520, version v7.4.1c
+- Brocade 300, version v7.0.0c
+- Brocade BL 5480, version v6.3.1c
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`2` |
+|{$FAN_OK_STATUS} |<p>-</p> |`4` |
+|{$HEALTH_CRIT_STATUS} |<p>-</p> |`4` |
+|{$HEALTH_WARN_STATUS:"offline"} |<p>-</p> |`2` |
+|{$HEALTH_WARN_STATUS:"testing"} |<p>-</p> |`3` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`2` |
+|{$PSU_OK_STATUS} |<p>-</p> |`4` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`75` |
+|{$TEMP_WARN_STATUS} |<p>-</p> |`5` |
+|{$TEMP_WARN} |<p>-</p> |`65` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>-</p> |SNMP |temperature.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_TYPE} MATCHES_REGEX `1`</p> |
+|PSU Discovery |<p>-</p> |SNMP |psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_TYPE} MATCHES_REGEX `3`</p> |
+|FAN Discovery |<p>-</p> |SNMP |fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_TYPE} MATCHES_REGEX `2`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: SW-MIB</p><p>System's CPU usage.</p> |SNMP |system.cpu.util[swCpuUsage.0] |
+|Fans |{#SENSOR_INFO}: Fan status |<p>MIB: SW-MIB</p> |SNMP |sensor.fan.status[swSensorStatus.{#SNMPINDEX}] |
+|Fans |{#SENSOR_INFO}: Fan speed |<p>MIB: SW-MIB</p><p>The current value (reading) of the sensor.</p><p>The value, -2147483648, represents an unknown quantity.</p><p>The fan value will be in RPM(revolution per minute)</p> |SNMP |sensor.fan.speed[swSensorValue.{#SNMPINDEX}] |
+|Inventory |Hardware serial number |<p>MIB: SW-MIB</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: SW-MIB</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |Memory utilization |<p>MIB: SW-MIB</p><p>Memory utilization in %</p> |SNMP |vm.memory.util[swMemUsage.0] |
+|Power_supply |{#SENSOR_INFO}: Power supply status |<p>MIB: SW-MIB</p> |SNMP |sensor.psu.status[swSensorStatus.{#SNMPINDEX}] |
+|Status |Overall system health status |<p>MIB: SW-MIB</p><p>The current operational status of the switch.The states are as follow:</p><p>online(1) means the switch is accessible by an external Fibre Channel port</p><p>offline(2) means the switch is not accessible</p><p>testing(3) means the switch is in a built-in test mode and is not accessible by an external Fibre Channel port</p><p>faulty(4) means the switch is not operational.</p> |SNMP |system.status[swOperStatus.0] |
+|Temperature |{#SENSOR_INFO}: Temperature |<p>MIB: SW-MIB</p><p>Temperature readings of testpoint: {#SENSOR_INFO}</p> |SNMP |sensor.temp.value[swSensorValue.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_INFO}: Temperature status |<p>MIB: SW-MIB</p><p>Temperature status of testpoint: {#SENSOR_INFO}</p> |SNMP |sensor.temp.status[swSensorStatus.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[swCpuUsage.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|{#SENSOR_INFO}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#SENSOR_INFO}: Fan is not in normal state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1` |INFO |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p> |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[swMemUsage.0].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|{#SENSOR_INFO}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#SENSOR_INFO}: Power supply is not in normal state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1` |INFO |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Power supply is in critical state</p> |
+|System status is in critical state |<p>Please check the device for errors</p> |`{TEMPLATE_NAME:system.status[swOperStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1` |HIGH | |
+|System status is in warning state |<p>Please check the device for warnings</p> |`{TEMPLATE_NAME:system.status[swOperStatus.0].count(#1,{$HEALTH_WARN_STATUS:"offline"},eq)}=1 or {TEMPLATE_NAME:system.status[swOperStatus.0].count(#1,{$HEALTH_WARN_STATUS:"testing"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- System status is in critical state</p> |
+|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Brocade FC SNMP:sensor.temp.status[swSensorStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: no IF-MIB::ifAlias is available
+ - Version: v6.3.1c, v7.0.0c, v7.4.1c
+ - Device: all
+
diff --git a/templates/net/brocade_fc_sw_snmpv2/template_net_brocade_fc_sw_snmpv2.xml b/templates/net/brocade_fc_sw_snmp/template_net_brocade_fc_sw_snmp.xml
index eb23d6011a8..ef43e026b7c 100644
--- a/templates/net/brocade_fc_sw_snmpv2/template_net_brocade_fc_sw_snmpv2.xml
+++ b/templates/net/brocade_fc_sw_snmp/template_net_brocade_fc_sw_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:23Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net Brocade FC SNMPv2</template>
- <name>Template Net Brocade FC SNMPv2</name>
+ <template>Template Net Brocade FC SNMP</template>
+ <name>Template Net Brocade FC SNMP</name>
<description>Template Net Brocade FC&#13;
&#13;
MIBs used:&#13;
@@ -22,13 +22,13 @@ Known Issues:&#13;
Version: v6.3.1c, v7.0.0c, v7.4.1c&#13;
Device: all&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -62,8 +62,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.26.1.0</snmp_oid>
<key>system.cpu.util[swCpuUsage.0]</key>
<history>7d</history>
@@ -88,8 +87,7 @@ System's CPU usage.</description>
</item>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.1.6.0</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -121,8 +119,7 @@ System's CPU usage.</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.1.10.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -154,8 +151,7 @@ System's CPU usage.</description>
</item>
<item>
<name>Overall system health status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.1.7.0</snmp_oid>
<key>system.status[swOperStatus.0]</key>
<delay>30s</delay>
@@ -192,7 +188,7 @@ faulty(4) means the switch is not operational.</description>
<dependencies>
<dependency>
<name>System status is in critical state</name>
- <expression>{Template Net Brocade FC SNMPv2:system.status[swOperStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Brocade FC SNMP:system.status[swOperStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger>
@@ -200,8 +196,7 @@ faulty(4) means the switch is not operational.</description>
</item>
<item>
<name>Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.26.6.0</snmp_oid>
<key>vm.memory.util[swMemUsage.0]</key>
<history>7d</history>
@@ -227,8 +222,7 @@ Memory utilization in %</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.1,{#SENSOR_TYPE},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.2,{#SENSOR_INFO},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.5]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -245,8 +239,7 @@ Memory utilization in %</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Fan speed</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.1.22.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.speed[swSensorValue.{#SNMPINDEX}]</key>
<units>rpm</units>
@@ -262,8 +255,7 @@ The fan value will be in RPM(revolution per minute)</description>
</item_prototype>
<item_prototype>
<name>{#SENSOR_INFO}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.1.22.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[swSensorStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -295,7 +287,7 @@ The fan value will be in RPM(revolution per minute)</description>
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Fan is in critical state</name>
- <expression>{Template Net Brocade FC SNMPv2:sensor.fan.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Brocade FC SNMP:sensor.fan.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -305,8 +297,7 @@ The fan value will be in RPM(revolution per minute)</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.1,{#SENSOR_TYPE},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.2,{#SENSOR_INFO},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.5]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -323,8 +314,7 @@ The fan value will be in RPM(revolution per minute)</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.1.22.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[swSensorStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -356,7 +346,7 @@ The fan value will be in RPM(revolution per minute)</description>
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Power supply is in critical state</name>
- <expression>{Template Net Brocade FC SNMPv2:sensor.psu.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Brocade FC SNMP:sensor.psu.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -366,8 +356,7 @@ The fan value will be in RPM(revolution per minute)</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.1,{#SENSOR_TYPE},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.2,{#SENSOR_INFO},1.3.6.1.4.1.1588.2.1.1.1.1.22.1.5]</snmp_oid>
<key>temperature.discovery</key>
<delay>1h</delay>
@@ -384,8 +373,7 @@ The fan value will be in RPM(revolution per minute)</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.1.22.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[swSensorStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -404,8 +392,7 @@ Temperature status of testpoint: {#SENSOR_INFO}</description>
</item_prototype>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1588.2.1.1.1.1.22.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[swSensorValue.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -441,11 +428,11 @@ Temperature readings of testpoint: {#SENSOR_INFO}</description>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Net Brocade FC SNMPv2:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
+ <expression>{Template Net Brocade FC SNMP:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
or&#13;
-{Template Net Brocade FC SNMPv2:sensor.temp.status[swSensorStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
+{Template Net Brocade FC SNMP:sensor.temp.status[swSensorStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Net Brocade FC SNMPv2:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
+ <recovery_expression>{Template Net Brocade FC SNMP:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
<name>{#SENSOR_INFO}: Temperature is above warning threshold: &gt;{$TEMP_WARN:""}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
@@ -453,8 +440,8 @@ or&#13;
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Brocade FC SNMPv2:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Brocade FC SNMPv2:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Brocade FC SNMP:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Brocade FC SNMP:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -527,7 +514,7 @@ or&#13;
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Brocade FC SNMPv2</host>
+ <host>Template Net Brocade FC SNMP</host>
<key>system.cpu.util[swCpuUsage.0]</key>
</item>
</graph_item>
@@ -542,7 +529,7 @@ or&#13;
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Brocade FC SNMPv2</host>
+ <host>Template Net Brocade FC SNMP</host>
<key>vm.memory.util[swMemUsage.0]</key>
</item>
</graph_item>
diff --git a/templates/net/brocade_fc_sw_snmpv2/README.md b/templates/net/brocade_fc_sw_snmpv2/README.md
deleted file mode 100644
index cdc6d06c36c..00000000000
--- a/templates/net/brocade_fc_sw_snmpv2/README.md
+++ /dev/null
@@ -1,98 +0,0 @@
-
-# Template Net Brocade FC SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-https://community.brocade.com/dtscp75322/attachments/dtscp75322/fibre/25235/1/FOS_MIB_Reference_v740.pdf
-
-This template was tested on:
-
-- Brocade 6520, version v7.4.1c
-- Brocade 300, version v7.0.0c
-- Brocade BL 5480, version v6.3.1c
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`2`|
-|{$FAN_OK_STATUS}|<p>-</p>|`4`|
-|{$HEALTH_CRIT_STATUS}|<p>-</p>|`4`|
-|{$HEALTH_WARN_STATUS:"offline"}|<p>-</p>|`2`|
-|{$HEALTH_WARN_STATUS:"testing"}|<p>-</p>|`3`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`2`|
-|{$PSU_OK_STATUS}|<p>-</p>|`4`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`75`|
-|{$TEMP_WARN_STATUS}|<p>-</p>|`5`|
-|{$TEMP_WARN}|<p>-</p>|`65`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>-</p>|SNMP|temperature.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_TYPE} MATCHES_REGEX `1`</p>|
-|PSU Discovery|<p>-</p>|SNMP|psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_TYPE} MATCHES_REGEX `3`</p>|
-|FAN Discovery|<p>-</p>|SNMP|fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_TYPE} MATCHES_REGEX `2`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: SW-MIB</p><p>System's CPU usage.</p>|SNMP|system.cpu.util[swCpuUsage.0]|
-|Fans|{#SENSOR_INFO}: Fan status|<p>MIB: SW-MIB</p>|SNMP|sensor.fan.status[swSensorStatus.{#SNMPINDEX}]|
-|Fans|{#SENSOR_INFO}: Fan speed|<p>MIB: SW-MIB</p><p>The current value (reading) of the sensor.</p><p>The value, -2147483648, represents an unknown quantity.</p><p>The fan value will be in RPM(revolution per minute)</p>|SNMP|sensor.fan.speed[swSensorValue.{#SNMPINDEX}]|
-|Inventory|Hardware serial number|<p>MIB: SW-MIB</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: SW-MIB</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|Memory utilization|<p>MIB: SW-MIB</p><p>Memory utilization in %</p>|SNMP|vm.memory.util[swMemUsage.0]|
-|Power_supply|{#SENSOR_INFO}: Power supply status|<p>MIB: SW-MIB</p>|SNMP|sensor.psu.status[swSensorStatus.{#SNMPINDEX}]|
-|Status|Overall system health status|<p>MIB: SW-MIB</p><p>The current operational status of the switch.The states are as follow:</p><p>online(1) means the switch is accessible by an external Fibre Channel port</p><p>offline(2) means the switch is not accessible</p><p>testing(3) means the switch is in a built-in test mode and is not accessible by an external Fibre Channel port</p><p>faulty(4) means the switch is not operational.</p>|SNMP|system.status[swOperStatus.0]|
-|Temperature|{#SENSOR_INFO}: Temperature|<p>MIB: SW-MIB</p><p>Temperature readings of testpoint: {#SENSOR_INFO}</p>|SNMP|sensor.temp.value[swSensorValue.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_INFO}: Temperature status|<p>MIB: SW-MIB</p><p>Temperature status of testpoint: {#SENSOR_INFO}</p>|SNMP|sensor.temp.status[swSensorStatus.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[swCpuUsage.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|{#SENSOR_INFO}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#SENSOR_INFO}: Fan is not in normal state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1`|INFO|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p>|
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[swMemUsage.0].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|{#SENSOR_INFO}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#SENSOR_INFO}: Power supply is not in normal state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1`|INFO|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Power supply is in critical state</p>|
-|System status is in critical state|<p>Please check the device for errors</p>|`{TEMPLATE_NAME:system.status[swOperStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1`|HIGH||
-|System status is in warning state|<p>Please check the device for warnings</p>|`{TEMPLATE_NAME:system.status[swOperStatus.0].count(#1,{$HEALTH_WARN_STATUS:"offline"},eq)}=1 or {TEMPLATE_NAME:system.status[swOperStatus.0].count(#1,{$HEALTH_WARN_STATUS:"testing"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- System status is in critical state</p>|
-|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Brocade FC SNMPv2:sensor.temp.status[swSensorStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swSensorValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: no IF-MIB::ifAlias is available
- - Version: v6.3.1c, v7.0.0c, v7.4.1c
- - Device: all
-
diff --git a/templates/net/brocade_foundry_sw_snmp/README.md b/templates/net/brocade_foundry_sw_snmp/README.md
new file mode 100644
index 00000000000..8a66bfcfb8d
--- /dev/null
+++ b/templates/net/brocade_foundry_sw_snmp/README.md
@@ -0,0 +1,221 @@
+
+# Template Module Brocade_Foundry Performance SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The statistics collection of 1 minute CPU utilization.</p> |SNMP |system.cpu.util[snAgGblCpuUtil1MinAvg.0] |
+|Memory |Memory utilization |<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The system dynamic memory utilization, in unit of percentage.</p><p>Deprecated: Refer to snAgSystemDRAMUtil.</p><p>For NI platforms, refer to snAgentBrdMemoryUtil100thPercent</p> |SNMP |vm.memory.util[snAgGblDynMemUtil.0] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[snAgGblCpuUtil1MinAvg.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[snAgGblDynMemUtil.0].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Net Brocade_Foundry Nonstackable SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+For devices(old Foundry devices, MLXe and so on) that doesn't support Stackable SNMP Tables: snChasFan2Table, snChasPwrSupply2Table,snAgentTemp2Table -
+FOUNDRY-SN-AGENT-MIB::snChasFanTable, snChasPwrSupplyTable,snAgentTempTable are used instead.
+For example:
+The objects in table snChasPwrSupply2Table is not supported on the NetIron and the FastIron SX devices.
+snChasFan2Table is not supported on on the NetIron devices.
+snAgentTemp2Table is not supported on old versions of MLXe
+
+This template was tested on:
+
+- Brocade MLXe, version (System Mode: MLX), IronWare Version V5.4.0eT163 Compiled on Oct 30 2013 at 16:40:24 labeled as V5.4.00e
+- Foundry FLS648, version Foundry Networks, Inc. FLS648, IronWare Version 04.1.00bT7e1 Compiled on Feb 29 2008 at 21:35:28 labeled as FGS04100b
+- Foundry FWSX424, version Foundry Networks, Inc. FWSX424, IronWare Version 02.0.00aT1e0 Compiled on Dec 10 2004 at 14:40:19 labeled as FWXS02000a
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$FAN_CRIT_STATUS} |<p>-</p> |`3` |
+|{$FAN_OK_STATUS} |<p>-</p> |`2` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`3` |
+|{$PSU_OK_STATUS} |<p>-</p> |`2` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`75` |
+|{$TEMP_WARN} |<p>-</p> |`65` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Brocade_Foundry Performance SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|PSU Discovery |<p>snChasPwrSupplyTable: A table of each power supply information. Only installed power supply appears in a table row.</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>snChasFanTable: A table of each fan information. Only installed fan appears in a table row.</p> |SNMP |fan.discovery |
+|Temperature Discovery |<p>snAgentTempTable:Table to list temperatures of the modules in the device. This table is applicable to only those modules with temperature sensors.</p> |SNMP |temp.discovery |
+|Temperature Discovery Chassis |<p>Since temperature of the chassis is not available on all Brocade/Foundry hardware, this LLD is here to avoid unsupported items.</p> |SNMP |temp.chassis.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Fans |Fan {#FAN_INDEX}: Fan status |<p>MIB: FOUNDRY-SN-AGENT-MIB</p> |SNMP |sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}] |
+|Inventory |Hardware serial number |<p>MIB: FOUNDRY-SN-AGENT-MIB</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The version of the running software in the form'major.minor.maintenance[letters]'</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Power_supply |PSU {#PSU_INDEX}: Power supply status |<p>MIB: FOUNDRY-SN-AGENT-MIB</p> |SNMP |sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_DESCR}: Temperature |<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>Temperature of the sensor represented by this row. Each unit is 0.5 degrees Celsius.</p> |SNMP |sensor.temp.value[snAgentTempValue.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.5`</p> |
+|Temperature |Chassis #{#SNMPINDEX}: Temperature |<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>Temperature of the chassis. Each unit is 0.5 degrees Celcius.</p><p>Only management module built with temperature sensor hardware is applicable.</p><p>For those non-applicable management module, it returns no-such-name.</p> |SNMP |sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.5`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Fan {#FAN_INDEX}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Fan {#FAN_INDEX}: Fan is not in normal state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1` |INFO |<p>**Depends on**:</p><p>- Fan {#FAN_INDEX}: Fan is in critical state</p> |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|PSU {#PSU_INDEX}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|PSU {#PSU_INDEX}: Power supply is not in normal state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1` |INFO |<p>**Depends on**:</p><p>- PSU {#PSU_INDEX}: Power supply is in critical state</p> |
+|{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+|Chassis #{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"Chassis"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Chassis"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Chassis"}-3` |WARNING |<p>**Depends on**:</p><p>- Chassis #{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Chassis"}</p> |
+|Chassis #{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Chassis"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Chassis"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Chassis"}-3` |HIGH | |
+|Chassis #{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"Chassis"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Chassis"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Chassis"}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Net Brocade_Foundry Stackable SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+For devices(most of the IronWare Brocade devices) that support Stackable SNMP Tables in FOUNDRY-SN-AGENT-MIB: snChasFan2Table, snChasPwrSupply2Table,snAgentTemp2Table - so objects from all Stack members are provided.
+
+This template was tested on:
+
+- Brocade ICX7250-48, version ICX7250-48, IronWare Version 08.0.30kT211 Compiled on Oct 18 2016 at 05:40:38 labeled as SPS08030k
+- Brocade ICX7250-48(Stacked), version Stacking System ICX7250-48, IronWare Version 08.0.30kT211 Compiled on Oct 18 2016 at 05:40:38 labeled as SPS08030k
+- Brocade ICX7450-48(Stacked), version Stacking System ICX7450-48, IronWare Version 08.0.30kT211 Compiled on Oct 18 2016 at 05:40:38 labeled as SPS08030k"
+- Brocade ICX7250-48(Stacked), version Stacking System ICX7250-48, IronWare Version 08.0.30kT211 Compiled on Oct 18 2016 at 05:40:38 labeled as SPS08030k
+- Brocade ICX7450-48F(Stacked), version Stacking System ICX7750-48F, IronWare Version 08.0.40bT203 Compiled on Oct 20 2016 at 23:48:43 labeled as SWR08040b
+- Brocade ICX 6600, version
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$FAN_CRIT_STATUS} |<p>-</p> |`3` |
+|{$FAN_OK_STATUS} |<p>-</p> |`2` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`3` |
+|{$PSU_OK_STATUS} |<p>-</p> |`2` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`75` |
+|{$TEMP_WARN} |<p>-</p> |`65` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Brocade_Foundry Performance SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|PSU Discovery |<p>snChasPwrSupply2Table: A table of each power supply information for each unit. Only installed power supply appears in a table row.</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>snChasFan2Table: A table of each fan information for each unit. Only installed fan appears in a table row.</p> |SNMP |fan.discovery |
+|Temperature Discovery |<p>snAgentTemp2Table:Table to list temperatures of the modules in the device for each unit. This table is applicable to only those modules with temperature sensors.</p> |SNMP |temp.discovery |
+|Stack Discovery |<p>Discovering snStackingConfigUnitTable for Model names</p> |SNMP |stack.discovery |
+|Chassis Discovery |<p>snChasUnitIndex: The index to chassis table.</p> |SNMP |chassis.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Fans |Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan status |<p>MIB: FOUNDRY-SN-AGENT-MIB</p> |SNMP |sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}] |
+|Inventory |Firmware version |<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The version of the running software in the form 'major.minor.maintenance[letters]'</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Unit {#SNMPINDEX}: Hardware model name |<p>MIB: FOUNDRY-SN-STACKING-MIB</p><p>A description of the configured/active system type for each unit.</p> |SNMP |system.hw.model[snStackingConfigUnitType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Unit {#SNMPVALUE}: Hardware serial number |<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The serial number of the chassis for each unit. If the serial number is unknown or unavailable then the value should be a zero length string.</p> |SNMP |system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Power_supply |Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply status |<p>MIB: FOUNDRY-SN-AGENT-MIB</p> |SNMP |sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_DESCR}: Temperature |<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>Temperature of the sensor represented by this row. Each unit is 0.5 degrees Celsius.</p> |SNMP |sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.5`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is not in normal state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1` |INFO |<p>**Depends on**:</p><p>- Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is in critical state</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Unit {#SNMPVALUE}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is not in normal state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1` |INFO |<p>**Depends on**:</p><p>- Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is in critical state</p> |
+|{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: Correct fan(returns fan status as 'other(1)' and temperature (returns 0) for the non-master Switches are not available in SNMP
+ - Version: Version 08.0.40b and above
+ - Device: ICX 7750 in stack
+
diff --git a/templates/net/brocade_foundry_sw_snmpv2/template_net_brocade_foundry_sw_snmpv2.xml b/templates/net/brocade_foundry_sw_snmp/template_net_brocade_foundry_sw_snmp.xml
index 4941f5e4db5..dfde9e10049 100644
--- a/templates/net/brocade_foundry_sw_snmpv2/template_net_brocade_foundry_sw_snmpv2.xml
+++ b/templates/net/brocade_foundry_sw_snmp/template_net_brocade_foundry_sw_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:12Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -12,14 +12,14 @@
</groups>
<templates>
<template>
- <template>Template Module Brocade_Foundry Performance SNMPv2</template>
- <name>Template Module Brocade_Foundry Performance SNMPv2</name>
+ <template>Template Module Brocade_Foundry Performance SNMP</template>
+ <name>Template Module Brocade_Foundry Performance SNMP</name>
<description>Template Module Brocade_Foundry Performance&#13;
&#13;
MIBs used:&#13;
FOUNDRY-SN-AGENT-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -36,8 +36,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.2.1.52.0</snmp_oid>
<key>system.cpu.util[snAgGblCpuUtil1MinAvg.0]</key>
<history>7d</history>
@@ -62,8 +61,7 @@ The statistics collection of 1 minute CPU utilization.</description>
</item>
<item>
<name>Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.2.1.53.0</snmp_oid>
<key>vm.memory.util[snAgGblDynMemUtil.0]</key>
<history>7d</history>
@@ -100,23 +98,23 @@ For NI platforms, refer to snAgentBrdMemoryUtil100thPercent</description>
</macros>
</template>
<template>
- <template>Template Net Brocade_Foundry Nonstackable SNMPv2</template>
- <name>Template Net Brocade_Foundry Nonstackable SNMPv2</name>
+ <template>Template Net Brocade_Foundry Nonstackable SNMP</template>
+ <name>Template Net Brocade_Foundry Nonstackable SNMP</name>
<description>Template Net Brocade_Foundry Nonstackable&#13;
&#13;
MIBs used:&#13;
FOUNDRY-SN-AGENT-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Brocade_Foundry Performance SNMPv2</name>
+ <name>Template Module Brocade_Foundry Performance SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -141,8 +139,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.2.1.11.0</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -175,8 +172,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.1.1.2.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -210,8 +206,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#FAN_INDEX},1.3.6.1.4.1.1991.1.1.1.3.1.1.1]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -219,8 +214,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
<item_prototypes>
<item_prototype>
<name>Fan {#FAN_INDEX}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.1.3.1.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -252,7 +246,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
<dependencies>
<dependency>
<name>Fan {#FAN_INDEX}: Fan is in critical state</name>
- <expression>{Template Net Brocade_Foundry Nonstackable SNMPv2:sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Brocade_Foundry Nonstackable SNMP:sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -262,8 +256,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#PSU_INDEX},1.3.6.1.4.1.1991.1.1.1.2.1.1.1]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -271,8 +264,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
<item_prototypes>
<item_prototype>
<name>PSU {#PSU_INDEX}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.1.2.1.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -304,7 +296,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
<dependencies>
<dependency>
<name>PSU {#PSU_INDEX}: Power supply is in critical state</name>
- <expression>{Template Net Brocade_Foundry Nonstackable SNMPv2:sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Brocade_Foundry Nonstackable SNMP:sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -314,8 +306,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery Chassis</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1991.1.1.1.1.18]</snmp_oid>
<key>temp.chassis.discovery</key>
<delay>1h</delay>
@@ -323,8 +314,7 @@ The version of the running software in the form'major.minor.maintenance[letters]
<item_prototypes>
<item_prototype>
<name>Chassis #{#SNMPINDEX}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.1.1.18.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -357,8 +347,8 @@ For those non-applicable management module, it returns no-such-name.</descriptio
<dependencies>
<dependency>
<name>Chassis #{#SNMPINDEX}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Chassis"}</name>
- <expression>{Template Net Brocade_Foundry Nonstackable SNMPv2:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Chassis"}</expression>
- <recovery_expression>{Template Net Brocade_Foundry Nonstackable SNMPv2:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Chassis"}-3</recovery_expression>
+ <expression>{Template Net Brocade_Foundry Nonstackable SNMP:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Chassis"}</expression>
+ <recovery_expression>{Template Net Brocade_Foundry Nonstackable SNMP:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Chassis"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -385,8 +375,7 @@ For those non-applicable management module, it returns no-such-name.</descriptio
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_DESCR},1.3.6.1.4.1.1991.1.1.2.13.1.1.3]</snmp_oid>
<key>temp.discovery</key>
<delay>1h</delay>
@@ -394,8 +383,7 @@ For those non-applicable management module, it returns no-such-name.</descriptio
<item_prototypes>
<item_prototype>
<name>{#SENSOR_DESCR}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.2.13.1.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[snAgentTempValue.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -426,8 +414,8 @@ Temperature of the sensor represented by this row. Each unit is 0.5 degrees Cels
<dependencies>
<dependency>
<name>{#SENSOR_DESCR}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Brocade_Foundry Nonstackable SNMPv2:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Brocade_Foundry Nonstackable SNMPv2:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Brocade_Foundry Nonstackable SNMP:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Brocade_Foundry Nonstackable SNMP:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -485,8 +473,8 @@ Temperature of the sensor represented by this row. Each unit is 0.5 degrees Cels
</macros>
</template>
<template>
- <template>Template Net Brocade_Foundry Stackable SNMPv2</template>
- <name>Template Net Brocade_Foundry Stackable SNMPv2</name>
+ <template>Template Net Brocade_Foundry Stackable SNMP</template>
+ <name>Template Net Brocade_Foundry Stackable SNMP</name>
<description>Template Brocade_Foundry Stackable&#13;
&#13;
MIBs used:&#13;
@@ -499,16 +487,16 @@ Known Issues:&#13;
Version: Version 08.0.40b and above&#13;
Device: ICX 7750 in stack&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Brocade_Foundry Performance SNMPv2</name>
+ <name>Template Module Brocade_Foundry Performance SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -533,8 +521,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.2.1.11.0</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -569,8 +556,7 @@ The version of the running software in the form 'major.minor.maintenance[letters
<discovery_rules>
<discovery_rule>
<name>Chassis Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1991.1.1.1.4.1.1.1]</snmp_oid>
<key>chassis.discovery</key>
<delay>1h</delay>
@@ -578,8 +564,7 @@ The version of the running software in the form 'major.minor.maintenance[letters
<item_prototypes>
<item_prototype>
<name>Unit {#SNMPVALUE}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.1.4.1.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -613,8 +598,7 @@ The serial number of the chassis for each unit. If the serial number is unknown
</discovery_rule>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#FAN_UNIT},1.3.6.1.4.1.1991.1.1.1.3.2.1.1,{#FAN_INDEX},1.3.6.1.4.1.1991.1.1.1.3.2.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -622,8 +606,7 @@ The serial number of the chassis for each unit. If the serial number is unknown
<item_prototypes>
<item_prototype>
<name>Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.1.3.2.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -655,7 +638,7 @@ The serial number of the chassis for each unit. If the serial number is unknown
<dependencies>
<dependency>
<name>Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is in critical state</name>
- <expression>{Template Net Brocade_Foundry Stackable SNMPv2:sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Brocade_Foundry Stackable SNMP:sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -665,8 +648,7 @@ The serial number of the chassis for each unit. If the serial number is unknown
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#PSU_UNIT},1.3.6.1.4.1.1991.1.1.1.2.2.1.1,{#PSU_INDEX},1.3.6.1.4.1.1991.1.1.1.2.2.1.2]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -674,8 +656,7 @@ The serial number of the chassis for each unit. If the serial number is unknown
<item_prototypes>
<item_prototype>
<name>Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.1.2.2.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -707,7 +688,7 @@ The serial number of the chassis for each unit. If the serial number is unknown
<dependencies>
<dependency>
<name>Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is in critical state</name>
- <expression>{Template Net Brocade_Foundry Stackable SNMPv2:sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Brocade_Foundry Stackable SNMP:sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -717,8 +698,7 @@ The serial number of the chassis for each unit. If the serial number is unknown
</discovery_rule>
<discovery_rule>
<name>Stack Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1991.1.1.3.31.2.1.1.5]</snmp_oid>
<key>stack.discovery</key>
<delay>1h</delay>
@@ -726,8 +706,7 @@ The serial number of the chassis for each unit. If the serial number is unknown
<item_prototypes>
<item_prototype>
<name>Unit {#SNMPINDEX}: Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.3.31.2.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>system.hw.model[snStackingConfigUnitType.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -752,8 +731,7 @@ A description of the configured/active system type for each unit.</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_DESCR},1.3.6.1.4.1.1991.1.1.2.13.3.1.4]</snmp_oid>
<key>temp.discovery</key>
<delay>1h</delay>
@@ -761,8 +739,7 @@ A description of the configured/active system type for each unit.</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_DESCR}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1991.1.1.2.13.3.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -793,8 +770,8 @@ Temperature of the sensor represented by this row. Each unit is 0.5 degrees Cels
<dependencies>
<dependency>
<name>{#SENSOR_DESCR}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Brocade_Foundry Stackable SNMPv2:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Brocade_Foundry Stackable SNMPv2:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Brocade_Foundry Stackable SNMP:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Brocade_Foundry Stackable SNMP:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -862,7 +839,7 @@ Temperature of the sensor represented by this row. Each unit is 0.5 degrees Cels
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Brocade_Foundry Performance SNMPv2</host>
+ <host>Template Module Brocade_Foundry Performance SNMP</host>
<key>system.cpu.util[snAgGblCpuUtil1MinAvg.0]</key>
</item>
</graph_item>
@@ -877,7 +854,7 @@ Temperature of the sensor represented by this row. Each unit is 0.5 degrees Cels
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Brocade_Foundry Performance SNMPv2</host>
+ <host>Template Module Brocade_Foundry Performance SNMP</host>
<key>vm.memory.util[snAgGblDynMemUtil.0]</key>
</item>
</graph_item>
diff --git a/templates/net/brocade_foundry_sw_snmpv2/README.md b/templates/net/brocade_foundry_sw_snmpv2/README.md
deleted file mode 100644
index 97974bae73d..00000000000
--- a/templates/net/brocade_foundry_sw_snmpv2/README.md
+++ /dev/null
@@ -1,221 +0,0 @@
-
-# Template Module Brocade_Foundry Performance SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The statistics collection of 1 minute CPU utilization.</p>|SNMP|system.cpu.util[snAgGblCpuUtil1MinAvg.0]|
-|Memory|Memory utilization|<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The system dynamic memory utilization, in unit of percentage.</p><p>Deprecated: Refer to snAgSystemDRAMUtil.</p><p>For NI platforms, refer to snAgentBrdMemoryUtil100thPercent</p>|SNMP|vm.memory.util[snAgGblDynMemUtil.0]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[snAgGblCpuUtil1MinAvg.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[snAgGblDynMemUtil.0].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Net Brocade_Foundry Nonstackable SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-For devices(old Foundry devices, MLXe and so on) that doesn't support Stackable SNMP Tables: snChasFan2Table, snChasPwrSupply2Table,snAgentTemp2Table -
-FOUNDRY-SN-AGENT-MIB::snChasFanTable, snChasPwrSupplyTable,snAgentTempTable are used instead.
-For example:
-The objects in table snChasPwrSupply2Table is not supported on the NetIron and the FastIron SX devices.
-snChasFan2Table is not supported on on the NetIron devices.
-snAgentTemp2Table is not supported on old versions of MLXe
-
-This template was tested on:
-
-- Brocade MLXe, version (System Mode: MLX), IronWare Version V5.4.0eT163 Compiled on Oct 30 2013 at 16:40:24 labeled as V5.4.00e
-- Foundry FLS648, version Foundry Networks, Inc. FLS648, IronWare Version 04.1.00bT7e1 Compiled on Feb 29 2008 at 21:35:28 labeled as FGS04100b
-- Foundry FWSX424, version Foundry Networks, Inc. FWSX424, IronWare Version 02.0.00aT1e0 Compiled on Dec 10 2004 at 14:40:19 labeled as FWXS02000a
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`3`|
-|{$FAN_OK_STATUS}|<p>-</p>|`2`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`3`|
-|{$PSU_OK_STATUS}|<p>-</p>|`2`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`75`|
-|{$TEMP_WARN}|<p>-</p>|`65`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Brocade_Foundry Performance SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|PSU Discovery|<p>snChasPwrSupplyTable: A table of each power supply information. Only installed power supply appears in a table row.</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>snChasFanTable: A table of each fan information. Only installed fan appears in a table row.</p>|SNMP|fan.discovery|
-|Temperature Discovery|<p>snAgentTempTable:Table to list temperatures of the modules in the device. This table is applicable to only those modules with temperature sensors.</p>|SNMP|temp.discovery|
-|Temperature Discovery Chassis|<p>Since temperature of the chassis is not available on all Brocade/Foundry hardware, this LLD is here to avoid unsupported items.</p>|SNMP|temp.chassis.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|Fan {#FAN_INDEX}: Fan status|<p>MIB: FOUNDRY-SN-AGENT-MIB</p>|SNMP|sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}]|
-|Inventory|Hardware serial number|<p>MIB: FOUNDRY-SN-AGENT-MIB</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The version of the running software in the form'major.minor.maintenance[letters]'</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Power_supply|PSU {#PSU_INDEX}: Power supply status|<p>MIB: FOUNDRY-SN-AGENT-MIB</p>|SNMP|sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_DESCR}: Temperature|<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>Temperature of the sensor represented by this row. Each unit is 0.5 degrees Celsius.</p>|SNMP|sensor.temp.value[snAgentTempValue.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.5`</p>|
-|Temperature|Chassis #{#SNMPINDEX}: Temperature|<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>Temperature of the chassis. Each unit is 0.5 degrees Celcius.</p><p>Only management module built with temperature sensor hardware is applicable.</p><p>For those non-applicable management module, it returns no-such-name.</p>|SNMP|sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.5`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Fan {#FAN_INDEX}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Fan {#FAN_INDEX}: Fan is not in normal state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1`|INFO|<p>**Depends on**:</p><p>- Fan {#FAN_INDEX}: Fan is in critical state</p>|
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|PSU {#PSU_INDEX}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|PSU {#PSU_INDEX}: Power supply is not in normal state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1`|INFO|<p>**Depends on**:</p><p>- PSU {#PSU_INDEX}: Power supply is in critical state</p>|
-|{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-|Chassis #{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"Chassis"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Chassis"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Chassis"}-3`|WARNING|<p>**Depends on**:</p><p>- Chassis #{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Chassis"}</p>|
-|Chassis #{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Chassis"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Chassis"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Chassis"}-3`|HIGH||
-|Chassis #{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"Chassis"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Chassis"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Chassis"}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Net Brocade_Foundry Stackable SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-For devices(most of the IronWare Brocade devices) that support Stackable SNMP Tables in FOUNDRY-SN-AGENT-MIB: snChasFan2Table, snChasPwrSupply2Table,snAgentTemp2Table - so objects from all Stack members are provided.
-
-This template was tested on:
-
-- Brocade ICX7250-48, version ICX7250-48, IronWare Version 08.0.30kT211 Compiled on Oct 18 2016 at 05:40:38 labeled as SPS08030k
-- Brocade ICX7250-48(Stacked), version Stacking System ICX7250-48, IronWare Version 08.0.30kT211 Compiled on Oct 18 2016 at 05:40:38 labeled as SPS08030k
-- Brocade ICX7450-48(Stacked), version Stacking System ICX7450-48, IronWare Version 08.0.30kT211 Compiled on Oct 18 2016 at 05:40:38 labeled as SPS08030k"
-- Brocade ICX7250-48(Stacked), version Stacking System ICX7250-48, IronWare Version 08.0.30kT211 Compiled on Oct 18 2016 at 05:40:38 labeled as SPS08030k
-- Brocade ICX7450-48F(Stacked), version Stacking System ICX7750-48F, IronWare Version 08.0.40bT203 Compiled on Oct 20 2016 at 23:48:43 labeled as SWR08040b
-- Brocade ICX 6600, version
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`3`|
-|{$FAN_OK_STATUS}|<p>-</p>|`2`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`3`|
-|{$PSU_OK_STATUS}|<p>-</p>|`2`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`75`|
-|{$TEMP_WARN}|<p>-</p>|`65`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Brocade_Foundry Performance SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|PSU Discovery|<p>snChasPwrSupply2Table: A table of each power supply information for each unit. Only installed power supply appears in a table row.</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>snChasFan2Table: A table of each fan information for each unit. Only installed fan appears in a table row.</p>|SNMP|fan.discovery|
-|Temperature Discovery|<p>snAgentTemp2Table:Table to list temperatures of the modules in the device for each unit. This table is applicable to only those modules with temperature sensors.</p>|SNMP|temp.discovery|
-|Stack Discovery|<p>Discovering snStackingConfigUnitTable for Model names</p>|SNMP|stack.discovery|
-|Chassis Discovery|<p>snChasUnitIndex: The index to chassis table.</p>|SNMP|chassis.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan status|<p>MIB: FOUNDRY-SN-AGENT-MIB</p>|SNMP|sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}]|
-|Inventory|Firmware version|<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The version of the running software in the form 'major.minor.maintenance[letters]'</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Unit {#SNMPINDEX}: Hardware model name|<p>MIB: FOUNDRY-SN-STACKING-MIB</p><p>A description of the configured/active system type for each unit.</p>|SNMP|system.hw.model[snStackingConfigUnitType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Unit {#SNMPVALUE}: Hardware serial number|<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>The serial number of the chassis for each unit. If the serial number is unknown or unavailable then the value should be a zero length string.</p>|SNMP|system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Power_supply|Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply status|<p>MIB: FOUNDRY-SN-AGENT-MIB</p>|SNMP|sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_DESCR}: Temperature|<p>MIB: FOUNDRY-SN-AGENT-MIB</p><p>Temperature of the sensor represented by this row. Each unit is 0.5 degrees Celsius.</p>|SNMP|sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.5`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is not in normal state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1`|INFO|<p>**Depends on**:</p><p>- Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is in critical state</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Unit {#SNMPVALUE}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is not in normal state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1`|INFO|<p>**Depends on**:</p><p>- Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is in critical state</p>|
-|{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: Correct fan(returns fan status as 'other(1)' and temperature (returns 0) for the non-master Switches are not available in SNMP
- - Version: Version 08.0.40b and above
- - Device: ICX 7750 in stack
-
diff --git a/templates/net/cisco_snmp/README.md b/templates/net/cisco_snmp/README.md
new file mode 100644
index 00000000000..4d7ed2decb1
--- /dev/null
+++ b/templates/net/cisco_snmp/README.md
@@ -0,0 +1,421 @@
+
+# Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Memory Discovery |<p>Discovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.</p><p>http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html</p> |SNMP |memory.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Memory |{#SNMPVALUE}: Used memory |<p>MIB: CISCO-MEMORY-POOL-MIB</p><p>Indicates the number of bytes from the memory pool that are currently in use by applications on the managed device.</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html</p> |SNMP |vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}] |
+|Memory |{#SNMPVALUE}: Free memory |<p>MIB: CISCO-MEMORY-POOL-MIB</p><p>Indicates the number of bytes from the memory pool that are currently unused on the managed device. Note that the sum of ciscoMemoryPoolUsed and ciscoMemoryPoolFree is the total amount of memory in the pool</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html</p> |SNMP |vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}] |
+|Memory |{#SNMPVALUE}: Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[vm.memory.util.{#SNMPINDEX}]<p>**Expression**:</p>`last("vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]")/(last("vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}]")+last("vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]"))*100` |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[vm.memory.util.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module Cisco CISCO-PROCESS-MIB SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|CPU Discovery |<p>If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable ,</p><p>indexed with cpmCPUTotalIndex .</p><p>This table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,</p><p>like different CPU chips, group of CPUs, or CPUs in different modules/cards.</p><p>In case of a single CPU, cpmCPUTotalTable has only one entry.</p> |SNMP |cpu.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |#{#SNMPINDEX}: CPU utilization |<p>MIB: CISCO-PROCESS-MIB</p><p>The cpmCPUTotal5minRev MIB object provides a more accurate view of the performance of the router over time than the MIB objects cpmCPUTotal1minRev and cpmCPUTotal5secRev . These MIB objects are not accurate because they look at CPU at one minute and five second intervals, respectively. These MIBs enable you to monitor the trends and plan the capacity of your network. The recommended baseline rising threshold for cpmCPUTotal5minRev is 90 percent. Depending on the platform, some routers that run at 90 percent, for example, 2500s, can exhibit performance degradation versus a high-end router, for example, the 7500 series, which can operate fine.</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html</p> |SNMP |system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|CPU Discovery |<p>If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable ,</p><p>indexed with cpmCPUTotalIndex .</p><p>This table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,</p><p>like different CPU chips, group of CPUs, or CPUs in different modules/cards.</p><p>In case of a single CPU, cpmCPUTotalTable has only one entry.</p> |SNMP |cpu.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |{#SNMPVALUE}: CPU utilization |<p>MIB: CISCO-PROCESS-MIB</p><p>The overall CPU busy percentage in the last 5 minute</p><p>period. This object deprecates the avgBusy5 object from</p><p>the OLD-CISCO-SYSTEM-MIB. This object is deprecated</p><p>by cpmCPUTotal5minRev which has the changed range</p><p>of value (0..100)</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html</p> |SNMP |system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module Cisco OLD-CISCO-CPU-MIB SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: OLD-CISCO-CPU-MIB</p><p>5 minute exponentially-decayed moving average of the CPU busy percentage.</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html</p> |SNMP |system.cpu.util[avgBusy5] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[avgBusy5].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module Cisco Inventory SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Entity Serial Numbers Discovery |<p>-</p> |SNMP |entity_sn.discovery<p>**Filter**:</p>AND <p>- B: {#ENT_SN} MATCHES_REGEX `.+`</p><p>- A: {#ENT_CLASS} MATCHES_REGEX `[^3]`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Inventory |Hardware model name |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Operating system |<p>MIB: SNMPv2-MIB</p> |SNMP |system.sw.os[sysDescr.0]<p>**Preprocessing**:</p><p>- REGEX: `Version (.+), RELEASE \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware serial number |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[sysDescr.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[sysDescr.0].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module Cisco CISCO-ENVMON-MIB SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$FAN_CRIT_STATUS:"critical"} |<p>-</p> |`3` |
+|{$FAN_CRIT_STATUS:"shutdown"} |<p>-</p> |`4` |
+|{$FAN_WARN_STATUS:"notFunctioning"} |<p>-</p> |`6` |
+|{$FAN_WARN_STATUS:"warning"} |<p>-</p> |`2` |
+|{$PSU_CRIT_STATUS:"critical"} |<p>-</p> |`3` |
+|{$PSU_CRIT_STATUS:"shutdown"} |<p>-</p> |`4` |
+|{$PSU_WARN_STATUS:"notFunctioning"} |<p>-</p> |`6` |
+|{$PSU_WARN_STATUS:"warning"} |<p>-</p> |`2` |
+|{$TEMP_CRIT:"CPU"} |<p>-</p> |`75` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT_STATUS} |<p>-</p> |`3` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_DISASTER_STATUS} |<p>-</p> |`4` |
+|{$TEMP_WARN:"CPU"} |<p>-</p> |`70` |
+|{$TEMP_WARN_STATUS} |<p>-</p> |`2` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status</p><p>maintained by the environmental monitor.</p> |SNMP |temperature.discovery |
+|PSU Discovery |<p>The table of power supply status maintained by the environmental monitor card.</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>The table of fan status maintained by the environmental monitor.</p> |SNMP |fan.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Fans |{#SENSOR_INFO}: Fan status |<p>MIB: CISCO-ENVMON-MIB</p> |SNMP |sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}] |
+|Power_supply |{#SENSOR_INFO}: Power supply status |<p>MIB: CISCO-ENVMON-MIB</p> |SNMP |sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}] |
+|Temperature |{#SNMPVALUE}: Temperature |<p>MIB: CISCO-ENVMON-MIB</p><p>The current measurement of the test point being instrumented.</p> |SNMP |sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}] |
+|Temperature |{#SNMPVALUE}: Temperature status |<p>MIB: CISCO-ENVMON-MIB</p><p>The current state of the test point being instrumented.</p> |SNMP |sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#SENSOR_INFO}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"critical"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"shutdown"},eq)}=1` |AVERAGE | |
+|{#SENSOR_INFO}: Fan is in warning state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"warning"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"notFunctioning"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p> |
+|{#SENSOR_INFO}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"shutdown"},eq)}=1` |AVERAGE | |
+|{#SENSOR_INFO}: Power supply is in warning state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"warning"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"notFunctioning"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Power supply is in critical state</p> |
+|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPVALUE}"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"{#SNMPVALUE}"} or {Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"{#SNMPVALUE}"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}</p> |
+|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"} or {Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS} or {Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3` |HIGH | |
+|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPVALUE}"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Net Cisco IOS SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+
+## Template links
+
+|Name|
+|----|
+|Template Module Cisco CISCO-ENVMON-MIB SNMP |
+|Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP |
+|Template Module Cisco CISCO-PROCESS-MIB SNMP |
+|Template Module Cisco Inventory SNMP |
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: no if(in|out)(Errors|Discards) are available for vlan ifType
+ - Version: IOS for example: 12.1(22)EA11, 15.4(3)M2
+ - Device: C2911, C7600
+
+# Template Net Cisco IOS versions 12.0_3_T-12.2_3.5 SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+
+## Template links
+
+|Name|
+|----|
+|Template Module Cisco CISCO-ENVMON-MIB SNMP |
+|Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP |
+|Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMP |
+|Template Module Cisco Inventory SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Net Cisco IOS prior to 12.0_3_T SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+
+## Template links
+
+|Name|
+|----|
+|Template Module Cisco CISCO-ENVMON-MIB SNMP |
+|Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP |
+|Template Module Cisco Inventory SNMP |
+|Template Module Cisco OLD-CISCO-CPU-MIB SNMP |
+|Template Module Generic SNMP |
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/cisco_snmpv2/template_net_cisco_snmpv2.xml b/templates/net/cisco_snmp/template_net_cisco_snmp.xml
index f7a1292c4cb..28a697eecc7 100644
--- a/templates/net/cisco_snmpv2/template_net_cisco_snmpv2.xml
+++ b/templates/net/cisco_snmp/template_net_cisco_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:18Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -12,14 +12,14 @@
</groups>
<templates>
<template>
- <template>Template Module Cisco CISCO-ENVMON-MIB SNMPv2</template>
- <name>Template Module Cisco CISCO-ENVMON-MIB SNMPv2</name>
+ <template>Template Module Cisco CISCO-ENVMON-MIB SNMP</template>
+ <name>Template Module Cisco CISCO-ENVMON-MIB SNMP</name>
<description>Template Cisco CISCO-ENVMON-MIB&#13;
&#13;
MIBs used:&#13;
CISCO-ENVMON-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -39,8 +39,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_INFO},1.3.6.1.4.1.9.9.13.1.4.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -48,8 +47,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.13.1.4.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -81,7 +79,7 @@ Template tooling version used: 0.34</description>
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Fan is in critical state</name>
- <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"critical"},eq)}=1 or {Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"shutdown"},eq)}=1</expression>
+ <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"critical"},eq)}=1 or {Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"shutdown"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -91,8 +89,7 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_INFO},1.3.6.1.4.1.9.9.13.1.5.1.2]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -100,8 +97,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.13.1.5.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -133,7 +129,7 @@ Template tooling version used: 0.34</description>
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Power supply is in critical state</name>
- <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"shutdown"},eq)}=1</expression>
+ <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"shutdown"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -143,8 +139,7 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.9.9.13.1.3.1.2]</snmp_oid>
<key>temperature.discovery</key>
<delay>1h</delay>
@@ -153,8 +148,7 @@ maintained by the environmental monitor.</description>
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.13.1.3.1.6.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -173,8 +167,7 @@ The current state of the test point being instrumented.</description>
</item_prototype>
<item_prototype>
<name>{#SNMPVALUE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.13.1.3.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -189,10 +182,10 @@ The current measurement of the test point being instrumented.</description>
</applications>
<trigger_prototypes>
<trigger_prototype>
- <expression>{avg(5m)}&lt;{$TEMP_CRIT_LOW:""}</expression>
+ <expression>{avg(5m)}&lt;{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{min(5m)}&gt;{$TEMP_CRIT_LOW:""}+3</recovery_expression>
- <name>{#SNMPVALUE}: Temperature is too low: &lt;{$TEMP_CRIT_LOW:""}</name>
+ <recovery_expression>{min(5m)}&gt;{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3</recovery_expression>
+ <name>{#SNMPVALUE}: Temperature is too low: &lt;{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>AVERAGE</priority>
</trigger_prototype>
@@ -201,37 +194,37 @@ The current measurement of the test point being instrumented.</description>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
+ <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"{#SNMPVALUE}"}&#13;
or&#13;
-{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
+{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
or&#13;
-{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
+{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
- <name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
+ <recovery_expression>{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"{#SNMPVALUE}"}-3</recovery_expression>
+ <name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"{#SNMPVALUE}"}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
<description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
+ <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:"{#SNMPVALUE}"}&#13;
or&#13;
-{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
+{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
- <name>{#SNMPVALUE}: Temperature is above warning threshold: &gt;{$TEMP_WARN:""}</name>
+ <recovery_expression>{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:"{#SNMPVALUE}"}-3</recovery_expression>
+ <name>{#SNMPVALUE}: Temperature is above warning threshold: &gt;{$TEMP_WARN:"{#SNMPVALUE}"}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
<description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
<dependencies>
<dependency>
- <name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
+ <name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"{#SNMPVALUE}"}</name>
+ <expression>{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"{#SNMPVALUE}"}&#13;
or&#13;
-{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
+{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
or&#13;
-{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
- <recovery_expression>{Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
+ <recovery_expression>{Template Module Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"{#SNMPVALUE}"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -306,14 +299,14 @@ or&#13;
</macros>
</template>
<template>
- <template>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2</template>
- <name>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2</name>
+ <template>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP</template>
+ <name>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP</name>
<description>Template Cisco CISCO-MEMORY-POOL-MIB&#13;
&#13;
MIBs used:&#13;
CISCO-MEMORY-POOL-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -327,8 +320,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Memory Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.9.9.48.1.1.1.2]</snmp_oid>
<key>memory.discovery</key>
<delay>1h</delay>
@@ -337,8 +329,7 @@ http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Free memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.48.1.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -354,8 +345,7 @@ Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-managemen
</item_prototype>
<item_prototype>
<name>{#SNMPVALUE}: Used memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.48.1.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -403,7 +393,7 @@ Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-managemen
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2</host>
+ <host>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP</host>
<key>vm.memory.util[vm.memory.util.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -420,14 +410,14 @@ Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-managemen
</macros>
</template>
<template>
- <template>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMPv2</template>
- <name>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMPv2</name>
+ <template>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMP</template>
+ <name>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMP</name>
<description>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5&#13;
&#13;
MIBs used:&#13;
CISCO-PROCESS-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -441,8 +431,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>CPU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.9.9.109.1.1.1.1.5]</snmp_oid>
<key>cpu.discovery</key>
<delay>1h</delay>
@@ -454,8 +443,7 @@ In case of a single CPU, cpmCPUTotalTable has only one entry.</description>
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.109.1.1.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}]</key>
<delay>5m</delay>
@@ -495,7 +483,7 @@ Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-managemen
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMPv2</host>
+ <host>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMP</host>
<key>system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -512,14 +500,14 @@ Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-managemen
</macros>
</template>
<template>
- <template>Template Module Cisco CISCO-PROCESS-MIB SNMPv2</template>
- <name>Template Module Cisco CISCO-PROCESS-MIB SNMPv2</name>
+ <template>Template Module Cisco CISCO-PROCESS-MIB SNMP</template>
+ <name>Template Module Cisco CISCO-PROCESS-MIB SNMP</name>
<description>Template Cisco CISCO-PROCESS-MIB&#13;
&#13;
MIBs used:&#13;
CISCO-PROCESS-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -533,8 +521,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>CPU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.9.9.109.1.1.1.1.5]</snmp_oid>
<key>cpu.discovery</key>
<delay>1h</delay>
@@ -546,8 +533,7 @@ In case of a single CPU, cpmCPUTotalTable has only one entry.</description>
<item_prototypes>
<item_prototype>
<name>#{#SNMPINDEX}: CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.109.1.1.1.1.8.{#SNMPINDEX}</snmp_oid>
<key>system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}]</key>
<delay>5m</delay>
@@ -583,7 +569,7 @@ Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-managemen
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Cisco CISCO-PROCESS-MIB SNMPv2</host>
+ <host>Template Module Cisco CISCO-PROCESS-MIB SNMP</host>
<key>system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -600,15 +586,15 @@ Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-managemen
</macros>
</template>
<template>
- <template>Template Module Cisco Inventory SNMPv2</template>
- <name>Template Module Cisco Inventory SNMPv2</name>
+ <template>Template Module Cisco Inventory SNMP</template>
+ <name>Template Module Cisco Inventory SNMP</name>
<description>Template Cisco Inventory&#13;
&#13;
MIBs used:&#13;
ENTITY-MIB&#13;
SNMPv2-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -622,8 +608,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.13.1</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -646,8 +631,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.11.1</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -679,8 +663,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
<key>system.sw.os[sysDescr.0]</key>
<delay>1h</delay>
@@ -720,8 +703,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Entity Serial Numbers Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7,{#ENT_SN},1.3.6.1.2.1.47.1.1.1.1.11]</snmp_oid>
<key>entity_sn.discovery</key>
<delay>1h</delay>
@@ -743,8 +725,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.11.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -778,14 +759,14 @@ Template tooling version used: 0.34</description>
</discovery_rules>
</template>
<template>
- <template>Template Module Cisco OLD-CISCO-CPU-MIB SNMPv2</template>
- <name>Template Module Cisco OLD-CISCO-CPU-MIB SNMPv2</name>
+ <template>Template Module Cisco OLD-CISCO-CPU-MIB SNMP</template>
+ <name>Template Module Cisco OLD-CISCO-CPU-MIB SNMP</name>
<description>Template Cisco OLD-CISCO-CPU-MIB&#13;
&#13;
MIBs used:&#13;
OLD-CISCO-CPU-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -799,8 +780,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.2.1.58</snmp_oid>
<key>system.cpu.util[avgBusy5]</key>
<delay>5m</delay>
@@ -834,26 +814,26 @@ Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-managemen
</macros>
</template>
<template>
- <template>Template Net Cisco IOS prior to 12.0_3_T SNMPv2</template>
- <name>Template Net Cisco IOS prior to 12.0_3_T SNMPv2</name>
+ <template>Template Net Cisco IOS prior to 12.0_3_T SNMP</template>
+ <name>Template Net Cisco IOS prior to 12.0_3_T SNMP</name>
<description>Cisco IOS Software releases prior to 12.0(3)T&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Cisco CISCO-ENVMON-MIB SNMPv2</name>
+ <name>Template Module Cisco CISCO-ENVMON-MIB SNMP</name>
</template>
<template>
- <name>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2</name>
+ <name>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP</name>
</template>
<template>
- <name>Template Module Cisco Inventory SNMPv2</name>
+ <name>Template Module Cisco Inventory SNMP</name>
</template>
<template>
- <name>Template Module Cisco OLD-CISCO-CPU-MIB SNMPv2</name>
+ <name>Template Module Cisco OLD-CISCO-CPU-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
</templates>
<groups>
@@ -863,8 +843,8 @@ Template tooling version used: 0.34</description>
</groups>
</template>
<template>
- <template>Template Net Cisco IOS SNMPv2</template>
- <name>Template Net Cisco IOS SNMPv2</name>
+ <template>Template Net Cisco IOS SNMP</template>
+ <name>Template Net Cisco IOS SNMP</name>
<description>Template Cisco IOS Software releases 12.2(3.5) or later&#13;
&#13;
Known Issues:&#13;
@@ -873,28 +853,28 @@ Known Issues:&#13;
Version: IOS for example: 12.1(22)EA11, 15.4(3)M2&#13;
Device: C2911, C7600&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Cisco CISCO-ENVMON-MIB SNMPv2</name>
+ <name>Template Module Cisco CISCO-ENVMON-MIB SNMP</name>
</template>
<template>
- <name>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2</name>
+ <name>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP</name>
</template>
<template>
- <name>Template Module Cisco CISCO-PROCESS-MIB SNMPv2</name>
+ <name>Template Module Cisco CISCO-PROCESS-MIB SNMP</name>
</template>
<template>
- <name>Template Module Cisco Inventory SNMPv2</name>
+ <name>Template Module Cisco Inventory SNMP</name>
</template>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -904,29 +884,29 @@ Template tooling version used: 0.34</description>
</groups>
</template>
<template>
- <template>Template Net Cisco IOS versions 12.0_3_T-12.2_3.5 SNMPv2</template>
- <name>Template Net Cisco IOS versions 12.0_3_T-12.2_3.5 SNMPv2</name>
+ <template>Template Net Cisco IOS versions 12.0_3_T-12.2_3.5 SNMP</template>
+ <name>Template Net Cisco IOS versions 12.0_3_T-12.2_3.5 SNMP</name>
<description>Cisco IOS Software releases later to 12.0(3)T and prior to 12.2(3.5)&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Cisco CISCO-ENVMON-MIB SNMPv2</name>
+ <name>Template Module Cisco CISCO-ENVMON-MIB SNMP</name>
</template>
<template>
- <name>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2</name>
+ <name>Template Module Cisco CISCO-MEMORY-POOL-MIB SNMP</name>
</template>
<template>
- <name>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMPv2</name>
+ <name>Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMP</name>
</template>
<template>
- <name>Template Module Cisco Inventory SNMPv2</name>
+ <name>Template Module Cisco Inventory SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -946,7 +926,7 @@ Template tooling version used: 0.34</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Cisco OLD-CISCO-CPU-MIB SNMPv2</host>
+ <host>Template Module Cisco OLD-CISCO-CPU-MIB SNMP</host>
<key>system.cpu.util[avgBusy5]</key>
</item>
</graph_item>
diff --git a/templates/net/cisco_snmpv2/README.md b/templates/net/cisco_snmpv2/README.md
deleted file mode 100644
index 1b680797ab8..00000000000
--- a/templates/net/cisco_snmpv2/README.md
+++ /dev/null
@@ -1,421 +0,0 @@
-
-# Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Memory Discovery|<p>Discovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.</p><p>http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html</p>|SNMP|memory.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Memory|{#SNMPVALUE}: Used memory|<p>MIB: CISCO-MEMORY-POOL-MIB</p><p>Indicates the number of bytes from the memory pool that are currently in use by applications on the managed device.</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html</p>|SNMP|vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]|
-|Memory|{#SNMPVALUE}: Free memory|<p>MIB: CISCO-MEMORY-POOL-MIB</p><p>Indicates the number of bytes from the memory pool that are currently unused on the managed device. Note that the sum of ciscoMemoryPoolUsed and ciscoMemoryPoolFree is the total amount of memory in the pool</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html</p>|SNMP|vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}]|
-|Memory|{#SNMPVALUE}: Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[vm.memory.util.{#SNMPINDEX}]<p>**Expression**:</p>`last("vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]")/(last("vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}]")+last("vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]"))*100`|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[vm.memory.util.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module Cisco CISCO-PROCESS-MIB SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|CPU Discovery|<p>If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable ,</p><p>indexed with cpmCPUTotalIndex .</p><p>This table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,</p><p>like different CPU chips, group of CPUs, or CPUs in different modules/cards.</p><p>In case of a single CPU, cpmCPUTotalTable has only one entry.</p>|SNMP|cpu.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|#{#SNMPINDEX}: CPU utilization|<p>MIB: CISCO-PROCESS-MIB</p><p>The cpmCPUTotal5minRev MIB object provides a more accurate view of the performance of the router over time than the MIB objects cpmCPUTotal1minRev and cpmCPUTotal5secRev . These MIB objects are not accurate because they look at CPU at one minute and five second intervals, respectively. These MIBs enable you to monitor the trends and plan the capacity of your network. The recommended baseline rising threshold for cpmCPUTotal5minRev is 90 percent. Depending on the platform, some routers that run at 90 percent, for example, 2500s, can exhibit performance degradation versus a high-end router, for example, the 7500 series, which can operate fine.</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html</p>|SNMP|system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|CPU Discovery|<p>If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable ,</p><p>indexed with cpmCPUTotalIndex .</p><p>This table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,</p><p>like different CPU chips, group of CPUs, or CPUs in different modules/cards.</p><p>In case of a single CPU, cpmCPUTotalTable has only one entry.</p>|SNMP|cpu.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|{#SNMPVALUE}: CPU utilization|<p>MIB: CISCO-PROCESS-MIB</p><p>The overall CPU busy percentage in the last 5 minute</p><p>period. This object deprecates the avgBusy5 object from</p><p>the OLD-CISCO-SYSTEM-MIB. This object is deprecated</p><p>by cpmCPUTotal5minRev which has the changed range</p><p>of value (0..100)</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html</p>|SNMP|system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module Cisco OLD-CISCO-CPU-MIB SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: OLD-CISCO-CPU-MIB</p><p>5 minute exponentially-decayed moving average of the CPU busy percentage.</p><p>Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html</p>|SNMP|system.cpu.util[avgBusy5]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[avgBusy5].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module Cisco Inventory SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Entity Serial Numbers Discovery|<p>-</p>|SNMP|entity_sn.discovery<p>**Filter**:</p>AND <p>- B: {#ENT_SN} MATCHES_REGEX `.+`</p><p>- A: {#ENT_CLASS} MATCHES_REGEX `[^3]`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Inventory|Hardware model name|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Operating system|<p>MIB: SNMPv2-MIB</p>|SNMP|system.sw.os[sysDescr.0]<p>**Preprocessing**:</p><p>- REGEX: `Version (.+), RELEASE \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware serial number|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[sysDescr.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[sysDescr.0].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module Cisco CISCO-ENVMON-MIB SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$FAN_CRIT_STATUS:"critical"}|<p>-</p>|`3`|
-|{$FAN_CRIT_STATUS:"shutdown"}|<p>-</p>|`4`|
-|{$FAN_WARN_STATUS:"notFunctioning"}|<p>-</p>|`6`|
-|{$FAN_WARN_STATUS:"warning"}|<p>-</p>|`2`|
-|{$PSU_CRIT_STATUS:"critical"}|<p>-</p>|`3`|
-|{$PSU_CRIT_STATUS:"shutdown"}|<p>-</p>|`4`|
-|{$PSU_WARN_STATUS:"notFunctioning"}|<p>-</p>|`6`|
-|{$PSU_WARN_STATUS:"warning"}|<p>-</p>|`2`|
-|{$TEMP_CRIT:"CPU"}|<p>-</p>|`75`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT_STATUS}|<p>-</p>|`3`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_DISASTER_STATUS}|<p>-</p>|`4`|
-|{$TEMP_WARN:"CPU"}|<p>-</p>|`70`|
-|{$TEMP_WARN_STATUS}|<p>-</p>|`2`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status</p><p>maintained by the environmental monitor.</p>|SNMP|temperature.discovery|
-|PSU Discovery|<p>The table of power supply status maintained by the environmental monitor card.</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>The table of fan status maintained by the environmental monitor.</p>|SNMP|fan.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|{#SENSOR_INFO}: Fan status|<p>MIB: CISCO-ENVMON-MIB</p>|SNMP|sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}]|
-|Power_supply|{#SENSOR_INFO}: Power supply status|<p>MIB: CISCO-ENVMON-MIB</p>|SNMP|sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}]|
-|Temperature|{#SNMPVALUE}: Temperature|<p>MIB: CISCO-ENVMON-MIB</p><p>The current measurement of the test point being instrumented.</p>|SNMP|sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}]|
-|Temperature|{#SNMPVALUE}: Temperature status|<p>MIB: CISCO-ENVMON-MIB</p><p>The current state of the test point being instrumented.</p>|SNMP|sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#SENSOR_INFO}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"critical"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"shutdown"},eq)}=1`|AVERAGE||
-|{#SENSOR_INFO}: Fan is in warning state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"warning"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"notFunctioning"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p>|
-|{#SENSOR_INFO}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"shutdown"},eq)}=1`|AVERAGE||
-|{#SENSOR_INFO}: Power supply is in warning state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"warning"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"notFunctioning"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Power supply is in critical state</p>|
-|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} or {Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS} or {Template Module Cisco CISCO-ENVMON-MIB SNMPv2:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Net Cisco IOS SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-
-## Template links
-
-|Name|
-|----|
-|Template Module Cisco CISCO-ENVMON-MIB SNMPv2|
-|Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2|
-|Template Module Cisco CISCO-PROCESS-MIB SNMPv2|
-|Template Module Cisco Inventory SNMPv2|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: no if(in|out)(Errors|Discards) are available for vlan ifType
- - Version: IOS for example: 12.1(22)EA11, 15.4(3)M2
- - Device: C2911, C7600
-
-# Template Net Cisco IOS versions 12.0_3_T-12.2_3.5 SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-
-## Template links
-
-|Name|
-|----|
-|Template Module Cisco CISCO-ENVMON-MIB SNMPv2|
-|Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2|
-|Template Module Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMPv2|
-|Template Module Cisco Inventory SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Net Cisco IOS prior to 12.0_3_T SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-
-## Template links
-
-|Name|
-|----|
-|Template Module Cisco CISCO-ENVMON-MIB SNMPv2|
-|Template Module Cisco CISCO-MEMORY-POOL-MIB SNMPv2|
-|Template Module Cisco Inventory SNMPv2|
-|Template Module Cisco OLD-CISCO-CPU-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/dell_force_s_series_snmp/README.md b/templates/net/dell_force_s_series_snmp/README.md
new file mode 100644
index 00000000000..0c1f48399f0
--- /dev/null
+++ b/templates/net/dell_force_s_series_snmp/README.md
@@ -0,0 +1,78 @@
+
+# Template Net Dell Force S-Series SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`2` |
+|{$FAN_OK_STATUS} |<p>-</p> |`1` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`2` |
+|{$PSU_OK_STATUS} |<p>-</p> |`1` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`65` |
+|{$TEMP_WARN} |<p>-</p> |`55` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|CPU and Memory and Flash Discovery |<p>-</p> |SNMP |module.discovery |
+|PSU Discovery |<p>A list of power supply residents in the S-series chassis.</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>-</p> |SNMP |fan.discovery |
+|Stack Unit Discovery |<p>-</p> |SNMP |stack.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |#{#SNMPINDEX}: CPU utilization |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>CPU utilization in percentage for last 1 minute.</p> |SNMP |system.cpu.util[chStackUnitCpuUtil1Min.{#SNMPINDEX}] |
+|Fans |Fan {#SNMPVALUE}: Fan status |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The status of the fan tray {#SNMPVALUE}.</p> |SNMP |sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}] |
+|Inventory |#{#SNMPVALUE}: Hardware model name |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The plugged-in model ID for this unit.</p> |SNMP |system.hw.model[chStackUnitModelID.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |#{#SNMPVALUE}: Hardware serial number |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The unit's serial number.</p> |SNMP |system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |#{#SNMPVALUE}: Hardware version(revision) |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The unit manufacturer's product revision</p> |SNMP |system.hw.version[chStackUnitProductRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |#{#SNMPVALUE}: Operating system |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>Current code version of this unit.</p> |SNMP |system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |#{#SNMPINDEX}: Memory utilization |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>Total memory usage in percentage.</p> |SNMP |vm.memory.util[chStackUnitMemUsageUtil.{#SNMPINDEX}] |
+|Power_supply |PSU {#SNMPVALUE}: Power supply status |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The status of the power supply {#SNMPVALUE}</p> |SNMP |sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}] |
+|Temperature |Device {#SNMPVALUE}: Temperature |<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The temperature of the unit.</p> |SNMP |sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[chStackUnitCpuUtil1Min.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|Fan {#SNMPVALUE}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Fan {#SNMPVALUE}: Fan is not in normal state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1` |INFO |<p>**Depends on**:</p><p>- Fan {#SNMPVALUE}: Fan is in critical state</p> |
+|#{#SNMPVALUE}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|#{#SNMPVALUE}: Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|#{#SNMPINDEX}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[chStackUnitMemUsageUtil.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|PSU {#SNMPVALUE}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|PSU {#SNMPVALUE}: Power supply is not in normal state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1` |INFO |<p>**Depends on**:</p><p>- PSU {#SNMPVALUE}: Power supply is in critical state</p> |
+|Device {#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- Device {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|Device {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|Device {#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/dell_force_s_series_snmpv2/template_net_dell_force_s_series_snmpv2.xml b/templates/net/dell_force_s_series_snmp/template_net_dell_force_s_series_snmp.xml
index 6a62ea9ed88..240416599cf 100644
--- a/templates/net/dell_force_s_series_snmpv2/template_net_dell_force_s_series_snmpv2.xml
+++ b/templates/net/dell_force_s_series_snmp/template_net_dell_force_s_series_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:11Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,23 +9,23 @@
</groups>
<templates>
<template>
- <template>Template Net Dell Force S-Series SNMPv2</template>
- <name>Template Net Dell Force S-Series SNMPv2</name>
+ <template>Template Net Dell Force S-Series SNMP</template>
+ <name>Template Net Dell Force S-Series SNMP</name>
<description>Template Dell Force S-Series&#13;
&#13;
MIBs used:&#13;
F10-S-SERIES-CHASSIS-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -56,16 +56,14 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.6027.3.10.1.2.4.1.1]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>Fan {#SNMPVALUE}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.4.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -98,7 +96,7 @@ The status of the fan tray {#SNMPVALUE}.</description>
<dependencies>
<dependency>
<name>Fan {#SNMPVALUE}: Fan is in critical state</name>
- <expression>{Template Net Dell Force S-Series SNMPv2:sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Dell Force S-Series SNMP:sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -108,16 +106,14 @@ The status of the fan tray {#SNMPVALUE}.</description>
</discovery_rule>
<discovery_rule>
<name>CPU and Memory and Flash Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.6027.3.10.1.2.9.1.1]</snmp_oid>
<key>module.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>#{#SNMPINDEX}: CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.9.1.3.{#SNMPINDEX}</snmp_oid>
<key>system.cpu.util[chStackUnitCpuUtil1Min.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -142,8 +138,7 @@ CPU utilization in percentage for last 1 minute.</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPINDEX}: Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.9.1.5.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.util[chStackUnitMemUsageUtil.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -176,7 +171,7 @@ Total memory usage in percentage.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Dell Force S-Series SNMPv2</host>
+ <host>Template Net Dell Force S-Series SNMP</host>
<key>system.cpu.util[chStackUnitCpuUtil1Min.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -191,7 +186,7 @@ Total memory usage in percentage.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Dell Force S-Series SNMPv2</host>
+ <host>Template Net Dell Force S-Series SNMP</host>
<key>vm.memory.util[chStackUnitMemUsageUtil.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -201,8 +196,7 @@ Total memory usage in percentage.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.6027.3.10.1.2.3.1.1]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -210,8 +204,7 @@ Total memory usage in percentage.</description>
<item_prototypes>
<item_prototype>
<name>PSU {#SNMPVALUE}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.3.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -244,7 +237,7 @@ The status of the power supply {#SNMPVALUE}</description>
<dependencies>
<dependency>
<name>PSU {#SNMPVALUE}: Power supply is in critical state</name>
- <expression>{Template Net Dell Force S-Series SNMPv2:sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Dell Force S-Series SNMP:sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -254,16 +247,14 @@ The status of the power supply {#SNMPVALUE}</description>
</discovery_rule>
<discovery_rule>
<name>Stack Unit Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.6027.3.10.1.2.2.1.2]</snmp_oid>
<key>stack.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>Device {#SNMPVALUE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.2.1.14.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -288,8 +279,8 @@ The temperature of the unit.</description>
<dependencies>
<dependency>
<name>Device {#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Dell Force S-Series SNMPv2:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Dell Force S-Series SNMPv2:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Dell Force S-Series SNMP:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Dell Force S-Series SNMP:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -314,8 +305,7 @@ The temperature of the unit.</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPVALUE}: Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.2.1.7.{#SNMPINDEX}</snmp_oid>
<key>system.hw.model[chStackUnitModelID.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -338,8 +328,7 @@ The plugged-in model ID for this unit.</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPVALUE}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.2.1.12.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -371,8 +360,7 @@ The unit's serial number.</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPVALUE}: Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.2.1.21.{#SNMPINDEX}</snmp_oid>
<key>system.hw.version[chStackUnitProductRev.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -395,8 +383,7 @@ The unit manufacturer's product revision</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPVALUE}: Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.6027.3.10.1.2.2.1.10.{#SNMPINDEX}</snmp_oid>
<key>system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}]</key>
<delay>1h</delay>
diff --git a/templates/net/dell_force_s_series_snmpv2/README.md b/templates/net/dell_force_s_series_snmpv2/README.md
deleted file mode 100644
index 1b4f24deb4b..00000000000
--- a/templates/net/dell_force_s_series_snmpv2/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-
-# Template Net Dell Force S-Series SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`2`|
-|{$FAN_OK_STATUS}|<p>-</p>|`1`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`2`|
-|{$PSU_OK_STATUS}|<p>-</p>|`1`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`65`|
-|{$TEMP_WARN}|<p>-</p>|`55`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|CPU and Memory and Flash Discovery|<p>-</p>|SNMP|module.discovery|
-|PSU Discovery|<p>A list of power supply residents in the S-series chassis.</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>-</p>|SNMP|fan.discovery|
-|Stack Unit Discovery|<p>-</p>|SNMP|stack.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|#{#SNMPINDEX}: CPU utilization|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>CPU utilization in percentage for last 1 minute.</p>|SNMP|system.cpu.util[chStackUnitCpuUtil1Min.{#SNMPINDEX}]|
-|Fans|Fan {#SNMPVALUE}: Fan status|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The status of the fan tray {#SNMPVALUE}.</p>|SNMP|sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}]|
-|Inventory|#{#SNMPVALUE}: Hardware model name|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The plugged-in model ID for this unit.</p>|SNMP|system.hw.model[chStackUnitModelID.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|#{#SNMPVALUE}: Hardware serial number|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The unit's serial number.</p>|SNMP|system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|#{#SNMPVALUE}: Hardware version(revision)|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The unit manufacturer's product revision</p>|SNMP|system.hw.version[chStackUnitProductRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|#{#SNMPVALUE}: Operating system|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>Current code version of this unit.</p>|SNMP|system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|#{#SNMPINDEX}: Memory utilization|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>Total memory usage in percentage.</p>|SNMP|vm.memory.util[chStackUnitMemUsageUtil.{#SNMPINDEX}]|
-|Power_supply|PSU {#SNMPVALUE}: Power supply status|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The status of the power supply {#SNMPVALUE}</p>|SNMP|sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}]|
-|Temperature|Device {#SNMPVALUE}: Temperature|<p>MIB: F10-S-SERIES-CHASSIS-MIB</p><p>The temperature of the unit.</p>|SNMP|sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[chStackUnitCpuUtil1Min.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|Fan {#SNMPVALUE}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Fan {#SNMPVALUE}: Fan is not in normal state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1`|INFO|<p>**Depends on**:</p><p>- Fan {#SNMPVALUE}: Fan is in critical state</p>|
-|#{#SNMPVALUE}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|#{#SNMPVALUE}: Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|#{#SNMPINDEX}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[chStackUnitMemUsageUtil.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|PSU {#SNMPVALUE}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|PSU {#SNMPVALUE}: Power supply is not in normal state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1`|INFO|<p>**Depends on**:</p><p>- PSU {#SNMPVALUE}: Power supply is in critical state</p>|
-|Device {#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- Device {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|Device {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|Device {#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/dlink_des7200_snmp/README.md b/templates/net/dlink_des7200_snmp/README.md
new file mode 100644
index 00000000000..2f1b9b5625e
--- /dev/null
+++ b/templates/net/dlink_des7200_snmp/README.md
@@ -0,0 +1,73 @@
+
+# Template Net D-Link DES 7200 SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`5` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`5` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`75` |
+|{$TEMP_WARN} |<p>-</p> |`65` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Memory Discovery |<p>-</p> |SNMP |memory.discovery |
+|Temperature Discovery |<p>-</p> |SNMP |temperature.discovery |
+|PSU Discovery |<p>-</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>-</p> |SNMP |fan.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: MY-PROCESS-MIB</p><p>CPU utilization in %</p> |SNMP |system.cpu.util[myCPUUtilization5Min.0] |
+|Fans |{#SNMPVALUE}: Fan status |<p>MIB: MY-SYSTEM-MIB</p> |SNMP |sensor.fan.status[mySystemFanIsNormal.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware version(revision) |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Operating system |<p>MIB: MY-SYSTEM-MIB</p> |SNMP |system.sw.os[mySystemSwVersion.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |{#SNMPINDEX}: Memory utilization |<p>MIB: MY-MEMORY-MIB</p><p>This is the memory pool utilization currently.</p> |SNMP |vm.memory.util[myMemoryPoolCurrentUtilization.{#SNMPINDEX}] |
+|Power_supply |{#SNMPVALUE}: Power supply status |<p>MIB: MY-SYSTEM-MIB</p> |SNMP |sensor.psu.status[mySystemElectricalSourceIsNormal.{#SNMPINDEX}] |
+|Temperature |{#SNMPVALUE}: Temperature |<p>MIB: MY-SYSTEM-MIB</p><p>Return the current temperature of the FastSwitch.The temperature display is not supported for the current temperature returns to 0.</p> |SNMP |sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[myCPUUtilization5Min.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|{#SNMPVALUE}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[mySystemFanIsNormal.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[mySystemSwVersion.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[mySystemSwVersion.0].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#SNMPINDEX}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[myMemoryPoolCurrentUtilization.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|{#SNMPVALUE}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[mySystemElectricalSourceIsNormal.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/dlink_des7200_snmpv2/template_net_dlink_des7200_snmpv2.xml b/templates/net/dlink_des7200_snmp/template_net_dlink_des7200_snmp.xml
index 6e2e42c1a93..76aa7113c69 100644
--- a/templates/net/dlink_des7200_snmpv2/template_net_dlink_des7200_snmpv2.xml
+++ b/templates/net/dlink_des7200_snmp/template_net_dlink_des7200_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:15Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net D-Link DES 7200 SNMPv2</template>
- <name>Template Net D-Link DES 7200 SNMPv2</name>
+ <template>Template Net D-Link DES 7200 SNMP</template>
+ <name>Template Net D-Link DES 7200 SNMP</name>
<description>Template D-Link DES 7200&#13;
&#13;
MIBs used:&#13;
@@ -20,13 +20,13 @@ MY-MEMORY-MIB&#13;
ENTITY-MIB&#13;
MY-SYSTEM-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -57,8 +57,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.10.97.2.36.1.1.3.0</snmp_oid>
<key>system.cpu.util[myCPUUtilization5Min.0]</key>
<history>7d</history>
@@ -83,8 +82,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.9.1</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -116,8 +114,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -143,8 +140,7 @@ networking software.</description>
</item>
<item>
<name>Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.8.1</snmp_oid>
<key>system.hw.version</key>
<delay>1h</delay>
@@ -166,8 +162,7 @@ networking software.</description>
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.10.97.2.1.1.2.0</snmp_oid>
<key>system.sw.os[mySystemSwVersion.0]</key>
<delay>1h</delay>
@@ -202,16 +197,14 @@ networking software.</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.171.10.97.2.1.1.21.1.3]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.10.97.2.1.1.21.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[mySystemFanIsNormal.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -240,16 +233,14 @@ networking software.</description>
</discovery_rule>
<discovery_rule>
<name>Memory Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.171.10.97.2.35.1.1.1.2]</snmp_oid>
<key>memory.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SNMPINDEX}: Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.10.97.2.35.1.1.1.3.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.util[myMemoryPoolCurrentUtilization.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -282,7 +273,7 @@ This is the memory pool utilization currently.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net D-Link DES 7200 SNMPv2</host>
+ <host>Template Net D-Link DES 7200 SNMP</host>
<key>vm.memory.util[myMemoryPoolCurrentUtilization.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -292,16 +283,14 @@ This is the memory pool utilization currently.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.171.10.97.2.1.1.18.1.3]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.10.97.2.1.1.18.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[mySystemElectricalSourceIsNormal.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -330,16 +319,14 @@ This is the memory pool utilization currently.</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.171.10.97.2.1.1.23.1.2]</snmp_oid>
<key>temperature.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.10.97.2.1.1.23.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -364,8 +351,8 @@ Return the current temperature of the FastSwitch.The temperature display is not
<dependencies>
<dependency>
<name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net D-Link DES 7200 SNMPv2:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net D-Link DES 7200 SNMPv2:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net D-Link DES 7200 SNMP:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net D-Link DES 7200 SNMP:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -433,7 +420,7 @@ Return the current temperature of the FastSwitch.The temperature display is not
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net D-Link DES 7200 SNMPv2</host>
+ <host>Template Net D-Link DES 7200 SNMP</host>
<key>system.cpu.util[myCPUUtilization5Min.0]</key>
</item>
</graph_item>
diff --git a/templates/net/dlink_des7200_snmpv2/README.md b/templates/net/dlink_des7200_snmpv2/README.md
deleted file mode 100644
index 2604dbc98d2..00000000000
--- a/templates/net/dlink_des7200_snmpv2/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-
-# Template Net D-Link DES 7200 SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`5`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`5`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`75`|
-|{$TEMP_WARN}|<p>-</p>|`65`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Memory Discovery|<p>-</p>|SNMP|memory.discovery|
-|Temperature Discovery|<p>-</p>|SNMP|temperature.discovery|
-|PSU Discovery|<p>-</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>-</p>|SNMP|fan.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: MY-PROCESS-MIB</p><p>CPU utilization in %</p>|SNMP|system.cpu.util[myCPUUtilization5Min.0]|
-|Fans|{#SNMPVALUE}: Fan status|<p>MIB: MY-SYSTEM-MIB</p>|SNMP|sensor.fan.status[mySystemFanIsNormal.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware version(revision)|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Operating system|<p>MIB: MY-SYSTEM-MIB</p>|SNMP|system.sw.os[mySystemSwVersion.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|{#SNMPINDEX}: Memory utilization|<p>MIB: MY-MEMORY-MIB</p><p>This is the memory pool utilization currently.</p>|SNMP|vm.memory.util[myMemoryPoolCurrentUtilization.{#SNMPINDEX}]|
-|Power_supply|{#SNMPVALUE}: Power supply status|<p>MIB: MY-SYSTEM-MIB</p>|SNMP|sensor.psu.status[mySystemElectricalSourceIsNormal.{#SNMPINDEX}]|
-|Temperature|{#SNMPVALUE}: Temperature|<p>MIB: MY-SYSTEM-MIB</p><p>Return the current temperature of the FastSwitch.The temperature display is not supported for the current temperature returns to 0.</p>|SNMP|sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[myCPUUtilization5Min.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|{#SNMPVALUE}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[mySystemFanIsNormal.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[mySystemSwVersion.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[mySystemSwVersion.0].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#SNMPINDEX}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[myMemoryPoolCurrentUtilization.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|{#SNMPVALUE}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[mySystemElectricalSourceIsNormal.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/dlink_des_snmp/README.md b/templates/net/dlink_des_snmp/README.md
new file mode 100644
index 00000000000..b7340c048d8
--- /dev/null
+++ b/templates/net/dlink_des_snmp/README.md
@@ -0,0 +1,82 @@
+
+# Template Net D-Link DES_DGS Switch SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`2` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`4` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`75` |
+|{$TEMP_WARN} |<p>-</p> |`65` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Memory Discovery |<p>-</p> |SNMP |memory.discovery |
+|Temperature Discovery |<p>-</p> |SNMP |temperature.discovery |
+|PSU Discovery |<p>swPowerID of EQUIPMENT-MIB::swPowerTable</p> |SNMP |psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#STATUS} MATCHES_REGEX `[^0]`</p> |
+|FAN Discovery |<p>swFanID of EQUIPMENT-MIB::swFanTable</p> |SNMP |fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#STATUS} MATCHES_REGEX `[^0]`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: DLINK-AGENT-MIB</p><p>The unit of time is 1 minute. The value will be between 0% (idle) and 100%(very busy).</p> |SNMP |system.cpu.util[agentCPUutilizationIn1min.0] |
+|Fans |#{#SNMPVALUE}: Fan status |<p>MIB: EQUIPMENT-MIB</p><p>Indicates the current fan status.</p><p>speed-0 : If the fan function is normal and the fan does not spin due to the temperature not reaching the threshold, the status of the fan is speed 0.</p><p>speed-low : Fan spin using the lowest speed.</p><p>speed-middle: Fan spin using the middle speed.</p><p>speed-high : Fan spin using the highest speed.</p> |SNMP |sensor.fan.status[swFanStatus.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: DLINK-AGENT-MIB</p><p>A text string containing the serial number of this device.</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware version(revision) |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |#{#SNMPVALUE}: Memory utilization |<p>MIB: DLINK-AGENT-MIB</p><p>The percentage of used DRAM memory of the total DRAM memory available.The value will be between 0%(idle) and 100%(very busy)</p> |SNMP |vm.memory.util[agentDRAMutilization.{#SNMPINDEX}] |
+|Power_supply |#{#SNMPVALUE}: Power supply status |<p>MIB: EQUIPMENT-MIB</p><p>Indicates the current power status.</p><p>lowVoltage : The voltage of the power unit is too low.</p><p>overCurrent: The current of the power unit is too high.</p><p>working : The power unit is working normally.</p><p>fail : The power unit has failed.</p><p>connect : The power unit is connected but not powered on.</p><p>disconnect : The power unit is not connected.</p> |SNMP |sensor.psu.status[swPowerStatus.{#SNMPINDEX}] |
+|Temperature |#{#SNMPVALUE}: Temperature |<p>MIB: EQUIPMENT-MIB</p><p>The shelf current temperature.</p> |SNMP |sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[agentCPUutilizationIn1min.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|#{#SNMPVALUE}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[swFanStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[agentDRAMutilization.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|#{#SNMPVALUE}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[swPowerStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|#{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- #{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|#{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|#{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: D-Link reports missing PSU as fail(4)
+ - Version: Firmware: 1.73R008,hardware revision: B1
+ - Device: DGS-3420-26SC Gigabit Ethernet Switch
+
diff --git a/templates/net/dlink_des_snmpv2/template_net_dlink_des_snmpv2.xml b/templates/net/dlink_des_snmp/template_net_dlink_des_snmp.xml
index 2ebb090e74d..4b5113da578 100644
--- a/templates/net/dlink_des_snmpv2/template_net_dlink_des_snmpv2.xml
+++ b/templates/net/dlink_des_snmp/template_net_dlink_des_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:09Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net D-Link DES_DGS Switch SNMPv2</template>
- <name>Template Net D-Link DES_DGS Switch SNMPv2</name>
+ <template>Template Net D-Link DES_DGS Switch SNMP</template>
+ <name>Template Net D-Link DES_DGS Switch SNMP</name>
<description>Template D-Link DES_DGS Switch&#13;
&#13;
MIBs used:&#13;
@@ -25,16 +25,16 @@ Known Issues:&#13;
Version: Firmware: 1.73R008,hardware revision: B1&#13;
Device: DGS-3420-26SC Gigabit Ethernet Switch&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -65,8 +65,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.12.1.1.6.2.0</snmp_oid>
<key>system.cpu.util[agentCPUutilizationIn1min.0]</key>
<history>7d</history>
@@ -91,8 +90,7 @@ The unit of time is 1 minute. The value will be between 0% (idle) and 100%(very
</item>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.9.1</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -124,8 +122,7 @@ The unit of time is 1 minute. The value will be between 0% (idle) and 100%(very
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -151,8 +148,7 @@ networking software.</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.12.1.1.12.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -185,8 +181,7 @@ A text string containing the serial number of this device.</description>
</item>
<item>
<name>Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.8.1</snmp_oid>
<key>system.hw.version</key>
<delay>1h</delay>
@@ -210,8 +205,7 @@ A text string containing the serial number of this device.</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.171.12.11.1.7.1.2,{#STATUS},1.3.6.1.4.1.171.12.11.1.7.1.3]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -229,8 +223,7 @@ A text string containing the serial number of this device.</description>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.12.11.1.7.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[swFanStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -264,16 +257,14 @@ speed-high : Fan spin using the highest speed.</description>
</discovery_rule>
<discovery_rule>
<name>Memory Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.171.12.1.1.9.1.1]</snmp_oid>
<key>memory.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.12.1.1.9.1.4.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.util[agentDRAMutilization.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -306,7 +297,7 @@ The percentage of used DRAM memory of the total DRAM memory available.The value
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net D-Link DES_DGS Switch SNMPv2</host>
+ <host>Template Net D-Link DES_DGS Switch SNMP</host>
<key>vm.memory.util[agentDRAMutilization.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -316,8 +307,7 @@ The percentage of used DRAM memory of the total DRAM memory available.The value
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.171.12.11.1.6.1.2,{#STATUS},1.3.6.1.4.1.171.12.11.1.6.1.3]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -335,8 +325,7 @@ The percentage of used DRAM memory of the total DRAM memory available.The value
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.12.11.1.6.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[swPowerStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -372,16 +361,14 @@ disconnect : The power unit is not connected.</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.171.12.11.1.8.1.1]</snmp_oid>
<key>temperature.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.171.12.11.1.8.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -406,8 +393,8 @@ The shelf current temperature.</description>
<dependencies>
<dependency>
<name>#{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net D-Link DES_DGS Switch SNMPv2:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net D-Link DES_DGS Switch SNMPv2:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net D-Link DES_DGS Switch SNMP:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net D-Link DES_DGS Switch SNMP:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -475,7 +462,7 @@ The shelf current temperature.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net D-Link DES_DGS Switch SNMPv2</host>
+ <host>Template Net D-Link DES_DGS Switch SNMP</host>
<key>system.cpu.util[agentCPUutilizationIn1min.0]</key>
</item>
</graph_item>
diff --git a/templates/net/dlink_des_snmpv2/README.md b/templates/net/dlink_des_snmpv2/README.md
deleted file mode 100644
index 4915bd59d82..00000000000
--- a/templates/net/dlink_des_snmpv2/README.md
+++ /dev/null
@@ -1,82 +0,0 @@
-
-# Template Net D-Link DES_DGS Switch SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`2`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`4`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`75`|
-|{$TEMP_WARN}|<p>-</p>|`65`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Memory Discovery|<p>-</p>|SNMP|memory.discovery|
-|Temperature Discovery|<p>-</p>|SNMP|temperature.discovery|
-|PSU Discovery|<p>swPowerID of EQUIPMENT-MIB::swPowerTable</p>|SNMP|psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#STATUS} MATCHES_REGEX `[^0]`</p>|
-|FAN Discovery|<p>swFanID of EQUIPMENT-MIB::swFanTable</p>|SNMP|fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#STATUS} MATCHES_REGEX `[^0]`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: DLINK-AGENT-MIB</p><p>The unit of time is 1 minute. The value will be between 0% (idle) and 100%(very busy).</p>|SNMP|system.cpu.util[agentCPUutilizationIn1min.0]|
-|Fans|#{#SNMPVALUE}: Fan status|<p>MIB: EQUIPMENT-MIB</p><p>Indicates the current fan status.</p><p>speed-0 : If the fan function is normal and the fan does not spin due to the temperature not reaching the threshold, the status of the fan is speed 0.</p><p>speed-low : Fan spin using the lowest speed.</p><p>speed-middle: Fan spin using the middle speed.</p><p>speed-high : Fan spin using the highest speed.</p>|SNMP|sensor.fan.status[swFanStatus.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: DLINK-AGENT-MIB</p><p>A text string containing the serial number of this device.</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware version(revision)|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|#{#SNMPVALUE}: Memory utilization|<p>MIB: DLINK-AGENT-MIB</p><p>The percentage of used DRAM memory of the total DRAM memory available.The value will be between 0%(idle) and 100%(very busy)</p>|SNMP|vm.memory.util[agentDRAMutilization.{#SNMPINDEX}]|
-|Power_supply|#{#SNMPVALUE}: Power supply status|<p>MIB: EQUIPMENT-MIB</p><p>Indicates the current power status.</p><p>lowVoltage : The voltage of the power unit is too low.</p><p>overCurrent: The current of the power unit is too high.</p><p>working : The power unit is working normally.</p><p>fail : The power unit has failed.</p><p>connect : The power unit is connected but not powered on.</p><p>disconnect : The power unit is not connected.</p>|SNMP|sensor.psu.status[swPowerStatus.{#SNMPINDEX}]|
-|Temperature|#{#SNMPVALUE}: Temperature|<p>MIB: EQUIPMENT-MIB</p><p>The shelf current temperature.</p>|SNMP|sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[agentCPUutilizationIn1min.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|#{#SNMPVALUE}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[swFanStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[agentDRAMutilization.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|#{#SNMPVALUE}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[swPowerStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|#{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- #{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|#{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|#{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: D-Link reports missing PSU as fail(4)
- - Version: Firmware: 1.73R008,hardware revision: B1
- - Device: DGS-3420-26SC Gigabit Ethernet Switch
-
diff --git a/templates/net/extreme_snmp/README.md b/templates/net/extreme_snmp/README.md
new file mode 100644
index 00000000000..8c79493a08e
--- /dev/null
+++ b/templates/net/extreme_snmp/README.md
@@ -0,0 +1,80 @@
+
+# Template Net Extreme EXOS SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`2` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`3` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT_STATUS} |<p>-</p> |`1` |
+|{$TEMP_CRIT} |<p>-</p> |`65` |
+|{$TEMP_WARN} |<p>-</p> |`55` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Memory Discovery |<p>-</p> |SNMP |memory.discovery |
+|PSU Discovery |<p>Table of status of all power supplies in the system.</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>-</p> |SNMP |fan.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: EXTREME-SOFTWARE-MONITOR-MIB</p><p>Total CPU utlization (percentage) as of last sampling.</p> |SNMP |system.cpu.util[extremeCpuMonitorTotalUtilization.0] |
+|Fans |Fan {#SNMPVALUE}: Fan status |<p>MIB: EXTREME-SYSTEM-MIB</p><p>Operational status of a cooling fan.</p> |SNMP |sensor.fan.status[extremeFanOperational.{#SNMPINDEX}] |
+|Fans |Fan {#SNMPVALUE}: Fan speed |<p>MIB: EXTREME-SYSTEM-MIB</p><p>The speed (RPM) of a cooling fan in the fantray {#SNMPVALUE}</p> |SNMP |sensor.fan.speed[extremeFanSpeed.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware version(revision) |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Operating system |<p>MIB: EXTREME-SYSTEM-MIB</p><p>The software revision of the primary image stored in this device.</p><p>This string will have a zero length if the revision is unknown, invalid or not present.</p><p>This will also be reported in RMON2 probeSoftwareRev if this is the software image currently running in the device.</p> |SNMP |system.sw.os[extremePrimarySoftwareRev.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |#{#SNMPVALUE}: Available memory |<p>MIB: EXTREME-SOFTWARE-MONITOR-MIB</p><p>Total amount of free memory in Kbytes in the system.</p> |SNMP |vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |#{#SNMPVALUE}: Total memory |<p>MIB: EXTREME-SOFTWARE-MONITOR-MIB</p><p>Total amount of DRAM in Kbytes in the system.</p> |SNMP |vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |#{#SNMPVALUE}: Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[{#SNMPVALUE}]<p>**Expression**:</p>`(last("vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]") - last("vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]")) / last("vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]") * 100` |
+|Power_supply |PSU {#SNMPVALUE}: Power supply status |<p>MIB: EXTREME-SYSTEM-MIB</p><p>Status of the power supply {#SNMPVALUE}</p> |SNMP |sensor.psu.status[extremePowerSupplyStatus.{#SNMPINDEX}] |
+|Temperature |Device: Temperature |<p>MIB: EXTREME-SYSTEM-MIB</p><p>Temperature readings of testpoint: Device</p><p>Reference: https://gtacknowledge.extremenetworks.com/articles/Q_A/Does-EXOS-support-temperature-polling-via-SNMP-on-all-nodes-in-a-stack</p> |SNMP |sensor.temp.value[extremeCurrentTemperature.0] |
+|Temperature |Device: Temperature status |<p>MIB: EXTREME-SYSTEM-MIB</p><p>Temperature status of testpoint: Device</p> |SNMP |sensor.temp.status[extremeOverTemperatureAlarm.0] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[extremeCpuMonitorTotalUtilization.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|Fan {#SNMPVALUE}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[extremeFanOperational.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[extremePrimarySoftwareRev.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[extremePrimarySoftwareRev.0].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[{#SNMPVALUE}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|PSU {#SNMPVALUE}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[extremePowerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Device: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- Device: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|Device: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}>{$TEMP_CRIT:""} or {Template Net Extreme EXOS SNMP:sensor.temp.status[extremeOverTemperatureAlarm.0].last(0)}={$TEMP_CRIT_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|Device: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/extreme_snmpv2/template_net_extreme_snmpv2.xml b/templates/net/extreme_snmp/template_net_extreme_snmp.xml
index 47b4a79d751..88d019fd4c9 100644
--- a/templates/net/extreme_snmpv2/template_net_extreme_snmpv2.xml
+++ b/templates/net/extreme_snmp/template_net_extreme_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:19Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net Extreme EXOS SNMPv2</template>
- <name>Template Net Extreme EXOS SNMPv2</name>
+ <template>Template Net Extreme EXOS SNMP</template>
+ <name>Template Net Extreme EXOS SNMP</name>
<description>Template Extreme EXOS&#13;
&#13;
MIBs used:&#13;
@@ -18,16 +18,16 @@ EXTREME-SOFTWARE-MONITOR-MIB&#13;
EXTREME-SYSTEM-MIB&#13;
ENTITY-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -58,8 +58,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Device: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.1.1.7.0</snmp_oid>
<key>sensor.temp.status[extremeOverTemperatureAlarm.0]</key>
<delay>3m</delay>
@@ -78,8 +77,7 @@ Temperature status of testpoint: Device</description>
</item>
<item>
<name>Device: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.1.1.8.0</snmp_oid>
<key>sensor.temp.value[extremeCurrentTemperature.0]</key>
<delay>3m</delay>
@@ -105,10 +103,10 @@ Reference: https://gtacknowledge.extremenetworks.com/articles/Q_A/Does-EXOS-supp
<dependencies>
<dependency>
<name>Device: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Extreme EXOS SNMPv2:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
+ <expression>{Template Net Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
or&#13;
-{Template Net Extreme EXOS SNMPv2:sensor.temp.status[extremeOverTemperatureAlarm.0].last(0)}={$TEMP_CRIT_STATUS}</expression>
- <recovery_expression>{Template Net Extreme EXOS SNMPv2:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+{Template Net Extreme EXOS SNMP:sensor.temp.status[extremeOverTemperatureAlarm.0].last(0)}={$TEMP_CRIT_STATUS}</expression>
+ <recovery_expression>{Template Net Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger>
@@ -124,8 +122,7 @@ or&#13;
</item>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.32.1.2.0</snmp_oid>
<key>system.cpu.util[extremeCpuMonitorTotalUtilization.0]</key>
<history>7d</history>
@@ -150,8 +147,7 @@ Total CPU utlization (percentage) as of last sampling.</description>
</item>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.9.1</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -183,8 +179,7 @@ Total CPU utlization (percentage) as of last sampling.</description>
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.2.1</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -207,8 +202,7 @@ Total CPU utlization (percentage) as of last sampling.</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.11.1</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -240,8 +234,7 @@ Total CPU utlization (percentage) as of last sampling.</description>
</item>
<item>
<name>Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.9.1</snmp_oid>
<key>system.hw.version</key>
<delay>1h</delay>
@@ -263,8 +256,7 @@ Total CPU utlization (percentage) as of last sampling.</description>
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.1.1.13.0</snmp_oid>
<key>system.sw.os[extremePrimarySoftwareRev.0]</key>
<delay>1h</delay>
@@ -302,16 +294,14 @@ This will also be reported in RMON2 probeSoftwareRev if this is the software ima
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1916.1.1.1.9.1.1]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>Fan {#SNMPVALUE}: Fan speed</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.1.1.9.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.speed[extremeFanSpeed.{#SNMPINDEX}]</key>
<units>rpm</units>
@@ -325,8 +315,7 @@ The speed (RPM) of a cooling fan in the fantray {#SNMPVALUE}</description>
</item_prototype>
<item_prototype>
<name>Fan {#SNMPVALUE}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.1.1.9.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[extremeFanOperational.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -356,16 +345,14 @@ Operational status of a cooling fan.</description>
</discovery_rule>
<discovery_rule>
<name>Memory Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1916.1.32.2.2.1.1]</snmp_oid>
<key>memory.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Available memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.32.2.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -386,8 +373,7 @@ Total amount of free memory in Kbytes in the system.</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPVALUE}: Total memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.32.2.2.1.2.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -439,7 +425,7 @@ Total amount of DRAM in Kbytes in the system.</description>
<drawtype>BOLD_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Extreme EXOS SNMPv2</host>
+ <host>Template Net Extreme EXOS SNMP</host>
<key>vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -448,7 +434,7 @@ Total amount of DRAM in Kbytes in the system.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Net Extreme EXOS SNMPv2</host>
+ <host>Template Net Extreme EXOS SNMP</host>
<key>vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -463,7 +449,7 @@ Total amount of DRAM in Kbytes in the system.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Extreme EXOS SNMPv2</host>
+ <host>Template Net Extreme EXOS SNMP</host>
<key>vm.memory.util[{#SNMPVALUE}]</key>
</item>
</graph_item>
@@ -473,8 +459,7 @@ Total amount of DRAM in Kbytes in the system.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.1916.1.1.1.27.1.1]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -482,8 +467,7 @@ Total amount of DRAM in Kbytes in the system.</description>
<item_prototypes>
<item_prototype>
<name>PSU {#SNMPVALUE}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.1916.1.1.1.27.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[extremePowerSupplyStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -550,11 +534,11 @@ Status of the power supply {#SNMPVALUE}</description>
</templates>
<triggers>
<trigger>
- <expression>{Template Net Extreme EXOS SNMPv2:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
+ <expression>{Template Net Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
or&#13;
-{Template Net Extreme EXOS SNMPv2:sensor.temp.status[extremeOverTemperatureAlarm.0].last(0)}={$TEMP_CRIT_STATUS}</expression>
+{Template Net Extreme EXOS SNMP:sensor.temp.status[extremeOverTemperatureAlarm.0].last(0)}={$TEMP_CRIT_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Net Extreme EXOS SNMPv2:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <recovery_expression>{Template Net Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
<name>Device: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
@@ -571,7 +555,7 @@ or&#13;
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Extreme EXOS SNMPv2</host>
+ <host>Template Net Extreme EXOS SNMP</host>
<key>system.cpu.util[extremeCpuMonitorTotalUtilization.0]</key>
</item>
</graph_item>
diff --git a/templates/net/extreme_snmpv2/README.md b/templates/net/extreme_snmpv2/README.md
deleted file mode 100644
index 2d39147c349..00000000000
--- a/templates/net/extreme_snmpv2/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
-
-# Template Net Extreme EXOS SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`2`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`3`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT_STATUS}|<p>-</p>|`1`|
-|{$TEMP_CRIT}|<p>-</p>|`65`|
-|{$TEMP_WARN}|<p>-</p>|`55`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Memory Discovery|<p>-</p>|SNMP|memory.discovery|
-|PSU Discovery|<p>Table of status of all power supplies in the system.</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>-</p>|SNMP|fan.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: EXTREME-SOFTWARE-MONITOR-MIB</p><p>Total CPU utlization (percentage) as of last sampling.</p>|SNMP|system.cpu.util[extremeCpuMonitorTotalUtilization.0]|
-|Fans|Fan {#SNMPVALUE}: Fan status|<p>MIB: EXTREME-SYSTEM-MIB</p><p>Operational status of a cooling fan.</p>|SNMP|sensor.fan.status[extremeFanOperational.{#SNMPINDEX}]|
-|Fans|Fan {#SNMPVALUE}: Fan speed|<p>MIB: EXTREME-SYSTEM-MIB</p><p>The speed (RPM) of a cooling fan in the fantray {#SNMPVALUE}</p>|SNMP|sensor.fan.speed[extremeFanSpeed.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware version(revision)|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Operating system|<p>MIB: EXTREME-SYSTEM-MIB</p><p>The software revision of the primary image stored in this device.</p><p>This string will have a zero length if the revision is unknown, invalid or not present.</p><p>This will also be reported in RMON2 probeSoftwareRev if this is the software image currently running in the device.</p>|SNMP|system.sw.os[extremePrimarySoftwareRev.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|#{#SNMPVALUE}: Available memory|<p>MIB: EXTREME-SOFTWARE-MONITOR-MIB</p><p>Total amount of free memory in Kbytes in the system.</p>|SNMP|vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|#{#SNMPVALUE}: Total memory|<p>MIB: EXTREME-SOFTWARE-MONITOR-MIB</p><p>Total amount of DRAM in Kbytes in the system.</p>|SNMP|vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|#{#SNMPVALUE}: Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[{#SNMPVALUE}]<p>**Expression**:</p>`(last("vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]") - last("vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]")) / last("vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]") * 100`|
-|Power_supply|PSU {#SNMPVALUE}: Power supply status|<p>MIB: EXTREME-SYSTEM-MIB</p><p>Status of the power supply {#SNMPVALUE}</p>|SNMP|sensor.psu.status[extremePowerSupplyStatus.{#SNMPINDEX}]|
-|Temperature|Device: Temperature|<p>MIB: EXTREME-SYSTEM-MIB</p><p>Temperature readings of testpoint: Device</p><p>Reference: https://gtacknowledge.extremenetworks.com/articles/Q_A/Does-EXOS-support-temperature-polling-via-SNMP-on-all-nodes-in-a-stack</p>|SNMP|sensor.temp.value[extremeCurrentTemperature.0]|
-|Temperature|Device: Temperature status|<p>MIB: EXTREME-SYSTEM-MIB</p><p>Temperature status of testpoint: Device</p>|SNMP|sensor.temp.status[extremeOverTemperatureAlarm.0]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[extremeCpuMonitorTotalUtilization.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|Fan {#SNMPVALUE}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[extremeFanOperational.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[extremePrimarySoftwareRev.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[extremePrimarySoftwareRev.0].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[{#SNMPVALUE}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|PSU {#SNMPVALUE}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[extremePowerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Device: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- Device: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|Device: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}>{$TEMP_CRIT:""} or {Template Net Extreme EXOS SNMPv2:sensor.temp.status[extremeOverTemperatureAlarm.0].last(0)}={$TEMP_CRIT_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|Device: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[extremeCurrentTemperature.0].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/generic_snmpv1/README.md b/templates/net/generic_snmp/README.md
index d6f21c16084..60dcce4976f 100644
--- a/templates/net/generic_snmpv1/README.md
+++ b/templates/net/generic_snmp/README.md
@@ -1,9 +1,9 @@
-# Template Net Network Generic Device SNMPv1
+# Template Net Network Generic Device SNMP
## Overview
-For Zabbix version: 4.4
+For Zabbix version: 5.0
Use this template if you can't find the template for specific vendor or device family.
## Setup
@@ -19,9 +19,9 @@ No specific Zabbix configuration is required.
|Name|
|----|
-|Template Module EtherLike-MIB SNMPv1|
-|Template Module Generic SNMPv1|
-|Template Module Interfaces Simple SNMPv1|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces Simple SNMP |
## Discovery rules
diff --git a/templates/net/generic_snmpv1/template_net_generic_snmpv1.xml b/templates/net/generic_snmp/template_net_generic_snmp.xml
index d7ad5e2f39b..98bb0db3492 100644
--- a/templates/net/generic_snmpv1/template_net_generic_snmpv1.xml
+++ b/templates/net/generic_snmp/template_net_generic_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:07Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,20 +9,20 @@
</groups>
<templates>
<template>
- <template>Template Net Network Generic Device SNMPv1</template>
- <name>Template Net Network Generic Device SNMPv1</name>
+ <template>Template Net Network Generic Device SNMP</template>
+ <name>Template Net Network Generic Device SNMP</name>
<description>Template Net Network Generic Device&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv1</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv1</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces Simple SNMPv1</name>
+ <name>Template Module Interfaces Simple SNMP</name>
</template>
</templates>
<groups>
diff --git a/templates/net/generic_snmpv2/README.md b/templates/net/generic_snmpv2/README.md
deleted file mode 100644
index 3daa1c13d36..00000000000
--- a/templates/net/generic_snmpv2/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-
-# Template Net Network Generic Device SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-Use this template if you can't find the template for specific vendor or device family.
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces Simple SNMPv2|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/generic_snmpv2/template_net_generic_snmpv2.xml b/templates/net/generic_snmpv2/template_net_generic_snmpv2.xml
deleted file mode 100644
index 8f01a7abbf0..00000000000
--- a/templates/net/generic_snmpv2/template_net_generic_snmpv2.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
- <groups>
- <group>
- <name>Templates/Network devices</name>
- </group>
- </groups>
- <templates>
- <template>
- <template>Template Net Network Generic Device SNMPv2</template>
- <name>Template Net Network Generic Device SNMPv2</name>
- <description>Template Net Network Generic Device&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <templates>
- <template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
- </template>
- <template>
- <name>Template Module Generic SNMPv2</name>
- </template>
- <template>
- <name>Template Module Interfaces Simple SNMPv2</name>
- </template>
- </templates>
- <groups>
- <group>
- <name>Templates/Network devices</name>
- </group>
- </groups>
- </template>
- </templates>
-</zabbix_export>
diff --git a/templates/net/hp_hh3c_snmp/README.md b/templates/net/hp_hh3c_snmp/README.md
new file mode 100644
index 00000000000..23a0346bce5
--- /dev/null
+++ b/templates/net/hp_hh3c_snmp/README.md
@@ -0,0 +1,95 @@
+
+# Template Net HP Comware HH3C SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+http://certifiedgeek.weebly.com/blog/hp-comware-snmp-mib-for-cpu-memory-and-temperature
+http://www.h3c.com.hk/products___solutions/technology/system_management/configuration_example/200912/656451_57_0.htm
+
+This template was tested on:
+
+- HP 1910-48, version 1910-48 Switch Software Version 5.20.99, Release 1116 Copyright(c)2010-2016 Hewlett Packard Enterprise Development LP
+- HP A5500-24G-4SFP, version HP Comware Platform Software, Software Version 5.20.99 Release 5501P21 HP A5500-24G-4SFP
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS:"fanError"} |<p>-</p> |`41` |
+|{$FAN_CRIT_STATUS:"hardwareFaulty"} |<p>-</p> |`91` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS:"hardwareFaulty"} |<p>-</p> |`91` |
+|{$PSU_CRIT_STATUS:"psuError"} |<p>-</p> |`51` |
+|{$PSU_CRIT_STATUS:"rpsError"} |<p>-</p> |`61` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Module Discovery |<p>Filter limits results to 'Module level1' or Fabric Modules</p> |SNMP |module.discovery<p>**Filter**:</p>OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `^(MODULE|Module) (LEVEL|level)1$`</p><p>- A: {#SNMPVALUE} MATCHES_REGEX `(Fabric|FABRIC) (.+) (Module|MODULE)`</p> |
+|Temperature Discovery |<p>Discovering modules temperature (same filter as in Module Discovery) plus and temperature sensors</p> |SNMP |temp.discovery<p>**Filter**:</p>OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `^(MODULE|Module) (LEVEL|level)1$`</p><p>- A: {#SNMPVALUE} MATCHES_REGEX `(Fabric|FABRIC) (.+) (Module|MODULE)`</p><p>- A: {#SNMPVALUE} MATCHES_REGEX `(T|t)emperature.*(s|S)ensor`</p> |
+|FAN Discovery |<p>Discovering all entities of PhysicalClass - 7: fan(7)</p> |SNMP |fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `7`</p> |
+|PSU Discovery |<p>Discovering all entities of PhysicalClass - 6: powerSupply(6)</p> |SNMP |psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `6`</p> |
+|Entity Discovery |<p>-</p> |SNMP |entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |{#MODULE_NAME}: CPU utilization |<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>The CPU usage for this entity. Generally, the CPU usage</p><p>will calculate the overall CPU usage on the entity, and it</p><p>is not sensible with the number of CPU on the entity</p> |SNMP |system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}] |
+|Fans |{#ENT_NAME}: Fan status |<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>Indicate the error state of this entity object.</p><p>fanError(41) means that the fan stops working.</p> |SNMP |sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}] |
+|Inventory |{#ENT_NAME}: Hardware model name |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.model[entPhysicalDescr.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware serial number |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Firmware version |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware version(revision) |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Operating system |<p>MIB: ENTITY-MIB</p> |SNMP |system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |{#MODULE_NAME}: Memory utilization |<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>The memory usage for the entity. This object indicates what</p><p>percent of memory are used.</p> |SNMP |vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}] |
+|Power_supply |{#ENT_NAME}: Power supply status |<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>Indicate the error state of this entity object.</p><p>psuError(51) means that the Power Supply Unit is in the state of fault.</p><p>rpsError(61) means the Redundant Power Supply is in the state of fault.</p> |SNMP |sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}] |
+|Temperature |{#SNMPVALUE}: Temperature |<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>The temperature for the {#SNMPVALUE}.</p> |SNMP |sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#MODULE_NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|{#ENT_NAME}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"fanError"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"hardwareFaulty"},eq)}=1` |AVERAGE | |
+|{#ENT_NAME}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#MODULE_NAME}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|{#ENT_NAME}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"psuError"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"rpsError"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"hardwareFaulty"},eq)}=1` |AVERAGE | |
+|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: No temperature sensors. All entities of them return 0 for HH3C-ENTITY-EXT-MIB::hh3cEntityExtTemperature
+ - Version: 1910-48 Switch Software Version 5.20.99, Release 1116 Copyright(c)2010-2016 Hewlett Packard Enterprise Development LP
+ - Device: HP 1910-48
+
diff --git a/templates/net/hp_hh3c_snmpv2/template_net_hp_hh3c_snmpv2.xml b/templates/net/hp_hh3c_snmp/template_net_hp_hh3c_snmp.xml
index 8e519f5e9f4..6f9b3f1b1d0 100644
--- a/templates/net/hp_hh3c_snmpv2/template_net_hp_hh3c_snmpv2.xml
+++ b/templates/net/hp_hh3c_snmp/template_net_hp_hh3c_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:10Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net HP Comware HH3C SNMPv2</template>
- <name>Template Net HP Comware HH3C SNMPv2</name>
+ <template>Template Net HP Comware HH3C SNMP</template>
+ <name>Template Net HP Comware HH3C SNMP</name>
<description>Template Net HP Comware (HH3C)&#13;
&#13;
MIBs used:&#13;
@@ -23,16 +23,16 @@ Known Issues:&#13;
Version: 1910-48 Switch Software Version 5.20.99, Release 1116 Copyright(c)2010-2016 Hewlett Packard Enterprise Development LP&#13;
Device: HP 1910-48&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -63,8 +63,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Entity Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>entity.discovery</key>
<delay>1h</delay>
@@ -81,8 +80,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.9.{#SNMPINDEX}</snmp_oid>
<key>system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -114,8 +112,7 @@ Template tooling version used: 0.34</description>
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.hw.model[entPhysicalDescr.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -137,8 +134,7 @@ Template tooling version used: 0.34</description>
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.11.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -169,8 +165,7 @@ Template tooling version used: 0.34</description>
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.8.{#SNMPINDEX}</snmp_oid>
<key>system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -192,8 +187,7 @@ Template tooling version used: 0.34</description>
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.10.{#SNMPINDEX}</snmp_oid>
<key>system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -227,8 +221,7 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7,{#ENT_DESCR},1.3.6.1.2.1.47.1.1.1.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -246,8 +239,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.25506.2.6.1.1.1.1.19.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -278,8 +270,7 @@ fanError(41) means that the fan stops working.</description>
</discovery_rule>
<discovery_rule>
<name>Module Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.2,{#MODULE_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>module.discovery</key>
<delay>1h</delay>
@@ -302,8 +293,7 @@ fanError(41) means that the fan stops working.</description>
<item_prototypes>
<item_prototype>
<name>{#MODULE_NAME}: CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.25506.2.6.1.1.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -330,8 +320,7 @@ is not sensible with the number of CPU on the entity</description>
</item_prototype>
<item_prototype>
<name>{#MODULE_NAME}: Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.25506.2.6.1.1.1.1.8.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -365,7 +354,7 @@ percent of memory are used.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net HP Comware HH3C SNMPv2</host>
+ <host>Template Net HP Comware HH3C SNMP</host>
<key>system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -380,7 +369,7 @@ percent of memory are used.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net HP Comware HH3C SNMPv2</host>
+ <host>Template Net HP Comware HH3C SNMP</host>
<key>vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -390,8 +379,7 @@ percent of memory are used.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7,{#ENT_DESCR},1.3.6.1.2.1.47.1.1.1.1.2]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -409,8 +397,7 @@ percent of memory are used.</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.25506.2.6.1.1.1.1.19.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -442,8 +429,7 @@ rpsError(61) means the Redundant Power Supply is in the state of fault.</descrip
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.2,{#MODULE_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>temp.discovery</key>
<delay>1h</delay>
@@ -471,8 +457,7 @@ rpsError(61) means the Redundant Power Supply is in the state of fault.</descrip
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.25506.2.6.1.1.1.1.12.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -497,8 +482,8 @@ The temperature for the {#SNMPVALUE}.</description>
<dependencies>
<dependency>
<name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net HP Comware HH3C SNMPv2:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net HP Comware HH3C SNMPv2:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net HP Comware HH3C SNMP:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net HP Comware HH3C SNMP:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
diff --git a/templates/net/hp_hh3c_snmpv2/README.md b/templates/net/hp_hh3c_snmpv2/README.md
deleted file mode 100644
index 28c0e98b7aa..00000000000
--- a/templates/net/hp_hh3c_snmpv2/README.md
+++ /dev/null
@@ -1,95 +0,0 @@
-
-# Template Net HP Comware HH3C SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-http://certifiedgeek.weebly.com/blog/hp-comware-snmp-mib-for-cpu-memory-and-temperature
-http://www.h3c.com.hk/products___solutions/technology/system_management/configuration_example/200912/656451_57_0.htm
-
-This template was tested on:
-
-- HP 1910-48, version 1910-48 Switch Software Version 5.20.99, Release 1116 Copyright(c)2010-2016 Hewlett Packard Enterprise Development LP
-- HP A5500-24G-4SFP, version HP Comware Platform Software, Software Version 5.20.99 Release 5501P21 HP A5500-24G-4SFP
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS:"fanError"}|<p>-</p>|`41`|
-|{$FAN_CRIT_STATUS:"hardwareFaulty"}|<p>-</p>|`91`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS:"hardwareFaulty"}|<p>-</p>|`91`|
-|{$PSU_CRIT_STATUS:"psuError"}|<p>-</p>|`51`|
-|{$PSU_CRIT_STATUS:"rpsError"}|<p>-</p>|`61`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Module Discovery|<p>Filter limits results to 'Module level1' or Fabric Modules</p>|SNMP|module.discovery<p>**Filter**:</p>OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `^(MODULE|Module) (LEVEL|level)1$`</p><p>- A: {#SNMPVALUE} MATCHES_REGEX `(Fabric|FABRIC) (.+) (Module|MODULE)`</p>|
-|Temperature Discovery|<p>Discovering modules temperature (same filter as in Module Discovery) plus and temperature sensors</p>|SNMP|temp.discovery<p>**Filter**:</p>OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `^(MODULE|Module) (LEVEL|level)1$`</p><p>- A: {#SNMPVALUE} MATCHES_REGEX `(Fabric|FABRIC) (.+) (Module|MODULE)`</p><p>- A: {#SNMPVALUE} MATCHES_REGEX `(T|t)emperature.*(s|S)ensor`</p>|
-|FAN Discovery|<p>Discovering all entities of PhysicalClass - 7: fan(7)</p>|SNMP|fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `7`</p>|
-|PSU Discovery|<p>Discovering all entities of PhysicalClass - 6: powerSupply(6)</p>|SNMP|psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `6`</p>|
-|Entity Discovery|<p>-</p>|SNMP|entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|{#MODULE_NAME}: CPU utilization|<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>The CPU usage for this entity. Generally, the CPU usage</p><p>will calculate the overall CPU usage on the entity, and it</p><p>is not sensible with the number of CPU on the entity</p>|SNMP|system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}]|
-|Fans|{#ENT_NAME}: Fan status|<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>Indicate the error state of this entity object.</p><p>fanError(41) means that the fan stops working.</p>|SNMP|sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}]|
-|Inventory|{#ENT_NAME}: Hardware model name|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.model[entPhysicalDescr.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware serial number|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Firmware version|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware version(revision)|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Operating system|<p>MIB: ENTITY-MIB</p>|SNMP|system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|{#MODULE_NAME}: Memory utilization|<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>The memory usage for the entity. This object indicates what</p><p>percent of memory are used.</p>|SNMP|vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}]|
-|Power_supply|{#ENT_NAME}: Power supply status|<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>Indicate the error state of this entity object.</p><p>psuError(51) means that the Power Supply Unit is in the state of fault.</p><p>rpsError(61) means the Redundant Power Supply is in the state of fault.</p>|SNMP|sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}]|
-|Temperature|{#SNMPVALUE}: Temperature|<p>MIB: HH3C-ENTITY-EXT-MIB</p><p>The temperature for the {#SNMPVALUE}.</p>|SNMP|sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#MODULE_NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|{#ENT_NAME}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"fanError"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"hardwareFaulty"},eq)}=1`|AVERAGE||
-|{#ENT_NAME}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#MODULE_NAME}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|{#ENT_NAME}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"psuError"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"rpsError"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"hardwareFaulty"},eq)}=1`|AVERAGE||
-|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: No temperature sensors. All entities of them return 0 for HH3C-ENTITY-EXT-MIB::hh3cEntityExtTemperature
- - Version: 1910-48 Switch Software Version 5.20.99, Release 1116 Copyright(c)2010-2016 Hewlett Packard Enterprise Development LP
- - Device: HP 1910-48
-
diff --git a/templates/net/hp_hpn_snmp/README.md b/templates/net/hp_hpn_snmp/README.md
new file mode 100644
index 00000000000..7a328609e3a
--- /dev/null
+++ b/templates/net/hp_hpn_snmp/README.md
@@ -0,0 +1,91 @@
+
+# Template Net HP Enterprise Switch SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+This template was tested on:
+
+- HP ProCurve J4900B Switch 2626, version ProCurve J4900B Switch 2626, revision H.10.31, ROM H.08.02 (/sw/code/build/fish(mkfs))
+- HP J9728A 2920-48G Switch, version HP J9728A 2920-48G Switch, revision WB.16.03.0003, ROM WB.16.03 (/ws/swbuildm/rel_tacoma_qaoff/code/build/anm(swbuildm_rel_tacoma_qaoff_rel_tacoma)) (Formerly ProCurve)"
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS:"bad"} |<p>-</p> |`2` |
+|{$FAN_WARN_STATUS:"warning"} |<p>-</p> |`3` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS:"bad"} |<p>-</p> |`2` |
+|{$PSU_WARN_STATUS:"warning"} |<p>-</p> |`3` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with celsius filter</p> |SNMP |temp.precision0.discovery<p>**Filter**:</p>AND <p>- B: {#SENSOR_TYPE} MATCHES_REGEX `8`</p><p>- B: {#SENSOR_PRECISION} MATCHES_REGEX `0`</p> |
+|Memory Discovery |<p>Discovery of NETSWITCH-MIB::hpLocalMemTable, A table that contains information on all the local memory for each slot.</p> |SNMP |memory.discovery |
+|FAN Discovery |<p>Discovering all entities of hpicfSensorObjectId that ends with: 11.2.3.7.8.3.2 - fans and are present</p> |SNMP |fan.discovery<p>**Filter**:</p>AND <p>- A: {#ENT_CLASS} MATCHES_REGEX `.+8.3.2$`</p><p>- A: {#ENT_STATUS} MATCHES_REGEX `(1|2|3|4)`</p> |
+|PSU Discovery |<p>Discovering all entities of hpicfSensorObjectId that ends with: 11.2.3.7.8.3.1 - power supplies and are present</p> |SNMP |psu.discovery<p>**Filter**:</p>AND <p>- A: {#ENT_CLASS} MATCHES_REGEX `.+8.3.1$`</p><p>- A: {#ENT_STATUS} MATCHES_REGEX `(1|2|3|4)`</p> |
+|Temp Status Discovery |<p>Discovering all entities of hpicfSensorObjectId that ends with: 11.2.3.7.8.3.3 - over temp status and are present</p> |SNMP |temp.status.discovery<p>**Filter**:</p>AND <p>- A: {#ENT_CLASS} MATCHES_REGEX `.+8.3.3$`</p><p>- A: {#ENT_STATUS} MATCHES_REGEX `(1|2|3|4)`</p> |
+|Entity Discovery |<p>-</p> |SNMP |entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: STATISTICS-MIB</p><p>The CPU utilization in percent(%).</p><p>Reference: http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=emr_na-c02597344&sp4ts.oid=51079</p> |SNMP |system.cpu.util[hpSwitchCpuStat.0] |
+|Fans |{#ENT_DESCR}: Fan status |<p>MIB: HP-ICF-CHASSIS</p><p>Actual status indicated by the sensor: {#ENT_DESCR}</p> |SNMP |sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}] |
+|Inventory |Hardware serial number |<p>MIB: SEMI-MIB</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: NETSWITCH-MIB</p><p>Contains the operating code version number (also known as software or firmware).</p><p>For example, a software version such as A.08.01 is described as follows:</p><p>A the function set available in your router</p><p>08 the common release number</p><p>01 updates to the current common release</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware model name |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.model[entPhysicalDescr.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware version(revision) |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |#{#SNMPVALUE}: Used memory |<p>MIB: NETSWITCH-MIB</p><p>The number of currently allocated bytes.</p> |SNMP |vm.memory.used[hpLocalMemAllocBytes.{#SNMPINDEX}] |
+|Memory |#{#SNMPVALUE}: Available memory |<p>MIB: NETSWITCH-MIB</p><p>The number of available (unallocated) bytes.</p> |SNMP |vm.memory.available[hpLocalMemFreeBytes.{#SNMPINDEX}] |
+|Memory |#{#SNMPVALUE}: Total memory |<p>MIB: NETSWITCH-MIB</p><p>The number of currently installed bytes.</p> |SNMP |vm.memory.total[hpLocalMemTotalBytes.{#SNMPINDEX}] |
+|Memory |#{#SNMPVALUE}: Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[snmp.{#SNMPINDEX}]<p>**Expression**:</p>`last("vm.memory.used[hpLocalMemAllocBytes.{#SNMPINDEX}]")/last("vm.memory.total[hpLocalMemTotalBytes.{#SNMPINDEX}]")*100` |
+|Power_supply |{#ENT_DESCR}: Power supply status |<p>MIB: HP-ICF-CHASSIS</p><p>Actual status indicated by the sensor: {#ENT_DESCR}</p> |SNMP |sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_INFO}: Temperature |<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p> |SNMP |sensor.temp.value[entPhySensorValue.{#SNMPINDEX}] |
+|Temperature |{#ENT_DESCR}: Temperature status |<p>MIB: HP-ICF-CHASSIS</p><p>Actual status indicated by the sensor: {#ENT_DESCR}</p> |SNMP |sensor.temp.status[hpicfSensorStatus.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[hpSwitchCpuStat.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|{#ENT_DESCR}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"bad"},eq)}=1` |AVERAGE | |
+|{#ENT_DESCR}: Fan is in warning state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"warning"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#ENT_DESCR}: Fan is in critical state</p> |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[snmp.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|{#ENT_DESCR}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"bad"},eq)}=1` |AVERAGE | |
+|{#ENT_DESCR}: Power supply is in warning state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"warning"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#ENT_DESCR}: Power supply is in critical state</p> |
+|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/hp_hpn_snmpv2/template_net_hp_hpn_snmpv2.xml b/templates/net/hp_hpn_snmp/template_net_hp_hpn_snmp.xml
index 9f68cf0b45f..a56bf7f2366 100644
--- a/templates/net/hp_hpn_snmpv2/template_net_hp_hpn_snmpv2.xml
+++ b/templates/net/hp_hpn_snmp/template_net_hp_hpn_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:20Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net HP Enterprise Switch SNMPv2</template>
- <name>Template Net HP Enterprise Switch SNMPv2</name>
+ <template>Template Net HP Enterprise Switch SNMP</template>
+ <name>Template Net HP Enterprise Switch SNMP</name>
<description>Template Net HP Enterprise Switch&#13;
&#13;
MIBs used:&#13;
@@ -21,16 +21,16 @@ ENTITY-SENSORS-MIB&#13;
ENTITY-MIB&#13;
STATISTICS-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -61,8 +61,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0</snmp_oid>
<key>system.cpu.util[hpSwitchCpuStat.0]</key>
<history>7d</history>
@@ -88,8 +87,7 @@ Reference: http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=emr_na-c0259
</item>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.14.11.5.1.1.3.0</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -126,8 +124,7 @@ A the function set available in your router&#13;
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.36.1.1.2.9.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -161,8 +158,7 @@ A the function set available in your router&#13;
<discovery_rules>
<discovery_rule>
<name>Entity Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>entity.discovery</key>
<delay>1h</delay>
@@ -179,8 +175,7 @@ A the function set available in your router&#13;
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.hw.model[entPhysicalDescr.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -202,8 +197,7 @@ A the function set available in your router&#13;
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.8.{#SNMPINDEX}</snmp_oid>
<key>system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -227,8 +221,7 @@ A the function set available in your router&#13;
</discovery_rule>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.4.1.11.2.14.11.1.2.6.1.2,{#ENT_DESCR},1.3.6.1.4.1.11.2.14.11.1.2.6.1.7,{#ENT_STATUS},1.3.6.1.4.1.11.2.14.11.1.2.6.1.4]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -251,8 +244,7 @@ A the function set available in your router&#13;
<item_prototypes>
<item_prototype>
<name>{#ENT_DESCR}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.14.11.1.2.6.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -285,7 +277,7 @@ Actual status indicated by the sensor: {#ENT_DESCR}</description>
<dependencies>
<dependency>
<name>{#ENT_DESCR}: Fan is in critical state</name>
- <expression>{Template Net HP Enterprise Switch SNMPv2:sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"bad"},eq)}=1</expression>
+ <expression>{Template Net HP Enterprise Switch SNMP:sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"bad"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -295,8 +287,7 @@ Actual status indicated by the sensor: {#ENT_DESCR}</description>
</discovery_rule>
<discovery_rule>
<name>Memory Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.1]</snmp_oid>
<key>memory.discovery</key>
<delay>1h</delay>
@@ -304,8 +295,7 @@ Actual status indicated by the sensor: {#ENT_DESCR}</description>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Available memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.available[hpLocalMemFreeBytes.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -320,8 +310,7 @@ The number of available (unallocated) bytes.</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPVALUE}: Total memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.total[hpLocalMemTotalBytes.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -336,8 +325,7 @@ The number of currently installed bytes.</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPVALUE}: Used memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.7.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.used[hpLocalMemAllocBytes.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -383,7 +371,7 @@ The number of currently allocated bytes.</description>
<drawtype>BOLD_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net HP Enterprise Switch SNMPv2</host>
+ <host>Template Net HP Enterprise Switch SNMP</host>
<key>vm.memory.total[hpLocalMemTotalBytes.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -392,7 +380,7 @@ The number of currently allocated bytes.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Net HP Enterprise Switch SNMPv2</host>
+ <host>Template Net HP Enterprise Switch SNMP</host>
<key>vm.memory.available[hpLocalMemFreeBytes.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -407,7 +395,7 @@ The number of currently allocated bytes.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net HP Enterprise Switch SNMPv2</host>
+ <host>Template Net HP Enterprise Switch SNMP</host>
<key>vm.memory.util[snmp.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -417,8 +405,7 @@ The number of currently allocated bytes.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.4.1.11.2.14.11.1.2.6.1.2,{#ENT_DESCR},1.3.6.1.4.1.11.2.14.11.1.2.6.1.7,{#ENT_STATUS},1.3.6.1.4.1.11.2.14.11.1.2.6.1.4]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -441,8 +428,7 @@ The number of currently allocated bytes.</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_DESCR}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.14.11.1.2.6.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -475,7 +461,7 @@ Actual status indicated by the sensor: {#ENT_DESCR}</description>
<dependencies>
<dependency>
<name>{#ENT_DESCR}: Power supply is in critical state</name>
- <expression>{Template Net HP Enterprise Switch SNMPv2:sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"bad"},eq)}=1</expression>
+ <expression>{Template Net HP Enterprise Switch SNMP:sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"bad"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -485,8 +471,7 @@ Actual status indicated by the sensor: {#ENT_DESCR}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_TYPE},1.3.6.1.2.1.99.1.1.1.1,{#SENSOR_INFO},1.3.6.1.2.1.47.1.1.1.1.2,{#SENSOR_PRECISION},1.3.6.1.2.1.99.1.1.1.3]</snmp_oid>
<key>temp.precision0.discovery</key>
<delay>1h</delay>
@@ -509,8 +494,7 @@ Actual status indicated by the sensor: {#ENT_DESCR}</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -537,8 +521,8 @@ entPhySensorScale, and entPhySensorPrecision objects must also be examined.</des
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net HP Enterprise Switch SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net HP Enterprise Switch SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net HP Enterprise Switch SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net HP Enterprise Switch SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -565,8 +549,7 @@ entPhySensorScale, and entPhySensorPrecision objects must also be examined.</des
</discovery_rule>
<discovery_rule>
<name>Temp Status Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.4.1.11.2.14.11.1.2.6.1.2,{#ENT_DESCR},1.3.6.1.4.1.11.2.14.11.1.2.6.1.7,{#ENT_STATUS},1.3.6.1.4.1.11.2.14.11.1.2.6.1.4]</snmp_oid>
<key>temp.status.discovery</key>
<delay>1h</delay>
@@ -589,8 +572,7 @@ entPhySensorScale, and entPhySensorPrecision objects must also be examined.</des
<item_prototypes>
<item_prototype>
<name>{#ENT_DESCR}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11.2.14.11.1.2.6.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[hpicfSensorStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -660,7 +642,7 @@ Actual status indicated by the sensor: {#ENT_DESCR}</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net HP Enterprise Switch SNMPv2</host>
+ <host>Template Net HP Enterprise Switch SNMP</host>
<key>system.cpu.util[hpSwitchCpuStat.0]</key>
</item>
</graph_item>
diff --git a/templates/net/hp_hpn_snmpv2/README.md b/templates/net/hp_hpn_snmpv2/README.md
deleted file mode 100644
index 38020f1f487..00000000000
--- a/templates/net/hp_hpn_snmpv2/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-
-# Template Net HP Enterprise Switch SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-This template was tested on:
-
-- HP ProCurve J4900B Switch 2626, version ProCurve J4900B Switch 2626, revision H.10.31, ROM H.08.02 (/sw/code/build/fish(mkfs))
-- HP J9728A 2920-48G Switch, version HP J9728A 2920-48G Switch, revision WB.16.03.0003, ROM WB.16.03 (/ws/swbuildm/rel_tacoma_qaoff/code/build/anm(swbuildm_rel_tacoma_qaoff_rel_tacoma)) (Formerly ProCurve)"
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS:"bad"}|<p>-</p>|`2`|
-|{$FAN_WARN_STATUS:"warning"}|<p>-</p>|`3`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS:"bad"}|<p>-</p>|`2`|
-|{$PSU_WARN_STATUS:"warning"}|<p>-</p>|`3`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with celsius filter</p>|SNMP|temp.precision0.discovery<p>**Filter**:</p>AND <p>- B: {#SENSOR_TYPE} MATCHES_REGEX `8`</p><p>- B: {#SENSOR_PRECISION} MATCHES_REGEX `0`</p>|
-|Memory Discovery|<p>Discovery of NETSWITCH-MIB::hpLocalMemTable, A table that contains information on all the local memory for each slot.</p>|SNMP|memory.discovery|
-|FAN Discovery|<p>Discovering all entities of hpicfSensorObjectId that ends with: 11.2.3.7.8.3.2 - fans and are present</p>|SNMP|fan.discovery<p>**Filter**:</p>AND <p>- A: {#ENT_CLASS} MATCHES_REGEX `.+8.3.2$`</p><p>- A: {#ENT_STATUS} MATCHES_REGEX `(1|2|3|4)`</p>|
-|PSU Discovery|<p>Discovering all entities of hpicfSensorObjectId that ends with: 11.2.3.7.8.3.1 - power supplies and are present</p>|SNMP|psu.discovery<p>**Filter**:</p>AND <p>- A: {#ENT_CLASS} MATCHES_REGEX `.+8.3.1$`</p><p>- A: {#ENT_STATUS} MATCHES_REGEX `(1|2|3|4)`</p>|
-|Temp Status Discovery|<p>Discovering all entities of hpicfSensorObjectId that ends with: 11.2.3.7.8.3.3 - over temp status and are present</p>|SNMP|temp.status.discovery<p>**Filter**:</p>AND <p>- A: {#ENT_CLASS} MATCHES_REGEX `.+8.3.3$`</p><p>- A: {#ENT_STATUS} MATCHES_REGEX `(1|2|3|4)`</p>|
-|Entity Discovery|<p>-</p>|SNMP|entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: STATISTICS-MIB</p><p>The CPU utilization in percent(%).</p><p>Reference: http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=emr_na-c02597344&sp4ts.oid=51079</p>|SNMP|system.cpu.util[hpSwitchCpuStat.0]|
-|Fans|{#ENT_DESCR}: Fan status|<p>MIB: HP-ICF-CHASSIS</p><p>Actual status indicated by the sensor: {#ENT_DESCR}</p>|SNMP|sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}]|
-|Inventory|Hardware serial number|<p>MIB: SEMI-MIB</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: NETSWITCH-MIB</p><p>Contains the operating code version number (also known as software or firmware).</p><p>For example, a software version such as A.08.01 is described as follows:</p><p>A the function set available in your router</p><p>08 the common release number</p><p>01 updates to the current common release</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware model name|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.model[entPhysicalDescr.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware version(revision)|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|#{#SNMPVALUE}: Used memory|<p>MIB: NETSWITCH-MIB</p><p>The number of currently allocated bytes.</p>|SNMP|vm.memory.used[hpLocalMemAllocBytes.{#SNMPINDEX}]|
-|Memory|#{#SNMPVALUE}: Available memory|<p>MIB: NETSWITCH-MIB</p><p>The number of available (unallocated) bytes.</p>|SNMP|vm.memory.available[hpLocalMemFreeBytes.{#SNMPINDEX}]|
-|Memory|#{#SNMPVALUE}: Total memory|<p>MIB: NETSWITCH-MIB</p><p>The number of currently installed bytes.</p>|SNMP|vm.memory.total[hpLocalMemTotalBytes.{#SNMPINDEX}]|
-|Memory|#{#SNMPVALUE}: Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[snmp.{#SNMPINDEX}]<p>**Expression**:</p>`last("vm.memory.used[hpLocalMemAllocBytes.{#SNMPINDEX}]")/last("vm.memory.total[hpLocalMemTotalBytes.{#SNMPINDEX}]")*100`|
-|Power_supply|{#ENT_DESCR}: Power supply status|<p>MIB: HP-ICF-CHASSIS</p><p>Actual status indicated by the sensor: {#ENT_DESCR}</p>|SNMP|sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_INFO}: Temperature|<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p>|SNMP|sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]|
-|Temperature|{#ENT_DESCR}: Temperature status|<p>MIB: HP-ICF-CHASSIS</p><p>Actual status indicated by the sensor: {#ENT_DESCR}</p>|SNMP|sensor.temp.status[hpicfSensorStatus.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[hpSwitchCpuStat.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|{#ENT_DESCR}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"bad"},eq)}=1`|AVERAGE||
-|{#ENT_DESCR}: Fan is in warning state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"warning"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#ENT_DESCR}: Fan is in critical state</p>|
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[snmp.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|{#ENT_DESCR}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"bad"},eq)}=1`|AVERAGE||
-|{#ENT_DESCR}: Power supply is in warning state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"warning"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#ENT_DESCR}: Power supply is in critical state</p>|
-|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/huawei_snmp/README.md b/templates/net/huawei_snmp/README.md
new file mode 100644
index 00000000000..fdc927e2c62
--- /dev/null
+++ b/templates/net/huawei_snmp/README.md
@@ -0,0 +1,74 @@
+
+# Template Net Huawei VRP SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+Reference: https://www.slideshare.net/Huanetwork/huawei-s5700-naming-conventions-and-port-numbering-conventions
+Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000090234
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`2` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|MPU Discovery |<p>http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000090234. Filter limits results to Main Processing Units</p> |SNMP |mpu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_NAME} MATCHES_REGEX `MPU.*`</p> |
+|Entity Discovery |<p>-</p> |SNMP |entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p> |
+|FAN Discovery |<p>-</p> |SNMP |discovery.fans |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |{#ENT_NAME}: CPU utilization |<p>MIB: HUAWEI-ENTITY-EXTENT-MIB</p><p>The CPU usage for this entity. Generally, the CPU usage will calculate the overall CPU usage on the entity, and itis not sensible with the number of CPU on the entity.</p><p>Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000090234</p> |SNMP |system.cpu.util[hwEntityCpuUsage.{#SNMPINDEX}] |
+|Fans |#{#SNMPVALUE}: Fan status |<p>MIB: HUAWEI-ENTITY-EXTENT-MIB</p> |SNMP |sensor.fan.status[hwEntityFanState.{#SNMPINDEX}] |
+|Inventory |{#ENT_NAME}: Hardware serial number |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware version(revision) |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Operating system |<p>MIB: ENTITY-MIB</p> |SNMP |system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware model name |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.model[entPhysicalDescr.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |{#ENT_NAME}: Memory utilization |<p>MIB: HUAWEI-ENTITY-EXTENT-MIB</p><p>The memory usage for the entity. This object indicates what percent of memory are used.</p><p>Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000090234</p> |SNMP |vm.memory.util[hwEntityMemUsage.{#SNMPINDEX}] |
+|Temperature |{#ENT_NAME}: Temperature |<p>MIB: HUAWEI-ENTITY-EXTENT-MIB</p><p>The temperature for the {#SNMPVALUE}.</p> |SNMP |sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#ENT_NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[hwEntityCpuUsage.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|#{#SNMPVALUE}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[hwEntityFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#ENT_NAME}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[hwEntityMemUsage.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|{#ENT_NAME}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#ENT_NAME}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#ENT_NAME}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#ENT_NAME}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/huawei_snmpv2/template_net_huawei_snmpv2.xml b/templates/net/huawei_snmp/template_net_huawei_snmp.xml
index 9ae44a2debe..d14cd9cc59e 100644
--- a/templates/net/huawei_snmpv2/template_net_huawei_snmpv2.xml
+++ b/templates/net/huawei_snmp/template_net_huawei_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:21Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,24 +9,24 @@
</groups>
<templates>
<template>
- <template>Template Net Huawei VRP SNMPv2</template>
- <name>Template Net Huawei VRP SNMPv2</name>
+ <template>Template Net Huawei VRP SNMP</template>
+ <name>Template Net Huawei VRP SNMP</name>
<description>Template Net Huawei VRP&#13;
&#13;
MIBs used:&#13;
HUAWEI-ENTITY-EXTENT-MIB&#13;
ENTITY-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -54,16 +54,14 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2011.5.25.31.1.1.10.1.1]</snmp_oid>
<key>discovery.fans</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2011.5.25.31.1.1.10.1.7.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[hwEntityFanState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -92,8 +90,7 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>Entity Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>entity.discovery</key>
<delay>1h</delay>
@@ -110,8 +107,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.hw.model[entPhysicalDescr.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -135,8 +131,7 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>MPU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>mpu.discovery</key>
<delay>1h</delay>
@@ -154,8 +149,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2011.5.25.31.1.1.1.1.11.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -180,8 +174,8 @@ The temperature for the {#SNMPVALUE}.</description>
<dependencies>
<dependency>
<name>{#ENT_NAME}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Huawei VRP SNMPv2:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Huawei VRP SNMPv2:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Huawei VRP SNMP:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Huawei VRP SNMP:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -206,8 +200,7 @@ The temperature for the {#SNMPVALUE}.</description>
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>system.cpu.util[hwEntityCpuUsage.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -233,8 +226,7 @@ Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?c
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.11.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -265,8 +257,7 @@ Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?c
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.8.{#SNMPINDEX}</snmp_oid>
<key>system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -288,8 +279,7 @@ Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?c
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.10.{#SNMPINDEX}</snmp_oid>
<key>system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -321,8 +311,7 @@ Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?c
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.util[hwEntityMemUsage.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -356,7 +345,7 @@ Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?c
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Huawei VRP SNMPv2</host>
+ <host>Template Net Huawei VRP SNMP</host>
<key>system.cpu.util[hwEntityCpuUsage.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -371,7 +360,7 @@ Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?c
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Huawei VRP SNMPv2</host>
+ <host>Template Net Huawei VRP SNMP</host>
<key>vm.memory.util[hwEntityMemUsage.{#SNMPINDEX}]</key>
</item>
</graph_item>
diff --git a/templates/net/huawei_snmpv2/README.md b/templates/net/huawei_snmpv2/README.md
deleted file mode 100644
index c30f04ec1d0..00000000000
--- a/templates/net/huawei_snmpv2/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-
-# Template Net Huawei VRP SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-Reference: https://www.slideshare.net/Huanetwork/huawei-s5700-naming-conventions-and-port-numbering-conventions
-Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000090234
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`2`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|MPU Discovery|<p>http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000090234. Filter limits results to Main Processing Units</p>|SNMP|mpu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_NAME} MATCHES_REGEX `MPU.*`</p>|
-|Entity Discovery|<p>-</p>|SNMP|entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p>|
-|FAN Discovery|<p>-</p>|SNMP|discovery.fans|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|{#ENT_NAME}: CPU utilization|<p>MIB: HUAWEI-ENTITY-EXTENT-MIB</p><p>The CPU usage for this entity. Generally, the CPU usage will calculate the overall CPU usage on the entity, and itis not sensible with the number of CPU on the entity.</p><p>Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000090234</p>|SNMP|system.cpu.util[hwEntityCpuUsage.{#SNMPINDEX}]|
-|Fans|#{#SNMPVALUE}: Fan status|<p>MIB: HUAWEI-ENTITY-EXTENT-MIB</p>|SNMP|sensor.fan.status[hwEntityFanState.{#SNMPINDEX}]|
-|Inventory|{#ENT_NAME}: Hardware serial number|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware version(revision)|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Operating system|<p>MIB: ENTITY-MIB</p>|SNMP|system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware model name|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.model[entPhysicalDescr.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|{#ENT_NAME}: Memory utilization|<p>MIB: HUAWEI-ENTITY-EXTENT-MIB</p><p>The memory usage for the entity. This object indicates what percent of memory are used.</p><p>Reference: http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000090234</p>|SNMP|vm.memory.util[hwEntityMemUsage.{#SNMPINDEX}]|
-|Temperature|{#ENT_NAME}: Temperature|<p>MIB: HUAWEI-ENTITY-EXTENT-MIB</p><p>The temperature for the {#SNMPVALUE}.</p>|SNMP|sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#ENT_NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[hwEntityCpuUsage.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|#{#SNMPVALUE}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[hwEntityFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#ENT_NAME}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[hwEntityMemUsage.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|{#ENT_NAME}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#ENT_NAME}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#ENT_NAME}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#ENT_NAME}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/intel_qlogic_infiniband_snmp/README.md b/templates/net/intel_qlogic_infiniband_snmp/README.md
new file mode 100644
index 00000000000..35eb4ee48b2
--- /dev/null
+++ b/templates/net/intel_qlogic_infiniband_snmp/README.md
@@ -0,0 +1,71 @@
+
+# Template Net Intel_Qlogic Infiniband SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$FAN_CRIT_STATUS} |<p>-</p> |`3` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`3` |
+|{$PSU_WARN_STATUS} |<p>-</p> |`4` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT_STATUS} |<p>-</p> |`3` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN_STATUS} |<p>-</p> |`2` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>Discovering sensor's table with temperature filter</p> |SNMP |temp.discovery<p>**Filter**:</p>AND <p>- B: {#SENSOR_TYPE} MATCHES_REGEX `2`</p> |
+|Unit Discovery |<p>-</p> |SNMP |unit.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `2`</p> |
+|PSU Discovery |<p>A textual description of the power supply, that can be assigned by the administrator.</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>icsChassisFanDescription of icsChassisFanTable</p> |SNMP |fan.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Fans |{#SNMPVALUE}: Fan status |<p>MIB: ICS-CHASSIS-MIB</p><p>The operational status of the fan unit.</p> |SNMP |sensor.fan.status[icsChassisFanOperStatus.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: ICS-CHASSIS-MIB</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- REGEX: `(.+) - Firmware \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: ICS-CHASSIS-MIB</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- REGEX: `Firmware Version: ([0-9.]+), \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware serial number |<p>MIB: ICS-CHASSIS-MIB</p><p>The serial number of the FRU. If not available, this value is a zero-length string.</p> |SNMP |system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Power_supply |{#SNMPVALUE}: Power supply status |<p>MIB: ICS-CHASSIS-MIB</p><p>Actual status of the power supply:</p><p>(1) unknown: status not known.</p><p>(2) disabled: power supply is disabled.</p><p>(3) failed - power supply is unable to supply power due to failure.</p><p>(4) warning - power supply is supplying power, but an output or sensor is bad or warning.</p><p>(5) standby - power supply believed usable,but not supplying power.</p><p>(6) engaged - power supply is supplying power.</p><p>(7) redundant - power supply is supplying power, but not needed.</p><p>(8) notPresent - power supply is supplying power is not present.</p> |SNMP |sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_INFO}: Temperature |<p>MIB: ICS-CHASSIS-MIB</p><p>The current value read from the sensor.</p> |SNMP |sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_INFO}: Temperature status |<p>MIB: ICS-CHASSIS-MIB</p><p>The operational status of the sensor.</p> |SNMP |sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#SNMPVALUE}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[icsChassisFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#SNMPVALUE}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#SNMPVALUE}: Power supply is in warning state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#SNMPVALUE}: Power supply is in critical state</p> |
+|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} or {Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/intel_qlogic_infiniband_snmpv2/template_net_intel_qlogic_infiniband_snmpv2.xml b/templates/net/intel_qlogic_infiniband_snmp/template_net_intel_qlogic_infiniband_snmp.xml
index bb908411eb0..345f876a496 100644
--- a/templates/net/intel_qlogic_infiniband_snmpv2/template_net_intel_qlogic_infiniband_snmpv2.xml
+++ b/templates/net/intel_qlogic_infiniband_snmp/template_net_intel_qlogic_infiniband_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:16Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,20 +9,20 @@
</groups>
<templates>
<template>
- <template>Template Net Intel_Qlogic Infiniband SNMPv2</template>
- <name>Template Net Intel_Qlogic Infiniband SNMPv2</name>
+ <template>Template Net Intel_Qlogic Infiniband SNMP</template>
+ <name>Template Net Intel_Qlogic Infiniband SNMP</name>
<description>Template Net Intel_Qlogic Infiniband&#13;
&#13;
MIBs used:&#13;
ICS-CHASSIS-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -47,8 +47,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10222.2.1.1.1.0</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -85,8 +84,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10222.2.1.1.1.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -116,8 +114,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.10222.2.1.6.5.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -125,8 +122,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10222.2.1.6.5.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[icsChassisFanOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -156,8 +152,7 @@ The operational status of the fan unit.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.10222.2.1.4.7.1.2]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -165,8 +160,7 @@ The operational status of the fan unit.</description>
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10222.2.1.4.7.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -207,7 +201,7 @@ Actual status of the power supply:&#13;
<dependencies>
<dependency>
<name>{#SNMPVALUE}: Power supply is in critical state</name>
- <expression>{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Net Intel_Qlogic Infiniband SNMP:sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -217,8 +211,7 @@ Actual status of the power supply:&#13;
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_TYPE},1.3.6.1.4.1.10222.2.1.9.8.1.2,{#SENSOR_INFO},1.3.6.1.4.1.10222.2.1.9.8.1.7]</snmp_oid>
<key>temp.discovery</key>
<delay>1h</delay>
@@ -236,8 +229,7 @@ Actual status of the power supply:&#13;
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10222.2.1.9.8.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -256,8 +248,7 @@ The operational status of the sensor.</description>
</item_prototype>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10222.2.1.9.8.1.8.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -284,22 +275,22 @@ The current value read from the sensor.</description>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
+ <expression>{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
or&#13;
-{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}</expression>
+{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <recovery_expression>{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
<name>{#SENSOR_INFO}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
<description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
+ <expression>{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
or&#13;
-{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
+{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
+ <recovery_expression>{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
<name>{#SENSOR_INFO}: Temperature is above warning threshold: &gt;{$TEMP_WARN:""}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
@@ -307,10 +298,10 @@ or&#13;
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
+ <expression>{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
or&#13;
-{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}</expression>
- <recovery_expression>{Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}</expression>
+ <recovery_expression>{Template Net Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -318,8 +309,7 @@ or&#13;
</discovery_rule>
<discovery_rule>
<name>Unit Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.4.1.10222.2.1.1.9.1.3,{#ENT_NAME},1.3.6.1.4.1.10222.2.1.1.9.1.2]</snmp_oid>
<key>unit.discovery</key>
<delay>1h</delay>
@@ -336,8 +326,7 @@ or&#13;
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10222.2.1.1.10.1.1.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}]</key>
<delay>1h</delay>
diff --git a/templates/net/intel_qlogic_infiniband_snmpv2/README.md b/templates/net/intel_qlogic_infiniband_snmpv2/README.md
deleted file mode 100644
index 0e9ba3f5bd3..00000000000
--- a/templates/net/intel_qlogic_infiniband_snmpv2/README.md
+++ /dev/null
@@ -1,71 +0,0 @@
-
-# Template Net Intel_Qlogic Infiniband SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`3`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`3`|
-|{$PSU_WARN_STATUS}|<p>-</p>|`4`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT_STATUS}|<p>-</p>|`3`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN_STATUS}|<p>-</p>|`2`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>Discovering sensor's table with temperature filter</p>|SNMP|temp.discovery<p>**Filter**:</p>AND <p>- B: {#SENSOR_TYPE} MATCHES_REGEX `2`</p>|
-|Unit Discovery|<p>-</p>|SNMP|unit.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `2`</p>|
-|PSU Discovery|<p>A textual description of the power supply, that can be assigned by the administrator.</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>icsChassisFanDescription of icsChassisFanTable</p>|SNMP|fan.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|{#SNMPVALUE}: Fan status|<p>MIB: ICS-CHASSIS-MIB</p><p>The operational status of the fan unit.</p>|SNMP|sensor.fan.status[icsChassisFanOperStatus.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: ICS-CHASSIS-MIB</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- REGEX: `(.+) - Firmware \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: ICS-CHASSIS-MIB</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- REGEX: `Firmware Version: ([0-9.]+), \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware serial number|<p>MIB: ICS-CHASSIS-MIB</p><p>The serial number of the FRU. If not available, this value is a zero-length string.</p>|SNMP|system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Power_supply|{#SNMPVALUE}: Power supply status|<p>MIB: ICS-CHASSIS-MIB</p><p>Actual status of the power supply:</p><p>(1) unknown: status not known.</p><p>(2) disabled: power supply is disabled.</p><p>(3) failed - power supply is unable to supply power due to failure.</p><p>(4) warning - power supply is supplying power, but an output or sensor is bad or warning.</p><p>(5) standby - power supply believed usable,but not supplying power.</p><p>(6) engaged - power supply is supplying power.</p><p>(7) redundant - power supply is supplying power, but not needed.</p><p>(8) notPresent - power supply is supplying power is not present.</p>|SNMP|sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_INFO}: Temperature|<p>MIB: ICS-CHASSIS-MIB</p><p>The current value read from the sensor.</p>|SNMP|sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_INFO}: Temperature status|<p>MIB: ICS-CHASSIS-MIB</p><p>The operational status of the sensor.</p>|SNMP|sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#SNMPVALUE}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[icsChassisFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#SNMPVALUE}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#SNMPVALUE}: Power supply is in warning state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#SNMPVALUE}: Power supply is in critical state</p>|
-|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} or {Template Net Intel_Qlogic Infiniband SNMPv2:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/juniper_snmp/README.md b/templates/net/juniper_snmp/README.md
new file mode 100644
index 00000000000..175195683b7
--- /dev/null
+++ b/templates/net/juniper_snmp/README.md
@@ -0,0 +1,78 @@
+
+# Template Net Juniper SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`6` |
+|{$HEALTH_CRIT_STATUS} |<p>-</p> |`3` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`6` |
+|{$TEMP_CRIT:"Routing Engine"} |<p>-</p> |`80` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN:"Routing Engine"} |<p>-</p> |`70` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|CPU and Memory Discovery |<p>Scanning JUNIPER-MIB::jnxOperatingTable for CPU and Memory</p><p>http://kb.juniper.net/InfoCenter/index?page=content&id=KB17526&actp=search. Filter limits results to Routing Engines</p> |SNMP |jnxOperatingTable.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `Routing Engine.*`</p> |
+|Temperature discovery |<p>Scanning JUNIPER-MIB::jnxOperatingTable for Temperature</p><p>http://kb.juniper.net/InfoCenter/index?page=content&id=KB17526&actp=search. Filter limits results to Routing Engines</p> |SNMP |jnxOperatingTable.discovery.temp<p>**Filter**:</p>AND_OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `[^0]+`</p> |
+|FAN Discovery |<p>Scanning JUNIPER-MIB::jnxOperatingTable for Fans</p> |SNMP |jnxOperatingTable.discovery.fans |
+|PSU Discovery |<p>Scanning JUNIPER-MIB::jnxOperatingTable for Power Supplies</p> |SNMP |jnxOperatingTable.discovery.psu |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |{#SNMPVALUE}: CPU utilization |<p>MIB: JUNIPER-MIB</p><p>The CPU utilization in percentage of this subject. Zero if unavailable or inapplicable.</p><p>Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX%20SNMP%20Monitoring%20Guide_v1.1.pdf</p> |SNMP |system.cpu.util[jnxOperatingCPU.{#SNMPINDEX}] |
+|Fans |{#SNMPVALUE}: Fan status |<p>MIB: JUNIPER-MIB</p> |SNMP |sensor.fan.status[jnxOperatingState.4.{#SNMPINDEX}] |
+|Inventory |Hardware serial number |<p>MIB: JUNIPER-MIB</p><p>The serial number of this subject, blank if unknown or unavailable.</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware model name |<p>MIB: JUNIPER-MIB</p><p>The name, model, or detailed description of the box,indicating which product the box is about, for example 'M40'.</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Operating system |<p>MIB: SNMPv2-MIB</p> |SNMP |system.sw.os[sysDescr.0]<p>**Preprocessing**:</p><p>- REGEX: `kernel (JUNOS [0-9a-zA-Z\.\-]+) \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |{#SNMPVALUE}: Memory utilization |<p>MIB: JUNIPER-MIB</p><p>The buffer pool utilization in percentage of this subject. Zero if unavailable or inapplicable.</p><p>Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX%20SNMP%20Monitoring%20Guide_v1.1.pdf</p> |SNMP |vm.memory.util[jnxOperatingBuffer.{#SNMPINDEX}] |
+|Power_supply |{#SNMPVALUE}: Power supply status |<p>MIB: JUNIPER-MIB</p><p>If they are using DC power supplies there is a known issue on PR 1064039 where the fans do not detect the temperature correctly and fail to cool the power supply causing the shutdown to occur.</p><p>This is fixed in Junos 13.3R7 https://forums.juniper.net/t5/Routing/PEM-0-not-OK-MX104/m-p/289644#M14122</p> |SNMP |sensor.psu.status[jnxOperatingState.2.{#SNMPINDEX}] |
+|Status |Overall system health status |<p>MIB: JUNIPER-ALARM-MIB</p><p>The red alarm indication on the craft interface panel.</p><p>The red alarm is on when there is some system</p><p>failure or power supply failure or the system</p><p>is experiencing a hardware malfunction or some</p><p>threshold is being exceeded.</p><p>This red alarm state could be turned off by the</p><p>ACO/LT (Alarm Cut Off / Lamp Test) button on the</p><p>front panel module.</p> |SNMP |system.status[jnxRedAlarmState.0] |
+|Temperature |{#SENSOR_INFO}: Temperature |<p>MIB: JUNIPER-MIB</p><p>The temperature in Celsius (degrees C) of {#SENSOR_INFO}</p> |SNMP |sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[jnxOperatingCPU.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|{#SNMPVALUE}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[jnxOperatingState.4.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[sysDescr.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[sysDescr.0].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[jnxOperatingBuffer.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|{#SNMPVALUE}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[jnxOperatingState.2.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|System status is in critical state |<p>Please check the device for errors</p> |`{TEMPLATE_NAME:system.status[jnxRedAlarmState.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1` |HIGH | |
+|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/juniper_snmpv2/template_net_juniper_snmpv2.xml b/templates/net/juniper_snmp/template_net_juniper_snmp.xml
index dea9ab6faf1..ba5a699278f 100644
--- a/templates/net/juniper_snmpv2/template_net_juniper_snmpv2.xml
+++ b/templates/net/juniper_snmp/template_net_juniper_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:10Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net Juniper SNMPv2</template>
- <name>Template Net Juniper SNMPv2</name>
+ <template>Template Net Juniper SNMP</template>
+ <name>Template Net Juniper SNMP</name>
<description>Template Net Juniper&#13;
&#13;
MIBs used:&#13;
@@ -18,16 +18,16 @@ JUNIPER-ALARM-MIB&#13;
JUNIPER-MIB&#13;
SNMPv2-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -61,8 +61,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2636.3.1.2.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -86,8 +85,7 @@ The name, model, or detailed description of the box,indicating which product the
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2636.3.1.3.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -120,8 +118,7 @@ The serial number of this subject, blank if unknown or unavailable.</description
</item>
<item>
<name>Overall system health status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2636.3.4.2.3.1.0</snmp_oid>
<key>system.status[jnxRedAlarmState.0]</key>
<delay>30s</delay>
@@ -157,8 +154,7 @@ front panel module.</description>
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
<key>system.sw.os[sysDescr.0]</key>
<delay>1h</delay>
@@ -198,8 +194,7 @@ front panel module.</description>
<discovery_rules>
<discovery_rule>
<name>CPU and Memory Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2636.3.1.13.1.5]</snmp_oid>
<key>jnxOperatingTable.discovery</key>
<delay>1h</delay>
@@ -218,8 +213,7 @@ http://kb.juniper.net/InfoCenter/index?page=content&amp;id=KB17526&amp;actp=sear
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2636.3.1.13.1.8.{#SNMPINDEX}</snmp_oid>
<key>system.cpu.util[jnxOperatingCPU.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -245,8 +239,7 @@ Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX
</item_prototype>
<item_prototype>
<name>{#SNMPVALUE}: Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2636.3.1.13.1.11.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.util[jnxOperatingBuffer.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -280,7 +273,7 @@ Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Juniper SNMPv2</host>
+ <host>Template Net Juniper SNMP</host>
<key>system.cpu.util[jnxOperatingCPU.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -295,7 +288,7 @@ Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Juniper SNMPv2</host>
+ <host>Template Net Juniper SNMP</host>
<key>vm.memory.util[jnxOperatingBuffer.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -305,8 +298,7 @@ Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX
</discovery_rule>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2636.3.1.13.1.5.4]</snmp_oid>
<key>jnxOperatingTable.discovery.fans</key>
<delay>1h</delay>
@@ -314,8 +306,7 @@ Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2636.3.1.13.1.6.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[jnxOperatingState.4.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -344,8 +335,7 @@ Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2636.3.1.13.1.5.2]</snmp_oid>
<key>jnxOperatingTable.discovery.psu</key>
<delay>1h</delay>
@@ -353,8 +343,7 @@ Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2636.3.1.13.1.6.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[jnxOperatingState.2.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -385,8 +374,7 @@ This is fixed in Junos 13.3R7 https://forums.juniper.net/t5/Routing/PEM-0-not-OK
</discovery_rule>
<discovery_rule>
<name>Temperature discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2636.3.1.13.1.7,{#SENSOR_INFO},1.3.6.1.4.1.2636.3.1.13.1.5]</snmp_oid>
<key>jnxOperatingTable.discovery.temp</key>
<delay>1h</delay>
@@ -405,8 +393,7 @@ http://kb.juniper.net/InfoCenter/index?page=content&amp;id=KB17526&amp;actp=sear
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2636.3.1.13.1.7.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -431,8 +418,8 @@ The temperature in Celsius (degrees C) of {#SENSOR_INFO}</description>
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Juniper SNMPv2:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Juniper SNMPv2:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Juniper SNMP:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Juniper SNMP:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
diff --git a/templates/net/juniper_snmpv2/README.md b/templates/net/juniper_snmpv2/README.md
deleted file mode 100644
index d2679640101..00000000000
--- a/templates/net/juniper_snmpv2/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-
-# Template Net Juniper SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`6`|
-|{$HEALTH_CRIT_STATUS}|<p>-</p>|`3`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`6`|
-|{$TEMP_CRIT:"Routing Engine"}|<p>-</p>|`80`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN:"Routing Engine"}|<p>-</p>|`70`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|CPU and Memory Discovery|<p>Scanning JUNIPER-MIB::jnxOperatingTable for CPU and Memory</p><p>http://kb.juniper.net/InfoCenter/index?page=content&id=KB17526&actp=search. Filter limits results to Routing Engines</p>|SNMP|jnxOperatingTable.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `Routing Engine.*`</p>|
-|Temperature discovery|<p>Scanning JUNIPER-MIB::jnxOperatingTable for Temperature</p><p>http://kb.juniper.net/InfoCenter/index?page=content&id=KB17526&actp=search. Filter limits results to Routing Engines</p>|SNMP|jnxOperatingTable.discovery.temp<p>**Filter**:</p>AND_OR <p>- A: {#SNMPVALUE} MATCHES_REGEX `[^0]+`</p>|
-|FAN Discovery|<p>Scanning JUNIPER-MIB::jnxOperatingTable for Fans</p>|SNMP|jnxOperatingTable.discovery.fans|
-|PSU Discovery|<p>Scanning JUNIPER-MIB::jnxOperatingTable for Power Supplies</p>|SNMP|jnxOperatingTable.discovery.psu|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|{#SNMPVALUE}: CPU utilization|<p>MIB: JUNIPER-MIB</p><p>The CPU utilization in percentage of this subject. Zero if unavailable or inapplicable.</p><p>Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX%20SNMP%20Monitoring%20Guide_v1.1.pdf</p>|SNMP|system.cpu.util[jnxOperatingCPU.{#SNMPINDEX}]|
-|Fans|{#SNMPVALUE}: Fan status|<p>MIB: JUNIPER-MIB</p>|SNMP|sensor.fan.status[jnxOperatingState.4.{#SNMPINDEX}]|
-|Inventory|Hardware serial number|<p>MIB: JUNIPER-MIB</p><p>The serial number of this subject, blank if unknown or unavailable.</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware model name|<p>MIB: JUNIPER-MIB</p><p>The name, model, or detailed description of the box,indicating which product the box is about, for example 'M40'.</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Operating system|<p>MIB: SNMPv2-MIB</p>|SNMP|system.sw.os[sysDescr.0]<p>**Preprocessing**:</p><p>- REGEX: `kernel (JUNOS [0-9a-zA-Z\.\-]+) \1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|{#SNMPVALUE}: Memory utilization|<p>MIB: JUNIPER-MIB</p><p>The buffer pool utilization in percentage of this subject. Zero if unavailable or inapplicable.</p><p>Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX%20SNMP%20Monitoring%20Guide_v1.1.pdf</p>|SNMP|vm.memory.util[jnxOperatingBuffer.{#SNMPINDEX}]|
-|Power_supply|{#SNMPVALUE}: Power supply status|<p>MIB: JUNIPER-MIB</p><p>If they are using DC power supplies there is a known issue on PR 1064039 where the fans do not detect the temperature correctly and fail to cool the power supply causing the shutdown to occur.</p><p>This is fixed in Junos 13.3R7 https://forums.juniper.net/t5/Routing/PEM-0-not-OK-MX104/m-p/289644#M14122</p>|SNMP|sensor.psu.status[jnxOperatingState.2.{#SNMPINDEX}]|
-|Status|Overall system health status|<p>MIB: JUNIPER-ALARM-MIB</p><p>The red alarm indication on the craft interface panel.</p><p>The red alarm is on when there is some system</p><p>failure or power supply failure or the system</p><p>is experiencing a hardware malfunction or some</p><p>threshold is being exceeded.</p><p>This red alarm state could be turned off by the</p><p>ACO/LT (Alarm Cut Off / Lamp Test) button on the</p><p>front panel module.</p>|SNMP|system.status[jnxRedAlarmState.0]|
-|Temperature|{#SENSOR_INFO}: Temperature|<p>MIB: JUNIPER-MIB</p><p>The temperature in Celsius (degrees C) of {#SENSOR_INFO}</p>|SNMP|sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[jnxOperatingCPU.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|{#SNMPVALUE}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[jnxOperatingState.4.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[sysDescr.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[sysDescr.0].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[jnxOperatingBuffer.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|{#SNMPVALUE}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[jnxOperatingState.2.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|System status is in critical state|<p>Please check the device for errors</p>|`{TEMPLATE_NAME:system.status[jnxRedAlarmState.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1`|HIGH||
-|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/mellanox_snmp/README.md b/templates/net/mellanox_snmp/README.md
new file mode 100644
index 00000000000..fb89d17bcaa
--- /dev/null
+++ b/templates/net/mellanox_snmp/README.md
@@ -0,0 +1,68 @@
+
+# Template Net Mellanox SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$FAN_CRIT_STATUS} |<p>-</p> |`3` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`2` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN_STATUS} |<p>-</p> |`3` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+|Template Module HOST-RESOURCES-MIB SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with celsius filter</p> |SNMP |temp.discovery<p>**Filter**:</p>AND <p>- B: {#SENSOR_TYPE} MATCHES_REGEX `8`</p><p>- B: {#SENSOR_PRECISION} MATCHES_REGEX `1`</p> |
+|Fan Discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with rpm filter</p> |SNMP |fan.discovery<p>**Filter**:</p>OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `10`</p> |
+|Entity Discovery |<p>-</p> |SNMP |entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p> |
+|PSU Discovery |<p>-</p> |SNMP |psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `6`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Fans |{#SENSOR_INFO}: Fan speed |<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p> |SNMP |sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}] |
+|Fans |{#SENSOR_INFO}: Fan status |<p>MIB: ENTITY-SENSORS-MIB</p><p>The operational status of the sensor {#SENSOR_INFO}</p> |SNMP |sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}] |
+|Inventory |{#ENT_NAME}: Hardware model name |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.model[entPhysicalModelName.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#ENT_NAME}: Hardware serial number |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Power_supply |{#ENT_NAME}: Power supply status |<p>MIB: ENTITY-STATE-MIB</p> |SNMP |sensor.psu.status[entStateOper.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_INFO}: Temperature |<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p> |SNMP |sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p> |
+|Temperature |{#SENSOR_INFO}: Temperature status |<p>MIB: ENTITY-SENSORS-MIB</p><p>The operational status of the sensor {#SENSOR_INFO}</p> |SNMP |sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#SENSOR_INFO}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#ENT_NAME}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[entStateOper.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Mellanox SNMP:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/mellanox_snmpv2/template_net_mellanox_snmpv2.xml b/templates/net/mellanox_snmp/template_net_mellanox_snmp.xml
index eb175dfba92..650f3024399 100644
--- a/templates/net/mellanox_snmpv2/template_net_mellanox_snmpv2.xml
+++ b/templates/net/mellanox_snmp/template_net_mellanox_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:15Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net Mellanox SNMPv2</template>
- <name>Template Net Mellanox SNMPv2</name>
+ <template>Template Net Mellanox SNMP</template>
+ <name>Template Net Mellanox SNMP</name>
<description>Template Net Mellanox&#13;
&#13;
MIBs used:&#13;
@@ -18,16 +18,16 @@ ENTITY-SENSORS-MIB&#13;
ENTITY-STATE-MIB&#13;
ENTITY-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module HOST-RESOURCES-MIB SNMPv2</name>
+ <name>Template Module HOST-RESOURCES-MIB SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -52,8 +52,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Entity Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>entity.discovery</key>
<delay>1h</delay>
@@ -70,8 +69,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.13.{#SNMPINDEX}</snmp_oid>
<key>system.hw.model[entPhysicalModelName.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -93,8 +91,7 @@ Template tooling version used: 0.34</description>
</item_prototype>
<item_prototype>
<name>{#ENT_NAME}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.11.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -127,8 +124,7 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>Fan Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.99.1.1.1.1,{#SENSOR_INFO},1.3.6.1.2.1.47.1.1.1.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -146,8 +142,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Fan speed</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}]</key>
<units>rpm</units>
@@ -163,8 +158,7 @@ entPhySensorScale, and entPhySensorPrecision objects must also be examined.</des
</item_prototype>
<item_prototype>
<name>{#SENSOR_INFO}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -194,8 +188,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -212,8 +205,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
<item_prototypes>
<item_prototype>
<name>{#ENT_NAME}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.131.1.1.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[entStateOper.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -242,8 +234,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_TYPE},1.3.6.1.2.1.99.1.1.1.1,{#SENSOR_INFO},1.3.6.1.2.1.47.1.1.1.1.2,{#SENSOR_PRECISION},1.3.6.1.2.1.99.1.1.1.3]</snmp_oid>
<key>temp.discovery</key>
<delay>1h</delay>
@@ -266,8 +257,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -286,8 +276,7 @@ The operational status of the sensor {#SENSOR_INFO}</description>
</item_prototype>
<item_prototype>
<name>{#SENSOR_INFO}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.99.1.1.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -331,11 +320,11 @@ entPhySensorScale, and entPhySensorPrecision objects must also be examined.</des
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Net Mellanox SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
+ <expression>{Template Net Mellanox SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
or&#13;
-{Template Net Mellanox SNMPv2:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
+{Template Net Mellanox SNMP:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Net Mellanox SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
+ <recovery_expression>{Template Net Mellanox SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
<name>{#SENSOR_INFO}: Temperature is above warning threshold: &gt;{$TEMP_WARN:""}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
@@ -343,8 +332,8 @@ or&#13;
<dependencies>
<dependency>
<name>{#SENSOR_INFO}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Mellanox SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net Mellanox SNMPv2:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net Mellanox SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net Mellanox SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
diff --git a/templates/net/mellanox_snmpv2/README.md b/templates/net/mellanox_snmpv2/README.md
deleted file mode 100644
index 2f050ecbc12..00000000000
--- a/templates/net/mellanox_snmpv2/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-
-# Template Net Mellanox SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`3`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`2`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN_STATUS}|<p>-</p>|`3`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-|Template Module HOST-RESOURCES-MIB SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with celsius filter</p>|SNMP|temp.discovery<p>**Filter**:</p>AND <p>- B: {#SENSOR_TYPE} MATCHES_REGEX `8`</p><p>- B: {#SENSOR_PRECISION} MATCHES_REGEX `1`</p>|
-|Fan Discovery|<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with rpm filter</p>|SNMP|fan.discovery<p>**Filter**:</p>OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `10`</p>|
-|Entity Discovery|<p>-</p>|SNMP|entity.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `3`</p>|
-|PSU Discovery|<p>-</p>|SNMP|psu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#ENT_CLASS} MATCHES_REGEX `6`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|{#SENSOR_INFO}: Fan speed|<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p>|SNMP|sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}]|
-|Fans|{#SENSOR_INFO}: Fan status|<p>MIB: ENTITY-SENSORS-MIB</p><p>The operational status of the sensor {#SENSOR_INFO}</p>|SNMP|sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}]|
-|Inventory|{#ENT_NAME}: Hardware model name|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.model[entPhysicalModelName.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#ENT_NAME}: Hardware serial number|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Power_supply|{#ENT_NAME}: Power supply status|<p>MIB: ENTITY-STATE-MIB</p>|SNMP|sensor.psu.status[entStateOper.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_INFO}: Temperature|<p>MIB: ENTITY-SENSORS-MIB</p><p>The most recent measurement obtained by the agent for this sensor.</p><p>To correctly interpret the value of this object, the associated entPhySensorType,</p><p>entPhySensorScale, and entPhySensorPrecision objects must also be examined.</p>|SNMP|sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p>|
-|Temperature|{#SENSOR_INFO}: Temperature status|<p>MIB: ENTITY-SENSORS-MIB</p><p>The operational status of the sensor {#SENSOR_INFO}</p>|SNMP|sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#SENSOR_INFO}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#ENT_NAME}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#ENT_NAME}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[entStateOper.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Mellanox SNMPv2:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/mikrotik_snmp/README.md b/templates/net/mikrotik_snmp/README.md
new file mode 100644
index 00000000000..831e247bf7a
--- /dev/null
+++ b/templates/net/mikrotik_snmp/README.md
@@ -0,0 +1,93 @@
+
+# Template Net Mikrotik SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$TEMP_CRIT:"CPU"} |<p>-</p> |`75` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN:"CPU"} |<p>-</p> |`70` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+|{$VFS.FS.PUSED.MAX.CRIT} |<p>-</p> |`90` |
+|{$VFS.FS.PUSED.MAX.WARN} |<p>-</p> |`80` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|CPU discovery |<p>HOST-RESOURCES-MIB::hrProcessorTable discovery</p> |SNMP |hrProcessorLoad.discovery |
+|Temperature CPU discovery |<p>MIKROTIK-MIB::mtxrHlProcessorTemperature</p><p>Since temperature of CPU is not available on all Mikrotik hardware, this is done to avoid unsupported items.</p> |SNMP |mtxrHlProcessorTemperature.discovery |
+|Storage discovery |<p>HOST-RESOURCES-MIB::hrStorage discovery with storage filter</p> |SNMP |storage.discovery<p>**Filter**:</p>OR <p>- B: {#STORAGE_TYPE} MATCHES_REGEX `.+4$`</p><p>- A: {#STORAGE_TYPE} MATCHES_REGEX `.+hrStorageFixedDisk`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |#{#SNMPINDEX}: CPU utilization |<p>MIB: HOST-RESOURCES-MIB</p><p>The average, over the last minute, of the percentage of time that this processor was not idle. Implementations may approximate this one minute smoothing period if necessary.</p> |SNMP |system.cpu.util[hrProcessorLoad.{#SNMPINDEX}] |
+|Inventory |Operating system |<p>MIB: MIKROTIK-MIB</p><p>Software version</p> |SNMP |system.sw.os[mtxrLicVersion.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware model name |<p>-</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: MIKROTIK-MIB</p><p>RouterBOARD serial number</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: MIKROTIK-MIB</p><p>Current firmware version</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |Used memory |<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p> |SNMP |vm.memory.used[hrStorageUsed.Memory]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Total memory |<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in</p><p>units of hrStorageAllocationUnits. This object is</p><p>writable to allow remote configuration of the size of</p><p>the storage area in those cases where such an</p><p>operation makes sense and is possible on the</p><p>underlying system. For example, the amount of main</p><p>memory allocated to a buffer pool might be modified or</p><p>the amount of disk space allocated to virtual memory</p><p>might be modified.</p> |SNMP |vm.memory.total[hrStorageSize.Memory]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[memoryUsedPercentage.Memory]<p>**Expression**:</p>`last("vm.memory.used[hrStorageUsed.Memory]")/last("vm.memory.total[hrStorageSize.Memory]")*100` |
+|Storage |Disk-{#SNMPINDEX}: Used space |<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p> |SNMP |vfs.fs.used[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Storage |Disk-{#SNMPINDEX}: Total space |<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in</p><p>units of hrStorageAllocationUnits. This object is</p><p>writable to allow remote configuration of the size of</p><p>the storage area in those cases where such an</p><p>operation makes sense and is possible on the</p><p>underlying system. For example, the amount of main</p><p>memory allocated to a buffer pool might be modified or</p><p>the amount of disk space allocated to virtual memory</p><p>might be modified.</p> |SNMP |vfs.fs.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Storage |Disk-{#SNMPINDEX}: Space utilization |<p>Space utilization in % for Disk-{#SNMPINDEX}</p> |CALCULATED |vfs.fs.pused[hrStorageSize.{#SNMPINDEX}]<p>**Expression**:</p>`(last("vfs.fs.used[hrStorageSize.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100` |
+|Temperature |Device: Temperature |<p>MIB: MIKROTIK-MIB</p><p>(mtxrHlTemperature) Device temperature in Celsius (degrees C). Might be missing in entry models (RB750, RB450G..)</p><p>Reference: http://wiki.mikrotik.com/wiki/Manual:SNMP</p> |SNMP |sensor.temp.value[mtxrHlTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p> |
+|Temperature |CPU: Temperature |<p>MIB: MIKROTIK-MIB</p><p>(mtxrHlProcessorTemperature) Processor temperature in Celsius (degrees C). Might be missing in entry models (RB750, RB450G..)</p> |SNMP |sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[hrProcessorLoad.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[mtxrLicVersion.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[mtxrLicVersion.0].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage.Memory].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|Disk-{#SNMPINDEX}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%) |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 5G.</p><p> - The disk will be full in less than 24 hours.</p> |`{TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and (({Template Net Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<5G or {TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d)` |AVERAGE |<p>Manual close: YES</p> |
+|Disk-{#SNMPINDEX}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"}%) |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 10G.</p><p> - The disk will be full in less than 24 hours.</p> |`{TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"} and (({Template Net Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<10G or {TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d)` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Disk-{#SNMPINDEX}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)</p> |
+|Device: Temperature is above warning threshold: >{$TEMP_WARN:"Device"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].avg(5m)}>{$TEMP_WARN:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].max(5m)}<{$TEMP_WARN:"Device"}-3` |WARNING |<p>**Depends on**:</p><p>- Device: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}</p> |
+|Device: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].avg(5m)}>{$TEMP_CRIT:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].max(5m)}<{$TEMP_CRIT:"Device"}-3` |HIGH | |
+|Device: Temperature is too low: <{$TEMP_CRIT_LOW:"Device"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].avg(5m)}<{$TEMP_CRIT_LOW:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].min(5m)}>{$TEMP_CRIT_LOW:"Device"}+3` |AVERAGE | |
+|CPU: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3` |WARNING |<p>**Depends on**:</p><p>- CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p> |
+|CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3` |HIGH | |
+|CPU: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: Doesn't have ifHighSpeed filled. fixed in more recent versions
+ - Version: RouterOS 6.28 or lower
+
+- Description: Doesn't have any temperature sensors
+ - Version: RouterOS 6.38.5
+ - Device: Mikrotik 941-2nD, Mikrotik 951G-2HnD
+
diff --git a/templates/net/mikrotik_snmpv2/template_net_mikrotik_snmpv2.xml b/templates/net/mikrotik_snmp/template_net_mikrotik_snmp.xml
index 45058646386..0c98243d696 100644
--- a/templates/net/mikrotik_snmpv2/template_net_mikrotik_snmpv2.xml
+++ b/templates/net/mikrotik_snmp/template_net_mikrotik_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:14Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net Mikrotik SNMPv2</template>
- <name>Template Net Mikrotik SNMPv2</name>
+ <template>Template Net Mikrotik SNMP</template>
+ <name>Template Net Mikrotik SNMP</name>
<description>Template Net Mikrotik&#13;
&#13;
MIBs used:&#13;
@@ -26,13 +26,13 @@ Known Issues:&#13;
Version: RouterOS 6.38.5&#13;
Device: Mikrotik 941-2nD, Mikrotik 951G-2HnD&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -60,8 +60,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Device: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.14988.1.1.3.10.0</snmp_oid>
<key>sensor.temp.value[mtxrHlTemperature]</key>
<delay>3m</delay>
@@ -93,8 +92,8 @@ Reference: http://wiki.mikrotik.com/wiki/Manual:SNMP</description>
<dependencies>
<dependency>
<name>Device: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Device"}</name>
- <expression>{Template Net Mikrotik SNMPv2:sensor.temp.value[mtxrHlTemperature].avg(5m)}&gt;{$TEMP_CRIT:"Device"}</expression>
- <recovery_expression>{Template Net Mikrotik SNMPv2:sensor.temp.value[mtxrHlTemperature].max(5m)}&lt;{$TEMP_CRIT:"Device"}-3</recovery_expression>
+ <expression>{Template Net Mikrotik SNMP:sensor.temp.value[mtxrHlTemperature].avg(5m)}&gt;{$TEMP_CRIT:"Device"}</expression>
+ <recovery_expression>{Template Net Mikrotik SNMP:sensor.temp.value[mtxrHlTemperature].max(5m)}&lt;{$TEMP_CRIT:"Device"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger>
@@ -119,8 +118,7 @@ Reference: http://wiki.mikrotik.com/wiki/Manual:SNMP</description>
</item>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.14988.1.1.7.4.0</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -153,8 +151,7 @@ Current firmware version</description>
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.1.1.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -176,8 +173,7 @@ Current firmware version</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.14988.1.1.7.3.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -210,8 +206,7 @@ RouterBOARD serial number</description>
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.14988.1.1.4.4.0</snmp_oid>
<key>system.sw.os[mtxrLicVersion.0]</key>
<delay>1h</delay>
@@ -245,8 +240,7 @@ Software version</description>
</item>
<item>
<name>Total memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.5.65536</snmp_oid>
<key>vm.memory.total[hrStorageSize.Memory]</key>
<history>7d</history>
@@ -275,8 +269,7 @@ might be modified.</description>
</item>
<item>
<name>Used memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.6.65536</snmp_oid>
<key>vm.memory.used[hrStorageUsed.Memory]</key>
<history>7d</history>
@@ -322,8 +315,7 @@ The amount of the storage represented by this entry that is allocated, in units
<discovery_rules>
<discovery_rule>
<name>CPU discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.25.3.3.1.1]</snmp_oid>
<key>hrProcessorLoad.discovery</key>
<delay>1h</delay>
@@ -331,8 +323,7 @@ The amount of the storage represented by this entry that is allocated, in units
<item_prototypes>
<item_prototype>
<name>#{#SNMPINDEX}: CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.3.3.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.cpu.util[hrProcessorLoad.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -366,7 +357,7 @@ The average, over the last minute, of the percentage of time that this processor
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Mikrotik SNMPv2</host>
+ <host>Template Net Mikrotik SNMP</host>
<key>system.cpu.util[hrProcessorLoad.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -376,8 +367,7 @@ The average, over the last minute, of the percentage of time that this processor
</discovery_rule>
<discovery_rule>
<name>Temperature CPU discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.14988.1.1.3.11]</snmp_oid>
<key>mtxrHlProcessorTemperature.discovery</key>
<delay>1h</delay>
@@ -386,8 +376,7 @@ Since temperature of CPU is not available on all Mikrotik hardware, this is done
<item_prototypes>
<item_prototype>
<name>CPU: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.14988.1.1.3.11.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -418,8 +407,8 @@ Since temperature of CPU is not available on all Mikrotik hardware, this is done
<dependencies>
<dependency>
<name>CPU: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"CPU"}</name>
- <expression>{Template Net Mikrotik SNMPv2:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
- <recovery_expression>{Template Net Mikrotik SNMPv2:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
+ <expression>{Template Net Mikrotik SNMP:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
+ <recovery_expression>{Template Net Mikrotik SNMP:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -446,8 +435,7 @@ Since temperature of CPU is not available on all Mikrotik hardware, this is done
</discovery_rule>
<discovery_rule>
<name>Storage discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.25.2.3.1.3,{#ALLOC_UNITS},1.3.6.1.2.1.25.2.3.1.4,{#STORAGE_TYPE},1.3.6.1.2.1.25.2.3.1.2]</snmp_oid>
<key>storage.discovery</key>
<delay>1h</delay>
@@ -485,8 +473,7 @@ Since temperature of CPU is not available on all Mikrotik hardware, this is done
</item_prototype>
<item_prototype>
<name>Disk-{#SNMPINDEX}: Total space</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.5.{#SNMPINDEX}</snmp_oid>
<key>vfs.fs.total[hrStorageSize.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -515,8 +502,7 @@ might be modified.</description>
</item_prototype>
<item_prototype>
<name>Disk-{#SNMPINDEX}: Used space</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.6.{#SNMPINDEX}</snmp_oid>
<key>vfs.fs.used[hrStorageSize.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -538,8 +524,8 @@ The amount of the storage represented by this entry that is allocated, in units
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Net Mikrotik SNMPv2:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and&#13;
-(({Template Net Mikrotik SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMPv2:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})&lt;5G or {Template Net Mikrotik SNMPv2:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Net Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and&#13;
+(({Template Net Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})&lt;5G or {Template Net Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
<name>Disk-{#SNMPINDEX}: Disk space is critically low (used &gt; {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)</name>
<opdata>Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})</opdata>
<priority>AVERAGE</priority>
@@ -550,8 +536,8 @@ The amount of the storage represented by this entry that is allocated, in units
<manual_close>YES</manual_close>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Net Mikrotik SNMPv2:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"} and&#13;
-(({Template Net Mikrotik SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMPv2:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})&lt;10G or {Template Net Mikrotik SNMPv2:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Net Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"} and&#13;
+(({Template Net Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})&lt;10G or {Template Net Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
<name>Disk-{#SNMPINDEX}: Disk space is low (used &gt; {$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"}%)</name>
<opdata>Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})</opdata>
<priority>WARNING</priority>
@@ -563,8 +549,8 @@ The amount of the storage represented by this entry that is allocated, in units
<dependencies>
<dependency>
<name>Disk-{#SNMPINDEX}: Disk space is critically low (used &gt; {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)</name>
- <expression>{Template Net Mikrotik SNMPv2:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and&#13;
-(({Template Net Mikrotik SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMPv2:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})&lt;5G or {Template Net Mikrotik SNMPv2:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Net Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and&#13;
+(({Template Net Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})&lt;5G or {Template Net Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -582,7 +568,7 @@ The amount of the storage represented by this entry that is allocated, in units
<calc_fnc>LAST</calc_fnc>
<type>GRAPH_SUM</type>
<item>
- <host>Template Net Mikrotik SNMPv2</host>
+ <host>Template Net Mikrotik SNMP</host>
<key>vfs.fs.total[hrStorageSize.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -591,7 +577,7 @@ The amount of the storage represented by this entry that is allocated, in units
<color>C80000</color>
<calc_fnc>LAST</calc_fnc>
<item>
- <host>Template Net Mikrotik SNMPv2</host>
+ <host>Template Net Mikrotik SNMP</host>
<key>vfs.fs.used[hrStorageSize.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -650,7 +636,7 @@ The amount of the storage represented by this entry that is allocated, in units
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Mikrotik SNMPv2</host>
+ <host>Template Net Mikrotik SNMP</host>
<key>vm.memory.util[memoryUsedPercentage.Memory]</key>
</item>
</graph_item>
diff --git a/templates/net/mikrotik_snmpv2/README.md b/templates/net/mikrotik_snmpv2/README.md
deleted file mode 100644
index 774394fbc42..00000000000
--- a/templates/net/mikrotik_snmpv2/README.md
+++ /dev/null
@@ -1,93 +0,0 @@
-
-# Template Net Mikrotik SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$TEMP_CRIT:"CPU"}|<p>-</p>|`75`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN:"CPU"}|<p>-</p>|`70`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-|{$VFS.FS.PUSED.MAX.CRIT}|<p>-</p>|`90`|
-|{$VFS.FS.PUSED.MAX.WARN}|<p>-</p>|`80`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|CPU discovery|<p>HOST-RESOURCES-MIB::hrProcessorTable discovery</p>|SNMP|hrProcessorLoad.discovery|
-|Temperature CPU discovery|<p>MIKROTIK-MIB::mtxrHlProcessorTemperature</p><p>Since temperature of CPU is not available on all Mikrotik hardware, this is done to avoid unsupported items.</p>|SNMP|mtxrHlProcessorTemperature.discovery|
-|Storage discovery|<p>HOST-RESOURCES-MIB::hrStorage discovery with storage filter</p>|SNMP|storage.discovery<p>**Filter**:</p>OR <p>- B: {#STORAGE_TYPE} MATCHES_REGEX `.+4$`</p><p>- A: {#STORAGE_TYPE} MATCHES_REGEX `.+hrStorageFixedDisk`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|#{#SNMPINDEX}: CPU utilization|<p>MIB: HOST-RESOURCES-MIB</p><p>The average, over the last minute, of the percentage of time that this processor was not idle. Implementations may approximate this one minute smoothing period if necessary.</p>|SNMP|system.cpu.util[hrProcessorLoad.{#SNMPINDEX}]|
-|Inventory|Operating system|<p>MIB: MIKROTIK-MIB</p><p>Software version</p>|SNMP|system.sw.os[mtxrLicVersion.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware model name|<p>-</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: MIKROTIK-MIB</p><p>RouterBOARD serial number</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: MIKROTIK-MIB</p><p>Current firmware version</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|Used memory|<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p>|SNMP|vm.memory.used[hrStorageUsed.Memory]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Total memory|<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in</p><p>units of hrStorageAllocationUnits. This object is</p><p>writable to allow remote configuration of the size of</p><p>the storage area in those cases where such an</p><p>operation makes sense and is possible on the</p><p>underlying system. For example, the amount of main</p><p>memory allocated to a buffer pool might be modified or</p><p>the amount of disk space allocated to virtual memory</p><p>might be modified.</p>|SNMP|vm.memory.total[hrStorageSize.Memory]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[memoryUsedPercentage.Memory]<p>**Expression**:</p>`last("vm.memory.used[hrStorageUsed.Memory]")/last("vm.memory.total[hrStorageSize.Memory]")*100`|
-|Storage|Disk-{#SNMPINDEX}: Used space|<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p>|SNMP|vfs.fs.used[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Storage|Disk-{#SNMPINDEX}: Total space|<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in</p><p>units of hrStorageAllocationUnits. This object is</p><p>writable to allow remote configuration of the size of</p><p>the storage area in those cases where such an</p><p>operation makes sense and is possible on the</p><p>underlying system. For example, the amount of main</p><p>memory allocated to a buffer pool might be modified or</p><p>the amount of disk space allocated to virtual memory</p><p>might be modified.</p>|SNMP|vfs.fs.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Storage|Disk-{#SNMPINDEX}: Space utilization|<p>Space utilization in % for Disk-{#SNMPINDEX}</p>|CALCULATED|vfs.fs.pused[hrStorageSize.{#SNMPINDEX}]<p>**Expression**:</p>`(last("vfs.fs.used[hrStorageSize.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100`|
-|Temperature|Device: Temperature|<p>MIB: MIKROTIK-MIB</p><p>(mtxrHlTemperature) Device temperature in Celsius (degrees C). Might be missing in entry models (RB750, RB450G..)</p><p>Reference: http://wiki.mikrotik.com/wiki/Manual:SNMP</p>|SNMP|sensor.temp.value[mtxrHlTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p>|
-|Temperature|CPU: Temperature|<p>MIB: MIKROTIK-MIB</p><p>(mtxrHlProcessorTemperature) Processor temperature in Celsius (degrees C). Might be missing in entry models (RB750, RB450G..)</p>|SNMP|sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[hrProcessorLoad.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[mtxrLicVersion.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[mtxrLicVersion.0].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage.Memory].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|Disk-{#SNMPINDEX}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)|<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 5G.</p><p> - The disk will be full in less than 24 hours.</p>|`{TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and (({Template Net Mikrotik SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMPv2:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<5G or {TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d)`|AVERAGE|<p>Manual close: YES</p>|
-|Disk-{#SNMPINDEX}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"}%)|<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 10G.</p><p> - The disk will be full in less than 24 hours.</p>|`{TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"} and (({Template Net Mikrotik SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Net Mikrotik SNMPv2:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<10G or {TEMPLATE_NAME:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d)`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- Disk-{#SNMPINDEX}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)</p>|
-|Device: Temperature is above warning threshold: >{$TEMP_WARN:"Device"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].avg(5m)}>{$TEMP_WARN:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].max(5m)}<{$TEMP_WARN:"Device"}-3`|WARNING|<p>**Depends on**:</p><p>- Device: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}</p>|
-|Device: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].avg(5m)}>{$TEMP_CRIT:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].max(5m)}<{$TEMP_CRIT:"Device"}-3`|HIGH||
-|Device: Temperature is too low: <{$TEMP_CRIT_LOW:"Device"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].avg(5m)}<{$TEMP_CRIT_LOW:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlTemperature].min(5m)}>{$TEMP_CRIT_LOW:"Device"}+3`|AVERAGE||
-|CPU: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3`|WARNING|<p>**Depends on**:</p><p>- CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p>|
-|CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3`|HIGH||
-|CPU: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: Doesn't have ifHighSpeed filled. fixed in more recent versions
- - Version: RouterOS 6.28 or lower
-
-- Description: Doesn't have any temperature sensors
- - Version: RouterOS 6.38.5
- - Device: Mikrotik 941-2nD, Mikrotik 951G-2HnD
-
diff --git a/templates/net/netgear_snmp/README.md b/templates/net/netgear_snmp/README.md
new file mode 100644
index 00000000000..8344739c9d0
--- /dev/null
+++ b/templates/net/netgear_snmp/README.md
@@ -0,0 +1,83 @@
+
+# Template Net Netgear Fastpath SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+https://kb.netgear.com/24352/MIBs-for-Smart-switches
+
+This template was tested on:
+
+- Netgear M5300-28G
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS:"failed"} |<p>-</p> |`2` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS:"failed"} |<p>-</p> |`2` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT_STATUS} |<p>-</p> |`3` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN_STATUS} |<p>-</p> |`2` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsTable</p> |SNMP |temp.discovery |
+|FAN Discovery |<p>FASTPATH-BOXSERVICES-PRIVATE-MIB::1.3.6.1.4.1.4526.10.43.1.6.1.1</p> |SNMP |fan.discovery |
+|PSU Discovery |<p>FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesPowSupplyIndex</p> |SNMP |psu.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: FASTPATH-SWITCHING-MIB</p><p>CPU utilization in %</p> |SNMP |system.cpu.util[agentSwitchCpuProcessTotalUtilization.0]<p>**Preprocessing**:</p><p>- REGEX: `60 Secs \( ([0-9\.]+)%\).+300 Secs \1`</p> |
+|Fans |#{#SNMPVALUE}: Fan status |<p>MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB</p><p>The status of fan</p> |SNMP |sensor.fan.status[boxServicesFanItemState.{#SNMPINDEX}] |
+|Inventory |Operating system |<p>MIB: FASTPATH-SWITCHING-MIB</p><p>Operating System running on this unit</p> |SNMP |system.sw.os[agentInventoryOperatingSystem.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware model name |<p>MIB: FASTPATH-SWITCHING-MIB</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: FASTPATH-SWITCHING-MIB</p><p>Serial number of the switch</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |Available memory |<p>MIB: FASTPATH-SWITCHING-MIB</p><p>The total memory freed for utilization.</p> |SNMP |vm.memory.available[agentSwitchCpuProcessMemFree.0] |
+|Memory |Total memory |<p>MIB: FASTPATH-SWITCHING-MIB</p><p>The total Memory allocated for the tasks</p> |SNMP |vm.memory.total[agentSwitchCpuProcessMemAvailable.0] |
+|Memory |Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[memoryUsedPercentage.0]<p>**Expression**:</p>`(last("vm.memory.total[agentSwitchCpuProcessMemAvailable.0]")-last("vm.memory.available[agentSwitchCpuProcessMemFree.0]"))/last("vm.memory.total[agentSwitchCpuProcessMemAvailable.0]")*100` |
+|Power_supply |#{#SNMPVALUE}: Power supply status |<p>MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB</p><p>The status of power supply</p> |SNMP |sensor.psu.status[boxServicesPowSupplyItemState.{#SNMPINDEX}] |
+|Temperature |#{#SNMPVALUE}: Temperature |<p>MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB</p><p>The temperature value reported by sensor</p> |SNMP |sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}] |
+|Temperature |#{#SNMPVALUE}: Temperature status |<p>MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB</p><p>The state of temperature sensor</p> |SNMP |sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[agentSwitchCpuProcessTotalUtilization.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|#{#SNMPVALUE}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[boxServicesFanItemState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1` |AVERAGE | |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[agentInventoryOperatingSystem.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[agentInventoryOperatingSystem.0].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage.0].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|#{#SNMPVALUE}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[boxServicesPowSupplyItemState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"failed"},eq)}=1` |AVERAGE | |
+|#{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Netgear Fastpath SNMP:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- #{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|#{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} or {Template Net Netgear Fastpath SNMP:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|#{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/netgear_snmpv2/template_net_netgear_snmpv2.xml b/templates/net/netgear_snmp/template_net_netgear_snmp.xml
index b0a9b80466c..c1f2875a232 100644
--- a/templates/net/netgear_snmpv2/template_net_netgear_snmpv2.xml
+++ b/templates/net/netgear_snmp/template_net_netgear_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:22Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,21 +9,21 @@
</groups>
<templates>
<template>
- <template>Template Net Netgear Fastpath SNMPv2</template>
- <name>Template Net Netgear Fastpath SNMPv2</name>
+ <template>Template Net Netgear Fastpath SNMP</template>
+ <name>Template Net Netgear Fastpath SNMP</name>
<description>Template Net Netgear Fastpath&#13;
&#13;
MIBs used:&#13;
FASTPATH-SWITCHING-MIB&#13;
FASTPATH-BOXSERVICES-PRIVATE-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -54,8 +54,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.1.1.4.9.0</snmp_oid>
<key>system.cpu.util[agentSwitchCpuProcessTotalUtilization.0]</key>
<history>7d</history>
@@ -87,8 +86,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.1.1.1.3.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -111,8 +109,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.1.1.1.4.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -145,8 +142,7 @@ Serial number of the switch</description>
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.1.1.1.10.0</snmp_oid>
<key>system.sw.os[agentInventoryOperatingSystem.0]</key>
<delay>1h</delay>
@@ -180,8 +176,7 @@ Operating System running on this unit</description>
</item>
<item>
<name>Available memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.1.1.5.1.0</snmp_oid>
<key>vm.memory.available[agentSwitchCpuProcessMemFree.0]</key>
<history>7d</history>
@@ -196,8 +191,7 @@ The total memory freed for utilization.</description>
</item>
<item>
<name>Total memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.1.1.5.2.0</snmp_oid>
<key>vm.memory.total[agentSwitchCpuProcessMemAvailable.0]</key>
<history>7d</history>
@@ -237,8 +231,7 @@ The total Memory allocated for the tasks</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.4526.10.43.1.6.1.1]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -246,8 +239,7 @@ The total Memory allocated for the tasks</description>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.43.1.6.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[boxServicesFanItemState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -277,8 +269,7 @@ The status of fan</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.4526.10.43.1.7.1.1]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -286,8 +277,7 @@ The status of fan</description>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.43.1.7.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[boxServicesPowSupplyItemState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -317,8 +307,7 @@ The status of power supply</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.4526.10.43.1.8.1.1]</snmp_oid>
<key>temp.discovery</key>
<delay>1h</delay>
@@ -326,8 +315,7 @@ The status of power supply</description>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.43.1.8.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -346,8 +334,7 @@ The state of temperature sensor</description>
</item_prototype>
<item_prototype>
<name>#{#SNMPVALUE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.4526.10.43.1.8.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -374,22 +361,22 @@ The temperature value reported by sensor</description>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Net Netgear Fastpath SNMPv2:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
+ <expression>{Template Net Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
or&#13;
-{Template Net Netgear Fastpath SNMPv2:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}</expression>
+{Template Net Netgear Fastpath SNMP:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Net Netgear Fastpath SNMPv2:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <recovery_expression>{Template Net Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
<name>#{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
<description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Net Netgear Fastpath SNMPv2:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
+ <expression>{Template Net Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:""}&#13;
or&#13;
-{Template Net Netgear Fastpath SNMPv2:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
+{Template Net Netgear Fastpath SNMP:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Net Netgear Fastpath SNMPv2:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
+ <recovery_expression>{Template Net Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
<name>#{#SNMPVALUE}: Temperature is above warning threshold: &gt;{$TEMP_WARN:""}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
@@ -397,10 +384,10 @@ or&#13;
<dependencies>
<dependency>
<name>#{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net Netgear Fastpath SNMPv2:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
+ <expression>{Template Net Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}&#13;
or&#13;
-{Template Net Netgear Fastpath SNMPv2:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}</expression>
- <recovery_expression>{Template Net Netgear Fastpath SNMPv2:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+{Template Net Netgear Fastpath SNMP:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}</expression>
+ <recovery_expression>{Template Net Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -457,7 +444,7 @@ or&#13;
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Netgear Fastpath SNMPv2</host>
+ <host>Template Net Netgear Fastpath SNMP</host>
<key>system.cpu.util[agentSwitchCpuProcessTotalUtilization.0]</key>
</item>
</graph_item>
@@ -471,7 +458,7 @@ or&#13;
<drawtype>BOLD_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Netgear Fastpath SNMPv2</host>
+ <host>Template Net Netgear Fastpath SNMP</host>
<key>vm.memory.total[agentSwitchCpuProcessMemAvailable.0]</key>
</item>
</graph_item>
@@ -480,7 +467,7 @@ or&#13;
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Net Netgear Fastpath SNMPv2</host>
+ <host>Template Net Netgear Fastpath SNMP</host>
<key>vm.memory.available[agentSwitchCpuProcessMemFree.0]</key>
</item>
</graph_item>
@@ -495,7 +482,7 @@ or&#13;
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Netgear Fastpath SNMPv2</host>
+ <host>Template Net Netgear Fastpath SNMP</host>
<key>vm.memory.util[memoryUsedPercentage.0]</key>
</item>
</graph_item>
diff --git a/templates/net/netgear_snmpv2/README.md b/templates/net/netgear_snmpv2/README.md
deleted file mode 100644
index 289263ff4cd..00000000000
--- a/templates/net/netgear_snmpv2/README.md
+++ /dev/null
@@ -1,83 +0,0 @@
-
-# Template Net Netgear Fastpath SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-https://kb.netgear.com/24352/MIBs-for-Smart-switches
-
-This template was tested on:
-
-- Netgear M5300-28G
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS:"failed"}|<p>-</p>|`2`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS:"failed"}|<p>-</p>|`2`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT_STATUS}|<p>-</p>|`3`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN_STATUS}|<p>-</p>|`2`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsTable</p>|SNMP|temp.discovery|
-|FAN Discovery|<p>FASTPATH-BOXSERVICES-PRIVATE-MIB::1.3.6.1.4.1.4526.10.43.1.6.1.1</p>|SNMP|fan.discovery|
-|PSU Discovery|<p>FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesPowSupplyIndex</p>|SNMP|psu.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: FASTPATH-SWITCHING-MIB</p><p>CPU utilization in %</p>|SNMP|system.cpu.util[agentSwitchCpuProcessTotalUtilization.0]<p>**Preprocessing**:</p><p>- REGEX: `60 Secs \( ([0-9\.]+)%\).+300 Secs \1`</p>|
-|Fans|#{#SNMPVALUE}: Fan status|<p>MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB</p><p>The status of fan</p>|SNMP|sensor.fan.status[boxServicesFanItemState.{#SNMPINDEX}]|
-|Inventory|Operating system|<p>MIB: FASTPATH-SWITCHING-MIB</p><p>Operating System running on this unit</p>|SNMP|system.sw.os[agentInventoryOperatingSystem.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware model name|<p>MIB: FASTPATH-SWITCHING-MIB</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: FASTPATH-SWITCHING-MIB</p><p>Serial number of the switch</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|Available memory|<p>MIB: FASTPATH-SWITCHING-MIB</p><p>The total memory freed for utilization.</p>|SNMP|vm.memory.available[agentSwitchCpuProcessMemFree.0]|
-|Memory|Total memory|<p>MIB: FASTPATH-SWITCHING-MIB</p><p>The total Memory allocated for the tasks</p>|SNMP|vm.memory.total[agentSwitchCpuProcessMemAvailable.0]|
-|Memory|Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[memoryUsedPercentage.0]<p>**Expression**:</p>`(last("vm.memory.total[agentSwitchCpuProcessMemAvailable.0]")-last("vm.memory.available[agentSwitchCpuProcessMemFree.0]"))/last("vm.memory.total[agentSwitchCpuProcessMemAvailable.0]")*100`|
-|Power_supply|#{#SNMPVALUE}: Power supply status|<p>MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB</p><p>The status of power supply</p>|SNMP|sensor.psu.status[boxServicesPowSupplyItemState.{#SNMPINDEX}]|
-|Temperature|#{#SNMPVALUE}: Temperature|<p>MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB</p><p>The temperature value reported by sensor</p>|SNMP|sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}]|
-|Temperature|#{#SNMPVALUE}: Temperature status|<p>MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB</p><p>The state of temperature sensor</p>|SNMP|sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[agentSwitchCpuProcessTotalUtilization.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|#{#SNMPVALUE}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[boxServicesFanItemState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1`|AVERAGE||
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[agentInventoryOperatingSystem.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[agentInventoryOperatingSystem.0].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage.0].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|#{#SNMPVALUE}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[boxServicesPowSupplyItemState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"failed"},eq)}=1`|AVERAGE||
-|#{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} or {Template Net Netgear Fastpath SNMPv2:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- #{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|#{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} or {Template Net Netgear Fastpath SNMPv2:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|#{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/qtech_snmp/README.md b/templates/net/qtech_snmp/README.md
new file mode 100644
index 00000000000..6935cad5548
--- /dev/null
+++ b/templates/net/qtech_snmp/README.md
@@ -0,0 +1,76 @@
+
+# Template Net QTech QSW SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`1` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`1` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`75` |
+|{$TEMP_WARN} |<p>-</p> |`65` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|PSU Discovery |<p>-</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>-</p> |SNMP |fan.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: QTECH-MIB</p><p>CPU utilization in %</p> |SNMP |system.cpu.util[switchCpuUsage.0] |
+|Fans |{#SNMPINDEX}: Fan status |<p>MIB: QTECH-MIB</p> |SNMP |sensor.fan.status[sysFanStatus.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware version(revision) |<p>MIB: ENTITY-MIB</p> |SNMP |system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Operating system |<p>MIB: QTECH-MIB</p> |SNMP |system.sw.os[sysSoftwareVersion.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |Used memory |<p>MIB: QTECH-MIB</p><p>Used memory in Bytes</p> |SNMP |vm.memory.used[switchMemoryBusy.0] |
+|Memory |Total memory |<p>MIB: QTECH-MIB</p><p>Total memory in Bytes</p> |SNMP |vm.memory.total[switchMemorySize.0] |
+|Memory |Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[vm.memory.util.0]<p>**Expression**:</p>`last("vm.memory.used[switchMemoryBusy.0]")/last("vm.memory.total[switchMemorySize.0]")*100` |
+|Power_supply |{#SNMPINDEX}: Power supply status |<p>MIB: QTECH-MIB</p> |SNMP |sensor.psu.status[sysPowerStatus.{#SNMPINDEX}] |
+|Temperature |Temperature |<p>MIB: QTECH-MIB</p><p>Temperature readings of testpoint: __RESOURCE__</p> |SNMP |sensor.temp.value[switchTemperature.0] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[switchCpuUsage.0].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|{#SNMPINDEX}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[sysFanStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[sysSoftwareVersion.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[sysSoftwareVersion.0].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[vm.memory.util.0].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|{#SNMPINDEX}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[sysPowerStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/net/qtech_snmpv2/template_net_qtech_snmpv2.xml b/templates/net/qtech_snmp/template_net_qtech_snmp.xml
index 9830a25eb59..73718126cd2 100644
--- a/templates/net/qtech_snmpv2/template_net_qtech_snmpv2.xml
+++ b/templates/net/qtech_snmp/template_net_qtech_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:21Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,24 +9,24 @@
</groups>
<templates>
<template>
- <template>Template Net QTech QSW SNMPv2</template>
- <name>Template Net QTech QSW SNMPv2</name>
+ <template>Template Net QTech QSW SNMP</template>
+ <name>Template Net QTech QSW SNMP</name>
<description>Template Net QTech QSW&#13;
&#13;
MIBs used:&#13;
QTECH-MIB&#13;
ENTITY-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
</templates>
<groups>
@@ -57,8 +57,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.27514.100.1.11.9.0</snmp_oid>
<key>sensor.temp.value[switchTemperature.0]</key>
<delay>3m</delay>
@@ -83,8 +82,8 @@ Temperature readings of testpoint: __RESOURCE__</description>
<dependencies>
<dependency>
<name>Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Net QTech QSW SNMPv2:sensor.temp.value[switchTemperature.0].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Net QTech QSW SNMPv2:sensor.temp.value[switchTemperature.0].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Net QTech QSW SNMP:sensor.temp.value[switchTemperature.0].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Net QTech QSW SNMP:sensor.temp.value[switchTemperature.0].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger>
@@ -109,8 +108,7 @@ Temperature readings of testpoint: __RESOURCE__</description>
</item>
<item>
<name>CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.27514.100.1.11.10.0</snmp_oid>
<key>system.cpu.util[switchCpuUsage.0]</key>
<history>7d</history>
@@ -135,8 +133,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.9.1</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -168,8 +165,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.13.1</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -192,8 +188,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.11.1</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -225,8 +220,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.47.1.1.1.1.8.1</snmp_oid>
<key>system.hw.version</key>
<delay>1h</delay>
@@ -248,8 +242,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.27514.100.1.3.0</snmp_oid>
<key>system.sw.os[sysSoftwareVersion.0]</key>
<delay>1h</delay>
@@ -282,8 +275,7 @@ CPU utilization in %</description>
</item>
<item>
<name>Total memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.27514.100.1.11.6.0</snmp_oid>
<key>vm.memory.total[switchMemorySize.0]</key>
<history>7d</history>
@@ -298,8 +290,7 @@ Total memory in Bytes</description>
</item>
<item>
<name>Used memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.27514.100.1.11.7.0</snmp_oid>
<key>vm.memory.used[switchMemoryBusy.0]</key>
<history>7d</history>
@@ -339,16 +330,14 @@ Used memory in Bytes</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.27514.100.1.12.1.3]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SNMPINDEX}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.27514.100.1.12.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[sysFanStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -377,16 +366,14 @@ Used memory in Bytes</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.27514.100.1.7.1.5]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SNMPINDEX}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.27514.100.1.7.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[sysPowerStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -456,7 +443,7 @@ Used memory in Bytes</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net QTech QSW SNMPv2</host>
+ <host>Template Net QTech QSW SNMP</host>
<key>system.cpu.util[switchCpuUsage.0]</key>
</item>
</graph_item>
@@ -471,7 +458,7 @@ Used memory in Bytes</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net QTech QSW SNMPv2</host>
+ <host>Template Net QTech QSW SNMP</host>
<key>vm.memory.util[vm.memory.util.0]</key>
</item>
</graph_item>
diff --git a/templates/net/qtech_snmpv2/README.md b/templates/net/qtech_snmpv2/README.md
deleted file mode 100644
index fec71f8d04e..00000000000
--- a/templates/net/qtech_snmpv2/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-
-# Template Net QTech QSW SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`1`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`1`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`75`|
-|{$TEMP_WARN}|<p>-</p>|`65`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|PSU Discovery|<p>-</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>-</p>|SNMP|fan.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: QTECH-MIB</p><p>CPU utilization in %</p>|SNMP|system.cpu.util[switchCpuUsage.0]|
-|Fans|{#SNMPINDEX}: Fan status|<p>MIB: QTECH-MIB</p>|SNMP|sensor.fan.status[sysFanStatus.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware version(revision)|<p>MIB: ENTITY-MIB</p>|SNMP|system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Operating system|<p>MIB: QTECH-MIB</p>|SNMP|system.sw.os[sysSoftwareVersion.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|Used memory|<p>MIB: QTECH-MIB</p><p>Used memory in Bytes</p>|SNMP|vm.memory.used[switchMemoryBusy.0]|
-|Memory|Total memory|<p>MIB: QTECH-MIB</p><p>Total memory in Bytes</p>|SNMP|vm.memory.total[switchMemorySize.0]|
-|Memory|Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[vm.memory.util.0]<p>**Expression**:</p>`last("vm.memory.used[switchMemoryBusy.0]")/last("vm.memory.total[switchMemorySize.0]")*100`|
-|Power_supply|{#SNMPINDEX}: Power supply status|<p>MIB: QTECH-MIB</p>|SNMP|sensor.psu.status[sysPowerStatus.{#SNMPINDEX}]|
-|Temperature|Temperature|<p>MIB: QTECH-MIB</p><p>Temperature readings of testpoint: __RESOURCE__</p>|SNMP|sensor.temp.value[switchTemperature.0]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[switchCpuUsage.0].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|{#SNMPINDEX}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[sysFanStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[sysSoftwareVersion.0].diff()}=1 and {TEMPLATE_NAME:system.sw.os[sysSoftwareVersion.0].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[vm.memory.util.0].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-|{#SNMPINDEX}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[sysPowerStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[switchTemperature.0].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/net/tplink_snmp/README.md b/templates/net/tplink_snmp/README.md
new file mode 100644
index 00000000000..2bdbff648ba
--- /dev/null
+++ b/templates/net/tplink_snmp/README.md
@@ -0,0 +1,77 @@
+
+# Template Net TP-LINK SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+Link to MIBs: http://www.tp-linkru.com/download/T2600G-28TS.html#MIBs_Files
+Sample device overview page: http://www.tp-linkru.com/products/details/cat-39_T2600G-28TS.html#overview
+emulation page(web): http://www.tp-linkru.com/resources/simulator/T2600G-28TS(UN)_1.0/Index.htm
+
+This template was tested on:
+
+- T2600G-28TS revision 2.0, version 2.0.0 Build 20170628 Rel.55184(Beta)
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+|Template Module Interfaces Simple SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|CPU Discovery |<p>Discovering TPLINK-SYSMONITOR-MIB::tpSysMonitorCpuTable, displays the CPU utilization of all UNITs.</p> |SNMP |cpu.discovery |
+|Memory Discovery |<p>Discovering TPLINK-SYSMONITOR-MIB::tpSysMonitorMemoryTable, displays the memory utilization of all UNITs.</p> |SNMP |memory.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |#{#SNMPVALUE}: CPU utilization |<p>MIB: TPLINK-SYSMONITOR-MIB</p><p>Displays the CPU utilization in 1 minute.</p><p>Reference: http://www.tp-link.com/faq-1330.html</p> |SNMP |system.cpu.util[tpSysMonitorCpu1Minute.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: TPLINK-SYSINFO-MIB</p><p>The hardware version of the product.</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: TPLINK-SYSINFO-MIB</p><p>The Serial number of the product.</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: TPLINK-SYSINFO-MIB</p><p>The software version of the product.</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware version(revision) |<p>MIB: TPLINK-SYSINFO-MIB</p><p>The hardware version of the product.</p> |SNMP |system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |#{#SNMPVALUE}: Memory utilization |<p>MIB: TPLINK-SYSMONITOR-MIB</p><p>Displays the memory utilization.</p><p>Reference: http://www.tp-link.com/faq-1330.html</p> |SNMP |vm.memory.util[tpSysMonitorMemoryUtilization.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|#{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[tpSysMonitorCpu1Minute.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[tpSysMonitorMemoryUtilization.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: default sysLocation, sysName and sysContact is not filled with proper data. Real hostname and location can be found only in private branch(TPLINK-SYSINFO-MIB). Please check whether this problem exists in the latest firware: http://www.tp-linkru.com/download/T2600G-28TS.html#Firmware
+ - Version: 2.0.0 Build 20170628 Rel.55184(Beta)
+ - Device: T2600G-28TS 2.0
+
+- Description: The Serial number of the product(tpSysInfoSerialNum) is missing in HW versions prior to V2_170323
+ - Version: prior to version V2_170323
+ - Device: T2600G-28TS 2.0
+
diff --git a/templates/net/tplink_snmpv2/template_net_tplink_snmpv2.xml b/templates/net/tplink_snmp/template_net_tplink_snmp.xml
index 41e06f5bb52..3163ce221a9 100644
--- a/templates/net/tplink_snmpv2/template_net_tplink_snmpv2.xml
+++ b/templates/net/tplink_snmp/template_net_tplink_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:29:13Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net TP-LINK SNMPv2</template>
- <name>Template Net TP-LINK SNMPv2</name>
+ <template>Template Net TP-LINK SNMP</template>
+ <name>Template Net TP-LINK SNMP</name>
<description>Template Net TP-LINK JetStream&#13;
&#13;
MIBs used:&#13;
@@ -27,13 +27,13 @@ Known Issues:&#13;
Version: prior to version V2_170323&#13;
Device: T2600G-28TS 2.0&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces Simple SNMPv2</name>
+ <name>Template Module Interfaces Simple SNMP</name>
</template>
</templates>
<groups>
@@ -55,8 +55,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11863.6.1.1.6.0</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -89,8 +88,7 @@ The software version of the product.</description>
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11863.6.1.1.5.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -114,8 +112,7 @@ The hardware version of the product.</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11863.6.1.1.8.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -148,8 +145,7 @@ The Serial number of the product.</description>
</item>
<item>
<name>Hardware version(revision)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11863.6.1.1.5.0</snmp_oid>
<key>system.hw.version</key>
<delay>1h</delay>
@@ -174,8 +170,7 @@ The hardware version of the product.</description>
<discovery_rules>
<discovery_rule>
<name>CPU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.11863.6.4.1.1.1.1.1]</snmp_oid>
<key>cpu.discovery</key>
<delay>1h</delay>
@@ -183,8 +178,7 @@ The hardware version of the product.</description>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: CPU utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11863.6.4.1.1.1.1.3.{#SNMPINDEX}</snmp_oid>
<key>system.cpu.util[tpSysMonitorCpu1Minute.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -219,7 +213,7 @@ Reference: http://www.tp-link.com/faq-1330.html</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net TP-LINK SNMPv2</host>
+ <host>Template Net TP-LINK SNMP</host>
<key>system.cpu.util[tpSysMonitorCpu1Minute.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -229,8 +223,7 @@ Reference: http://www.tp-link.com/faq-1330.html</description>
</discovery_rule>
<discovery_rule>
<name>Memory Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.11863.6.4.1.2.1.1.1]</snmp_oid>
<key>memory.discovery</key>
<delay>1h</delay>
@@ -238,8 +231,7 @@ Reference: http://www.tp-link.com/faq-1330.html</description>
<item_prototypes>
<item_prototype>
<name>#{#SNMPVALUE}: Memory utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.11863.6.4.1.2.1.1.2.{#SNMPINDEX}</snmp_oid>
<key>vm.memory.util[tpSysMonitorMemoryUtilization.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -273,7 +265,7 @@ Reference: http://www.tp-link.com/faq-1330.html</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net TP-LINK SNMPv2</host>
+ <host>Template Net TP-LINK SNMP</host>
<key>vm.memory.util[tpSysMonitorMemoryUtilization.{#SNMPINDEX}]</key>
</item>
</graph_item>
diff --git a/templates/net/tplink_snmpv2/README.md b/templates/net/tplink_snmpv2/README.md
deleted file mode 100644
index c4e9b9b7e1c..00000000000
--- a/templates/net/tplink_snmpv2/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# Template Net TP-LINK SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-Link to MIBs: http://www.tp-linkru.com/download/T2600G-28TS.html#MIBs_Files
-Sample device overview page: http://www.tp-linkru.com/products/details/cat-39_T2600G-28TS.html#overview
-emulation page(web): http://www.tp-linkru.com/resources/simulator/T2600G-28TS(UN)_1.0/Index.htm
-
-This template was tested on:
-
-- T2600G-28TS revision 2.0, version 2.0.0 Build 20170628 Rel.55184(Beta)
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces Simple SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|CPU Discovery|<p>Discovering TPLINK-SYSMONITOR-MIB::tpSysMonitorCpuTable, displays the CPU utilization of all UNITs.</p>|SNMP|cpu.discovery|
-|Memory Discovery|<p>Discovering TPLINK-SYSMONITOR-MIB::tpSysMonitorMemoryTable, displays the memory utilization of all UNITs.</p>|SNMP|memory.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|#{#SNMPVALUE}: CPU utilization|<p>MIB: TPLINK-SYSMONITOR-MIB</p><p>Displays the CPU utilization in 1 minute.</p><p>Reference: http://www.tp-link.com/faq-1330.html</p>|SNMP|system.cpu.util[tpSysMonitorCpu1Minute.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: TPLINK-SYSINFO-MIB</p><p>The hardware version of the product.</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: TPLINK-SYSINFO-MIB</p><p>The Serial number of the product.</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: TPLINK-SYSINFO-MIB</p><p>The software version of the product.</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware version(revision)|<p>MIB: TPLINK-SYSINFO-MIB</p><p>The hardware version of the product.</p>|SNMP|system.hw.version<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|#{#SNMPVALUE}: Memory utilization|<p>MIB: TPLINK-SYSMONITOR-MIB</p><p>Displays the memory utilization.</p><p>Reference: http://www.tp-link.com/faq-1330.html</p>|SNMP|vm.memory.util[tpSysMonitorMemoryUtilization.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|#{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[tpSysMonitorCpu1Minute.{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[tpSysMonitorMemoryUtilization.{#SNMPINDEX}].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: default sysLocation, sysName and sysContact is not filled with proper data. Real hostname and location can be found only in private branch(TPLINK-SYSINFO-MIB). Please check whether this problem exists in the latest firware: http://www.tp-linkru.com/download/T2600G-28TS.html#Firmware
- - Version: 2.0.0 Build 20170628 Rel.55184(Beta)
- - Device: T2600G-28TS 2.0
-
-- Description: The Serial number of the product(tpSysInfoSerialNum) is missing in HW versions prior to V2_170323
- - Version: prior to version V2_170323
- - Device: T2600G-28TS 2.0
-
diff --git a/templates/net/ubiquiti_airos_snmp/README.md b/templates/net/ubiquiti_airos_snmp/README.md
new file mode 100644
index 00000000000..d00e40c43dc
--- /dev/null
+++ b/templates/net/ubiquiti_airos_snmp/README.md
@@ -0,0 +1,75 @@
+
+# Template Net Ubiquiti AirOS SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+|Template Module Interfaces Simple SNMP |
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |CPU utilization |<p>MIB: FROGFOOT-RESOURCES-MIB</p><p>5 minute load average of processor load.</p> |SNMP |system.cpu.util[loadValue.2] |
+|Inventory |Hardware model name |<p>MIB: IEEE802dot11-MIB</p><p>A printable string used to identify the manufacturer's product name of the resource. Maximum string length is 128 octets.</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: IEEE802dot11-MIB</p><p>Printable string used to identify the manufacturer's product version of the resource. Maximum string length is 128 octets.</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Memory |Free memory |<p>MIB: FROGFOOT-RESOURCES-MIB</p> |SNMP |vm.memory.free[memFree.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Total memory |<p>MIB: FROGFOOT-RESOURCES-MIB</p><p>Total memory in Bytes</p> |SNMP |vm.memory.total[memTotal.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Memory (buffers) |<p>MIB: FROGFOOT-RESOURCES-MIB</p><p>Memory used by kernel buffers (Buffers in /proc/meminfo)</p> |SNMP |vm.memory.buffers[memBuffer.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Memory (cached) |<p>MIB: FROGFOOT-RESOURCES-MIB</p><p>Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)</p> |SNMP |vm.memory.cached[memCache.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Memory utilization |<p>Memory utilization in %</p> |CALCULATED |vm.memory.util[memoryUsedPercentage]<p>**Expression**:</p>`(last("vm.memory.total[memTotal.0]")-(last("vm.memory.free[memFree.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCache.0]")))/last("vm.memory.total[memTotal.0]")*100` |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[loadValue.2].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: UBNT unifi reports speed: like IF-MIB::ifSpeed.1 = Gauge32: 4294967295 for all interfaces
+ - Version: Firmware: BZ.ar7240.v3.7.51.6230.170322.1513
+ - Device: UBNT UAP-LR
+
+- Description: UBNT AirMax(NanoStation, NanoBridge etc) reports ifSpeed: as 0 for VLAN and wireless(ath0) interfaces
+ - Version: Firmware: XW.ar934x.v5.6-beta4.22359.140521.1836
+ - Device: NanoStation M5
+
+- Description: UBNT AirMax(NanoStation, NanoBridge etc) reports always return ifType: as ethernet(6) even for wifi,vlans and other types
+ - Version: Firmware: XW.ar934x.v5.6-beta4.22359.140521.1836
+ - Device: NanoStation M5
+
+- Description: ifXTable is not provided in IF-MIB. So Interfaces Simple Template is used instead
+ - Version: all above
+ - Device: NanoStation, UAP-LR
+
diff --git a/templates/net/ubiquiti_airos_snmpv1/template_net_ubiquiti_airos_snmpv1.xml b/templates/net/ubiquiti_airos_snmp/template_net_ubiquiti_airos_snmp.xml
index 1b132874e5e..2df99bce373 100644
--- a/templates/net/ubiquiti_airos_snmpv1/template_net_ubiquiti_airos_snmpv1.xml
+++ b/templates/net/ubiquiti_airos_snmp/template_net_ubiquiti_airos_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:30:19Z</date>
<groups>
<group>
<name>Templates/Network devices</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Net Ubiquiti AirOS SNMPv1</template>
- <name>Template Net Ubiquiti AirOS SNMPv1</name>
+ <template>Template Net Ubiquiti AirOS SNMP</template>
+ <name>Template Net Ubiquiti AirOS SNMP</name>
<description>Template Net Ubiquiti AirOS&#13;
&#13;
MIBs used:&#13;
@@ -35,13 +35,13 @@ Known Issues:&#13;
Version: all above&#13;
Device: NanoStation, UAP-LR&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv1</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces Simple SNMPv1</name>
+ <name>Template Module Interfaces Simple SNMP</name>
</template>
</templates>
<groups>
@@ -63,8 +63,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>CPU utilization</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10002.1.1.1.4.2.1.3.2</snmp_oid>
<key>system.cpu.util[loadValue.2]</key>
<history>7d</history>
@@ -89,8 +88,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Firmware version</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.2.840.10036.3.1.2.1.4.5</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -123,8 +121,7 @@ Printable string used to identify the manufacturer's product version of the reso
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.2.840.10036.3.1.2.1.3.5</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -148,8 +145,7 @@ A printable string used to identify the manufacturer's product name of the resou
</item>
<item>
<name>Memory (buffers)</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10002.1.1.1.1.3.0</snmp_oid>
<key>vm.memory.buffers[memBuffer.0]</key>
<history>7d</history>
@@ -170,8 +166,7 @@ Memory used by kernel buffers (Buffers in /proc/meminfo)</description>
</item>
<item>
<name>Memory (cached)</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10002.1.1.1.1.4.0</snmp_oid>
<key>vm.memory.cached[memCache.0]</key>
<history>7d</history>
@@ -192,8 +187,7 @@ Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)</desc
</item>
<item>
<name>Free memory</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10002.1.1.1.1.2.0</snmp_oid>
<key>vm.memory.free[memFree.0]</key>
<history>7d</history>
@@ -213,8 +207,7 @@ Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)</desc
</item>
<item>
<name>Total memory</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.10002.1.1.1.1.1.0</snmp_oid>
<key>vm.memory.total[memTotal.0]</key>
<history>7d</history>
@@ -279,7 +272,7 @@ Total memory in Bytes</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Ubiquiti AirOS SNMPv1</host>
+ <host>Template Net Ubiquiti AirOS SNMP</host>
<key>system.cpu.util[loadValue.2]</key>
</item>
</graph_item>
@@ -294,7 +287,7 @@ Total memory in Bytes</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Net Ubiquiti AirOS SNMPv1</host>
+ <host>Template Net Ubiquiti AirOS SNMP</host>
<key>vm.memory.util[memoryUsedPercentage]</key>
</item>
</graph_item>
diff --git a/templates/net/ubiquiti_airos_snmpv1/README.md b/templates/net/ubiquiti_airos_snmpv1/README.md
deleted file mode 100644
index 400e45d7f85..00000000000
--- a/templates/net/ubiquiti_airos_snmpv1/README.md
+++ /dev/null
@@ -1,75 +0,0 @@
-
-# Template Net Ubiquiti AirOS SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv1|
-|Template Module Interfaces Simple SNMPv1|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|CPU utilization|<p>MIB: FROGFOOT-RESOURCES-MIB</p><p>5 minute load average of processor load.</p>|SNMP|system.cpu.util[loadValue.2]|
-|Inventory|Hardware model name|<p>MIB: IEEE802dot11-MIB</p><p>A printable string used to identify the manufacturer's product name of the resource. Maximum string length is 128 octets.</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: IEEE802dot11-MIB</p><p>Printable string used to identify the manufacturer's product version of the resource. Maximum string length is 128 octets.</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Memory|Free memory|<p>MIB: FROGFOOT-RESOURCES-MIB</p>|SNMP|vm.memory.free[memFree.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Total memory|<p>MIB: FROGFOOT-RESOURCES-MIB</p><p>Total memory in Bytes</p>|SNMP|vm.memory.total[memTotal.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Memory (buffers)|<p>MIB: FROGFOOT-RESOURCES-MIB</p><p>Memory used by kernel buffers (Buffers in /proc/meminfo)</p>|SNMP|vm.memory.buffers[memBuffer.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Memory (cached)|<p>MIB: FROGFOOT-RESOURCES-MIB</p><p>Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)</p>|SNMP|vm.memory.cached[memCache.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Memory utilization|<p>Memory utilization in %</p>|CALCULATED|vm.memory.util[memoryUsedPercentage]<p>**Expression**:</p>`(last("vm.memory.total[memTotal.0]")-(last("vm.memory.free[memFree.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCache.0]")))/last("vm.memory.total[memTotal.0]")*100`|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[loadValue.2].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[memoryUsedPercentage].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: UBNT unifi reports speed: like IF-MIB::ifSpeed.1 = Gauge32: 4294967295 for all interfaces
- - Version: Firmware: BZ.ar7240.v3.7.51.6230.170322.1513
- - Device: UBNT UAP-LR
-
-- Description: UBNT AirMax(NanoStation, NanoBridge etc) reports ifSpeed: as 0 for VLAN and wireless(ath0) interfaces
- - Version: Firmware: XW.ar934x.v5.6-beta4.22359.140521.1836
- - Device: NanoStation M5
-
-- Description: UBNT AirMax(NanoStation, NanoBridge etc) reports always return ifType: as ethernet(6) even for wifi,vlans and other types
- - Version: Firmware: XW.ar934x.v5.6-beta4.22359.140521.1836
- - Device: NanoStation M5
-
-- Description: ifXTable is not provided in IF-MIB. So Interfaces Simple Template is used instead
- - Version: all above
- - Device: NanoStation, UAP-LR
-
diff --git a/templates/os/linux_snmp_snmp/README.md b/templates/os/linux_snmp_snmp/README.md
new file mode 100644
index 00000000000..9afa6d6013b
--- /dev/null
+++ b/templates/os/linux_snmp_snmp/README.md
@@ -0,0 +1,292 @@
+
+# Template Module Linux memory SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$MEMORY.AVAILABLE.MIN} |<p>-</p> |`20M` |
+|{$MEMORY.UTIL.MAX} |<p>-</p> |`90` |
+|{$SWAP.PFREE.MIN.WARN} |<p>-</p> |`50` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Memory |Memory utilization |<p>Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.</p> |CALCULATED |vm.memory.util[snmp]<p>**Expression**:</p>`(last("vm.memory.total[memTotalReal.0]")-(last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]")))/last("vm.memory.total[memTotalReal.0]")*100` |
+|Memory |Free memory |<p>MIB: UCD-SNMP-MIB</p> |SNMP |vm.memory.free[memAvailReal.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Memory (buffers) |<p>MIB: UCD-SNMP-MIB</p><p>Memory used by kernel buffers (Buffers in /proc/meminfo)</p> |SNMP |vm.memory.buffers[memBuffer.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Memory (cached) |<p>MIB: UCD-SNMP-MIB</p><p>Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)</p> |SNMP |vm.memory.cached[memCached.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Total memory |<p>MIB: UCD-SNMP-MIB</p><p>Total memory in Bytes</p> |SNMP |vm.memory.total[memTotalReal.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Available memory |<p>Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.</p> |CALCULATED |vm.memory.available[snmp]<p>**Expression**:</p>`last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]")` |
+|Memory |Total swap space |<p>MIB: UCD-SNMP-MIB</p><p>The total amount of swap space configured for this host.</p> |SNMP |system.swap.total[memTotalSwap.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Free swap space |<p>MIB: UCD-SNMP-MIB</p><p>The amount of swap space currently unused or available.</p> |SNMP |system.swap.free[memAvailSwap.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p> |
+|Memory |Free swap space in % |<p>The free space of swap volume/file in percent.</p> |CALCULATED |system.swap.pfree[snmp]<p>**Expression**:</p>`last("system.swap.free[memAvailSwap.0]")/last("system.swap.total[memTotalSwap.0]")*100` |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m) |<p>The system is running out of free memory.</p> |`{TEMPLATE_NAME:vm.memory.util[snmp].min(5m)}>{$MEMORY.UTIL.MAX}` |AVERAGE |<p>**Depends on**:</p><p>- Lack of available memory ( < {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</p> |
+|Lack of available memory ( < {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |<p>-</p> |`{TEMPLATE_NAME:vm.memory.available[snmp].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory SNMP:vm.memory.total[memTotalReal.0].last()}>0` |AVERAGE | |
+|High swap space usage ( less than {$SWAP.PFREE.MIN.WARN}% free) |<p>This trigger is ignored, if there is no swap configured</p> |`{TEMPLATE_NAME:system.swap.pfree[snmp].min(5m)}<{$SWAP.PFREE.MIN.WARN} and {Template Module Linux memory SNMP:system.swap.total[memTotalSwap.0].last()}>0` |WARNING |<p>**Depends on**:</p><p>- High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)</p><p>- Lack of available memory ( < {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.
+
+# Template Module Linux block devices SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$VFS.DEV.DEVNAME.MATCHES} |<p>This macro is used in block devices discovery. Can be overridden on the host or linked template level</p> |`.+` |
+|{$VFS.DEV.DEVNAME.NOT_MATCHES} |<p>This macro is used in block devices discovery. Can be overridden on the host or linked template level</p> |`^(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]*)` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Block devices discovery |<p>Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable)</p> |SNMP |vfs.dev.discovery[snmp]<p>**Filter**:</p>AND <p>- A: {#DEVNAME} MATCHES_REGEX `{$VFS.DEV.DEVNAME.MATCHES}`</p><p>- B: {#DEVNAME} NOT_MATCHES_REGEX `{$VFS.DEV.DEVNAME.NOT_MATCHES}`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Storage |{#DEVNAME}: Disk read rate |<p>MIB: UCD-DISKIO-MIB</p><p>The number of read accesses from this device since boot.</p> |SNMP |vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Storage |{#DEVNAME}: Disk write rate |<p>MIB: UCD-DISKIO-MIB</p><p>The number of write accesses from this device since boot.</p> |SNMP |vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|Storage |{#DEVNAME}: Disk utilization |<p>MIB: UCD-DISKIO-MIB</p><p>The 1 minute average load of disk (%)</p> |SNMP |vfs.dev.util[diskIOLA1.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module Linux CPU SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$CPU.UTIL.CRIT} |<p>-</p> |`90` |
+|{$LOAD_AVG_PER_CPU.MAX.WARN} |<p>Load per CPU considered sustainable. Tune if needed.</p> |`1.5` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|CPU discovery |<p>This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used.</p> |DEPENDENT |cpu.discovery[snmp]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `//count the number of CPU cores return JSON.stringify([{"{#CPU.COUNT}": value, "{#SNMPINDEX}": 0, "{#SINGLETON}":""}]) `</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|CPU |Load average (1m avg) |<p>MIB: UCD-SNMP-MIB</p> |SNMP |system.cpu.load.avg1[laLoad.1] |
+|CPU |Load average (5m avg) |<p>MIB: UCD-SNMP-MIB</p> |SNMP |system.cpu.load.avg5[laLoad.2] |
+|CPU |Load average (15m avg) |<p>MIB: UCD-SNMP-MIB</p> |SNMP |system.cpu.load.avg15[laLoad.3] |
+|CPU |Number of CPUs |<p>MIB: HOST-RESOURCES-MIB</p><p>Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD</p> |SNMP |system.cpu.num[snmp]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `//count the number of cores return JSON.parse(value).length; `</p> |
+|CPU |Interrupts per second |<p>-</p> |SNMP |system.cpu.intr[ssRawInterrupts.0]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|CPU |Context switches per second |<p>-</p> |SNMP |system.cpu.switches[ssRawContexts.0]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND |
+|CPU |CPU idle time |<p>MIB: UCD-SNMP-MIB</p><p>The time the CPU has spent doing nothing.</p> |SNMP |system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU system time |<p>MIB: UCD-SNMP-MIB</p><p>The time the CPU has spent running the kernel and its processes.</p> |SNMP |system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU user time |<p>MIB: UCD-SNMP-MIB</p><p>The time the CPU has spent running users' processes that are not niced.</p> |SNMP |system.cpu.user[ssCpuRawUser.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU steal time |<p>MIB: UCD-SNMP-MIB</p><p>The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine).</p> |SNMP |system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU softirq time |<p>MIB: UCD-SNMP-MIB</p><p>The amount of time the CPU has been servicing software interrupts.</p> |SNMP |system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU nice time |<p>MIB: UCD-SNMP-MIB</p><p>The time the CPU has spent running users' processes that have been niced.</p> |SNMP |system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU iowait time |<p>MIB: UCD-SNMP-MIB</p><p>Amount of time the CPU has been waiting for I/O to complete.</p> |SNMP |system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU interrupt time |<p>MIB: UCD-SNMP-MIB</p><p>The amount of time the CPU has been servicing hardware interrupts.</p> |SNMP |system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU guest time |<p>MIB: UCD-SNMP-MIB</p><p>Guest time (time spent running a virtual CPU for a guest operating system)</p> |SNMP |system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU guest nice time |<p>MIB: UCD-SNMP-MIB</p><p>Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel)</p> |SNMP |system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p> |
+|CPU |CPU utilization |<p>CPU utilization in %</p> |DEPENDENT |system.cpu.util[snmp,{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `//Calculate utilization return (100 - value) `</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) |<p>Per CPU load average is too high. Your system may be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.load.avg1[laLoad.1].min(5m)}/{Template Module Linux CPU SNMP:system.cpu.num[snmp].last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} and {Template Module Linux CPU SNMP:system.cpu.load.avg5[laLoad.2].last()}>0 and {Template Module Linux CPU SNMP:system.cpu.load.avg15[laLoad.3].last()}>0` |AVERAGE | |
+|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |<p>CPU utilization is too high. The system might be slow to respond.</p> |`{TEMPLATE_NAME:system.cpu.util[snmp,{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}` |WARNING | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template Module Linux filesystems SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+
+## Zabbix configuration
+
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$VFS.FS.FSNAME.MATCHES} |<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</p> |`.+` |
+|{$VFS.FS.FSNAME.NOT_MATCHES} |<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</p> |`^(/dev|/sys|/run|/proc|.+/shm$)` |
+|{$VFS.FS.FSTYPE.MATCHES} |<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</p> |`.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$` |
+|{$VFS.FS.FSTYPE.NOT_MATCHES} |<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</p> |`^\s$` |
+|{$VFS.FS.INODE.PFREE.MIN.CRIT} |<p>-</p> |`10` |
+|{$VFS.FS.INODE.PFREE.MIN.WARN} |<p>-</p> |`20` |
+|{$VFS.FS.PUSED.MAX.CRIT} |<p>-</p> |`90` |
+|{$VFS.FS.PUSED.MAX.WARN} |<p>-</p> |`80` |
+
+## Template links
+
+There are no template links in this template.
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Mounted filesystem discovery |<p>HOST-RESOURCES-MIB::hrStorage discovery with storage filter</p> |SNMP |vfs.fs.discovery[snmp]<p>**Filter**:</p>AND <p>- A: {#FSTYPE} MATCHES_REGEX `{$VFS.FS.FSTYPE.MATCHES}`</p><p>- B: {#FSTYPE} NOT_MATCHES_REGEX `{$VFS.FS.FSTYPE.NOT_MATCHES}`</p><p>- C: {#FSNAME} MATCHES_REGEX `{$VFS.FS.FSNAME.MATCHES}`</p><p>- D: {#FSNAME} NOT_MATCHES_REGEX `{$VFS.FS.FSNAME.NOT_MATCHES}`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Storage |{#FSNAME}: Used space |<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p> |SNMP |vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p> |
+|Storage |{#FSNAME}: Total space |<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in units of hrStorageAllocationUnits.</p><p>This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.</p><p>For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified.</p> |SNMP |vfs.fs.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p> |
+|Storage |{#FSNAME}: Space utilization |<p>Space utilization in % for {#FSNAME}</p> |CALCULATED |vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}]<p>**Expression**:</p>`(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100` |
+|Storage |{#FSNAME}: Free inodes in % |<p>MIB: UCD-SNMP-MIB</p><p>If having problems collecting this item make sure access to UCD-SNMP-MIB is allowed.</p> |SNMP |vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `return (100-value);`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 5G.</p><p> - The disk will be full in less than 24 hours.</p> |`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({Template Module Linux filesystems SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)` |AVERAGE |<p>Manual close: YES</p> |
+|{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 10G.</p><p> - The disk will be full in less than 24 hours.</p> |`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({Template Module Linux filesystems SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<10G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</p> |
+|{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |<p>It may become impossible to write to disk if there are no index nodes left.</p><p>As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available.</p> |`{TEMPLATE_NAME:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}` |AVERAGE | |
+|{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) |<p>It may become impossible to write to disk if there are no index nodes left.</p><p>As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available.</p> |`{TEMPLATE_NAME:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}` |WARNING |<p>**Depends on**:</p><p>- {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+# Template OS Linux SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+
+## Setup
+
+Install snmpd agent on Linux OS, enable SNMPv2.
+
+Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since,
+by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
+
+```text
+rocommunity public default -V systemonly
+```
+
+Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation:
+http://www.net-snmp.org/wiki/index.php/Vacm
+
+You can also try to use `snmpconf`:
+
+http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration
+
+Change {$SNMP_COMMUNITY} on the host level in Zabbix.
+
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+
+## Template links
+
+|Name|
+|----|
+|Template Module EtherLike-MIB SNMP |
+|Template Module Generic SNMP |
+|Template Module Interfaces SNMP |
+|Template Module Linux CPU SNMP |
+|Template Module Linux block devices SNMP |
+|Template Module Linux filesystems SNMP |
+|Template Module Linux memory SNMP |
+
+## Discovery rules
+
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+You can also provide a feedback, discuss the template or ask for help with it at [ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux).
+
+
+## References
+
+https://docs.fedoraproject.org/en-US/Fedora/26/html/System_Administrators_Guide/sect-System_Monitoring_Tools-Net-SNMP-Retrieving.html
diff --git a/templates/os/linux_snmp_snmpv2/template_os_linux_snmp_snmpv2.xml b/templates/os/linux_snmp_snmp/template_os_linux_snmp_snmp.xml
index 4e584595332..93e8fe5ea9a 100644
--- a/templates/os/linux_snmp_snmpv2/template_os_linux_snmp_snmpv2.xml
+++ b/templates/os/linux_snmp_snmp/template_os_linux_snmp_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:30:22Z</date>
<groups>
<group>
<name>Templates/Modules</name>
@@ -12,12 +12,12 @@
</groups>
<templates>
<template>
- <template>Template Module Linux block devices SNMPv2</template>
- <name>Template Module Linux block devices SNMPv2</name>
+ <template>Template Module Linux block devices SNMP</template>
+ <name>Template Module Linux block devices SNMP</name>
<description>MIBs used:&#13;
UCD-DISKIO-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -31,8 +31,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Block devices discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#DEVNAME},1.3.6.1.4.1.2021.13.15.1.1.2]</snmp_oid>
<key>vfs.dev.discovery[snmp]</key>
<delay>1h</delay>
@@ -56,8 +55,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#DEVNAME}: Disk read rate</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.13.15.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -79,8 +77,7 @@ The number of read accesses from this device since boot.</description>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk utilization</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.13.15.1.1.9.{#SNMPINDEX}</snmp_oid>
<key>vfs.dev.util[diskIOLA1.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -96,8 +93,7 @@ The 1 minute average load of disk (%)</description>
</item_prototype>
<item_prototype>
<name>{#DEVNAME}: Disk write rate</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.13.15.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -125,7 +121,7 @@ The number of write accesses from this device since boot.</description>
<graph_item>
<color>1A7C11</color>
<item>
- <host>Template Module Linux block devices SNMPv2</host>
+ <host>Template Module Linux block devices SNMP</host>
<key>vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -134,7 +130,7 @@ The number of write accesses from this device since boot.</description>
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Module Linux block devices SNMPv2</host>
+ <host>Template Module Linux block devices SNMP</host>
<key>vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -157,13 +153,13 @@ The number of write accesses from this device since boot.</description>
</macros>
</template>
<template>
- <template>Template Module Linux CPU SNMPv2</template>
- <name>Template Module Linux CPU SNMPv2</name>
+ <template>Template Module Linux CPU SNMP</template>
+ <name>Template Module Linux CPU SNMP</name>
<description>MIBs used:&#13;
HOST-RESOURCES-MIB&#13;
UCD-SNMP-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -177,8 +173,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Interrupts per second</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.59.0</snmp_oid>
<key>system.cpu.intr[ssRawInterrupts.0]</key>
<history>7d</history>
@@ -197,8 +192,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Load average (1m avg)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.10.1.3["index","1.3.6.1.4.1.2021.10.1.2", "Load-1"]</snmp_oid>
<key>system.cpu.load.avg1[laLoad.1]</key>
<history>7d</history>
@@ -212,8 +206,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Load average (15m avg)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.10.1.3["index","1.3.6.1.4.1.2021.10.1.2", "Load-15"]</snmp_oid>
<key>system.cpu.load.avg15[laLoad.3]</key>
<history>7d</history>
@@ -227,8 +220,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Load average (5m avg)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.10.1.3["index","1.3.6.1.4.1.2021.10.1.2", "Load-5"]</snmp_oid>
<key>system.cpu.load.avg5[laLoad.2]</key>
<history>7d</history>
@@ -242,8 +234,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Number of CPUs</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.2.1.25.3.3.1.1]</snmp_oid>
<key>system.cpu.num[snmp]</key>
<history>7d</history>
@@ -265,8 +256,7 @@ return JSON.parse(value).length;
</item>
<item>
<name>Context switches per second</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.60.0</snmp_oid>
<key>system.cpu.switches[ssRawContexts.0]</key>
<history>7d</history>
@@ -294,8 +284,7 @@ return JSON.parse(value).length;
<item_prototypes>
<item_prototype>
<name>CPU guest nice time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.66.0</snmp_oid>
<key>system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -323,8 +312,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU guest time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.65.0</snmp_oid>
<key>system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -352,8 +340,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU idle time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.53.0</snmp_oid>
<key>system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -381,8 +368,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU interrupt time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.56.0</snmp_oid>
<key>system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -410,8 +396,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU iowait time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.54.0</snmp_oid>
<key>system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -439,8 +424,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU nice time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.51.0</snmp_oid>
<key>system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -468,8 +452,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU softirq time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.61.0</snmp_oid>
<key>system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -497,8 +480,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU steal time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.64.0</snmp_oid>
<key>system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -526,8 +508,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU system time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.52.0</snmp_oid>
<key>system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -555,8 +536,7 @@ return value/{#CPU.COUNT}
</item_prototype>
<item_prototype>
<name>CPU user time</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.11.50.0</snmp_oid>
<key>system.cpu.user[ssCpuRawUser.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -628,7 +608,7 @@ return (100 - value)
<graph_item>
<color>1A7C11</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -636,7 +616,7 @@ return (100 - value)
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.user[ssCpuRawUser.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -644,7 +624,7 @@ return (100 - value)
<sortorder>2</sortorder>
<color>F63100</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -652,7 +632,7 @@ return (100 - value)
<sortorder>3</sortorder>
<color>A54F10</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -660,7 +640,7 @@ return (100 - value)
<sortorder>4</sortorder>
<color>FC6EA3</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -668,7 +648,7 @@ return (100 - value)
<sortorder>5</sortorder>
<color>6C59DC</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -676,7 +656,7 @@ return (100 - value)
<sortorder>6</sortorder>
<color>AC8C14</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -684,7 +664,7 @@ return (100 - value)
<sortorder>7</sortorder>
<color>611F27</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -692,7 +672,7 @@ return (100 - value)
<sortorder>8</sortorder>
<color>F230E0</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -707,7 +687,7 @@ return (100 - value)
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.util[snmp,{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -740,13 +720,13 @@ return JSON.stringify([{"{#CPU.COUNT}": value, "{#SNMPINDEX}": 0, "{#SINGLETON}"
</macros>
</template>
<template>
- <template>Template Module Linux filesystems SNMPv2</template>
- <name>Template Module Linux filesystems SNMPv2</name>
+ <template>Template Module Linux filesystems SNMP</template>
+ <name>Template Module Linux filesystems SNMP</name>
<description>MIBs used:&#13;
HOST-RESOURCES-MIB&#13;
UCD-SNMP-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -760,8 +740,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Mounted filesystem discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#FSNAME},1.3.6.1.2.1.25.2.3.1.3,{#FSTYPE},1.3.6.1.2.1.25.2.3.1.2,{#ALLOC_UNITS},1.3.6.1.2.1.25.2.3.1.4]</snmp_oid>
<key>vfs.fs.discovery[snmp]</key>
<delay>1h</delay>
@@ -796,8 +775,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#FSNAME}: Free inodes in %</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.9.1.10["index","1.3.6.1.4.1.2021.9.1.2", "{#FSNAME}"]</snmp_oid>
<key>vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -835,7 +813,7 @@ As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even
<dependencies>
<dependency>
<name>{#FSNAME}: Running out of free inodes (free &lt; {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)</name>
- <expression>{Template Module Linux filesystems SNMPv2:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}&lt;{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}</expression>
+ <expression>{Template Module Linux filesystems SNMP:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}&lt;{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -858,8 +836,7 @@ As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even
</item_prototype>
<item_prototype>
<name>{#FSNAME}: Total space</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.5.{#SNMPINDEX}</snmp_oid>
<key>vfs.fs.total[hrStorageSize.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -882,8 +859,7 @@ For example, the amount of main storage allocated to a buffer pool might be modi
</item_prototype>
<item_prototype>
<name>{#FSNAME}: Used space</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.2.1.25.2.3.1.6.{#SNMPINDEX}</snmp_oid>
<key>vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]</key>
<history>7d</history>
@@ -905,8 +881,8 @@ The amount of the storage represented by this entry that is allocated, in units
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Module Linux filesystems SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
-(({Template Module Linux filesystems SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module Linux filesystems SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Module Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
+(({Template Module Linux filesystems SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
<name>{#FSNAME}: Disk space is critically low (used &gt; {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</name>
<opdata>Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})</opdata>
<priority>AVERAGE</priority>
@@ -917,8 +893,8 @@ The amount of the storage represented by this entry that is allocated, in units
<manual_close>YES</manual_close>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Module Linux filesystems SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and&#13;
-(({Template Module Linux filesystems SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;10G or {Template Module Linux filesystems SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Module Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and&#13;
+(({Template Module Linux filesystems SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;10G or {Template Module Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
<name>{#FSNAME}: Disk space is low (used &gt; {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)</name>
<opdata>Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})</opdata>
<priority>WARNING</priority>
@@ -930,8 +906,8 @@ The amount of the storage represented by this entry that is allocated, in units
<dependencies>
<dependency>
<name>{#FSNAME}: Disk space is critically low (used &gt; {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</name>
- <expression>{Template Module Linux filesystems SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
-(({Template Module Linux filesystems SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module Linux filesystems SNMPv2:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
+ <expression>{Template Module Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}&gt;{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and&#13;
+(({Template Module Linux filesystems SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})&lt;5G or {Template Module Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}&lt;1d)</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -949,7 +925,7 @@ The amount of the storage represented by this entry that is allocated, in units
<calc_fnc>LAST</calc_fnc>
<type>GRAPH_SUM</type>
<item>
- <host>Template Module Linux filesystems SNMPv2</host>
+ <host>Template Module Linux filesystems SNMP</host>
<key>vfs.fs.total[hrStorageSize.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -958,7 +934,7 @@ The amount of the storage represented by this entry that is allocated, in units
<color>C80000</color>
<calc_fnc>LAST</calc_fnc>
<item>
- <host>Template Module Linux filesystems SNMPv2</host>
+ <host>Template Module Linux filesystems SNMP</host>
<key>vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]</key>
</item>
</graph_item>
@@ -1007,8 +983,8 @@ The amount of the storage represented by this entry that is allocated, in units
</macros>
</template>
<template>
- <template>Template Module Linux memory SNMPv2</template>
- <name>Template Module Linux memory SNMPv2</name>
+ <template>Template Module Linux memory SNMP</template>
+ <name>Template Module Linux memory SNMP</name>
<description>MIBs used:&#13;
UCD-SNMP-MIB&#13;
&#13;
@@ -1016,7 +992,7 @@ Known Issues:&#13;
&#13;
Description: Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<groups>
<group>
<name>Templates/Modules</name>
@@ -1030,8 +1006,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Free swap space</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.4.4.0</snmp_oid>
<key>system.swap.free[memAvailSwap.0]</key>
<history>7d</history>
@@ -1067,8 +1042,7 @@ The amount of swap space currently unused or available.</description>
</item>
<item>
<name>Total swap space</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.4.3.0</snmp_oid>
<key>system.swap.total[memTotalSwap.0]</key>
<history>7d</history>
@@ -1103,8 +1077,7 @@ The total amount of swap space configured for this host.</description>
</item>
<item>
<name>Memory (buffers)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.4.14.0</snmp_oid>
<key>vm.memory.buffers[memBuffer.0]</key>
<history>7d</history>
@@ -1125,8 +1098,7 @@ Memory used by kernel buffers (Buffers in /proc/meminfo)</description>
</item>
<item>
<name>Memory (cached)</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.4.15.0</snmp_oid>
<key>vm.memory.cached[memCached.0]</key>
<history>7d</history>
@@ -1147,8 +1119,7 @@ Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)</desc
</item>
<item>
<name>Free memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.4.6.0</snmp_oid>
<key>vm.memory.free[memAvailReal.0]</key>
<history>7d</history>
@@ -1168,8 +1139,7 @@ Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)</desc
</item>
<item>
<name>Total memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2021.4.5.0</snmp_oid>
<key>vm.memory.total[memTotalReal.0]</key>
<history>7d</history>
@@ -1211,7 +1181,7 @@ Total memory in Bytes</description>
<dependencies>
<dependency>
<name>Lack of available memory ( &lt; {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</name>
- <expression>{Template Module Linux memory SNMPv2:vm.memory.available[snmp].min(5m)}&lt;{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory SNMPv2:vm.memory.total[memTotalReal.0].last()}&gt;0</expression>
+ <expression>{Template Module Linux memory SNMP:vm.memory.available[snmp].min(5m)}&lt;{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory SNMP:vm.memory.total[memTotalReal.0].last()}&gt;0</expression>
</dependency>
</dependencies>
</trigger>
@@ -1234,34 +1204,34 @@ Total memory in Bytes</description>
</macros>
</template>
<template>
- <template>Template OS Linux SNMPv2</template>
- <name>Template OS Linux SNMPv2</name>
+ <template>Template OS Linux SNMP</template>
+ <name>Template OS Linux SNMP</name>
<description>Template OS Linux&#13;
&#13;
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&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module EtherLike-MIB SNMPv2</name>
+ <name>Template Module EtherLike-MIB SNMP</name>
</template>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module Interfaces SNMPv2</name>
+ <name>Template Module Interfaces SNMP</name>
</template>
<template>
- <name>Template Module Linux block devices SNMPv2</name>
+ <name>Template Module Linux block devices SNMP</name>
</template>
<template>
- <name>Template Module Linux CPU SNMPv2</name>
+ <name>Template Module Linux CPU SNMP</name>
</template>
<template>
- <name>Template Module Linux filesystems SNMPv2</name>
+ <name>Template Module Linux filesystems SNMP</name>
</template>
<template>
- <name>Template Module Linux memory SNMPv2</name>
+ <name>Template Module Linux memory SNMP</name>
</template>
</templates>
<groups>
@@ -1280,7 +1250,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>System load</name>
- <host>Template OS Linux SNMPv2</host>
+ <host>Template OS Linux SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -1302,7 +1272,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>CPU usage{#SINGLETON}</name>
- <host>Template OS Linux SNMPv2</host>
+ <host>Template OS Linux SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -1324,7 +1294,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>Memory usage</name>
- <host>Template OS Linux SNMPv2</host>
+ <host>Template OS Linux SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -1346,7 +1316,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>Swap usage</name>
- <host>Template OS Linux SNMPv2</host>
+ <host>Template OS Linux SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -1368,7 +1338,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>{#FSNAME}: Disk space usage</name>
- <host>Template OS Linux SNMPv2</host>
+ <host>Template OS Linux SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -1390,7 +1360,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>{#DEVNAME}: Disk read/write rates</name>
- <host>Template OS Linux SNMPv2</host>
+ <host>Template OS Linux SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -1412,7 +1382,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<key>vfs.dev.util[diskIOLA1.{#SNMPINDEX}]</key>
- <host>Template OS Linux SNMPv2</host>
+ <host>Template OS Linux SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -1434,7 +1404,7 @@ Template tooling version used: 0.34</description>
<style>0</style>
<resource>
<name>Interface {#IFNAME}({#IFALIAS}): Network traffic</name>
- <host>Template OS Linux SNMPv2</host>
+ <host>Template OS Linux SNMP</host>
</resource>
<width>500</width>
<height>100</height>
@@ -1458,7 +1428,7 @@ Template tooling version used: 0.34</description>
</templates>
<triggers>
<trigger>
- <expression>{Template Module Linux memory SNMPv2:system.swap.pfree[snmp].min(5m)}&lt;{$SWAP.PFREE.MIN.WARN} and {Template Module Linux memory SNMPv2:system.swap.total[memTotalSwap.0].last()}&gt;0</expression>
+ <expression>{Template Module Linux memory SNMP:system.swap.pfree[snmp].min(5m)}&lt;{$SWAP.PFREE.MIN.WARN} and {Template Module Linux memory SNMP:system.swap.total[memTotalSwap.0].last()}&gt;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>
@@ -1466,24 +1436,24 @@ Template tooling version used: 0.34</description>
<dependencies>
<dependency>
<name>High memory utilization ( &gt;{$MEMORY.UTIL.MAX}% for 5m)</name>
- <expression>{Template Module Linux memory SNMPv2:vm.memory.util[snmp].min(5m)}&gt;{$MEMORY.UTIL.MAX}</expression>
+ <expression>{Template Module Linux memory SNMP:vm.memory.util[snmp].min(5m)}&gt;{$MEMORY.UTIL.MAX}</expression>
</dependency>
<dependency>
<name>Lack of available memory ( &lt; {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</name>
- <expression>{Template Module Linux memory SNMPv2:vm.memory.available[snmp].min(5m)}&lt;{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory SNMPv2:vm.memory.total[memTotalReal.0].last()}&gt;0</expression>
+ <expression>{Template Module Linux memory SNMP:vm.memory.available[snmp].min(5m)}&lt;{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory SNMP:vm.memory.total[memTotalReal.0].last()}&gt;0</expression>
</dependency>
</dependencies>
</trigger>
<trigger>
- <expression>{Template Module Linux memory SNMPv2:vm.memory.available[snmp].min(5m)}&lt;{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory SNMPv2:vm.memory.total[memTotalReal.0].last()}&gt;0</expression>
+ <expression>{Template Module Linux memory SNMP:vm.memory.available[snmp].min(5m)}&lt;{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory SNMP:vm.memory.total[memTotalReal.0].last()}&gt;0</expression>
<name>Lack of available memory ( &lt; {$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 SNMPv2:system.cpu.load.avg1[laLoad.1].min(5m)}/{Template Module Linux CPU SNMPv2:system.cpu.num[snmp].last()}&gt;{$LOAD_AVG_PER_CPU.MAX.WARN}&#13;
-and {Template Module Linux CPU SNMPv2:system.cpu.load.avg5[laLoad.2].last()}&gt;0&#13;
-and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt;0</expression>
+ <expression>{Template Module Linux CPU SNMP:system.cpu.load.avg1[laLoad.1].min(5m)}/{Template Module Linux CPU SNMP:system.cpu.num[snmp].last()}&gt;{$LOAD_AVG_PER_CPU.MAX.WARN}&#13;
+and {Template Module Linux CPU SNMP:system.cpu.load.avg5[laLoad.2].last()}&gt;0&#13;
+and {Template Module Linux CPU SNMP:system.cpu.load.avg15[laLoad.3].last()}&gt;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>
@@ -1497,7 +1467,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<graph_item>
<color>1A7C11</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.switches[ssRawContexts.0]</key>
</item>
</graph_item>
@@ -1505,7 +1475,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.intr[ssRawInterrupts.0]</key>
</item>
</graph_item>
@@ -1519,7 +1489,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<drawtype>BOLD_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Linux memory SNMPv2</host>
+ <host>Template Module Linux memory SNMP</host>
<key>vm.memory.total[memTotalReal.0]</key>
</item>
</graph_item>
@@ -1528,7 +1498,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<drawtype>GRADIENT_LINE</drawtype>
<color>2774A4</color>
<item>
- <host>Template Module Linux memory SNMPv2</host>
+ <host>Template Module Linux memory SNMP</host>
<key>vm.memory.available[snmp]</key>
</item>
</graph_item>
@@ -1543,7 +1513,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<drawtype>GRADIENT_LINE</drawtype>
<color>1A7C11</color>
<item>
- <host>Template Module Linux memory SNMPv2</host>
+ <host>Template Module Linux memory SNMP</host>
<key>vm.memory.util[snmp]</key>
</item>
</graph_item>
@@ -1555,7 +1525,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<graph_item>
<color>1A7C11</color>
<item>
- <host>Template Module Linux memory SNMPv2</host>
+ <host>Template Module Linux memory SNMP</host>
<key>system.swap.free[memAvailSwap.0]</key>
</item>
</graph_item>
@@ -1563,7 +1533,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
- <host>Template Module Linux memory SNMPv2</host>
+ <host>Template Module Linux memory SNMP</host>
<key>system.swap.total[memTotalSwap.0]</key>
</item>
</graph_item>
@@ -1576,7 +1546,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<graph_item>
<color>1A7C11</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.load.avg1[laLoad.1]</key>
</item>
</graph_item>
@@ -1584,7 +1554,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<sortorder>1</sortorder>
<color>2774A4</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.load.avg5[laLoad.2]</key>
</item>
</graph_item>
@@ -1592,7 +1562,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<sortorder>2</sortorder>
<color>F63100</color>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.load.avg15[laLoad.3]</key>
</item>
</graph_item>
@@ -1601,7 +1571,7 @@ and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}&gt
<color>A54F10</color>
<yaxisside>RIGHT</yaxisside>
<item>
- <host>Template Module Linux CPU SNMPv2</host>
+ <host>Template Module Linux CPU SNMP</host>
<key>system.cpu.num[snmp]</key>
</item>
</graph_item>
diff --git a/templates/os/linux_snmp_snmpv2/README.md b/templates/os/linux_snmp_snmpv2/README.md
deleted file mode 100644
index cf10af56129..00000000000
--- a/templates/os/linux_snmp_snmpv2/README.md
+++ /dev/null
@@ -1,293 +0,0 @@
-
-# Template Module Linux memory SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$MEMORY.AVAILABLE.MIN}|<p>-</p>|`20M`|
-|{$MEMORY.UTIL.MAX}|<p>-</p>|`90`|
-|{$SWAP.PFREE.MIN.WARN}|<p>-</p>|`50`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Memory|Memory utilization|<p>Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.</p>|CALCULATED|vm.memory.util[snmp]<p>**Expression**:</p>`(last("vm.memory.total[memTotalReal.0]")-(last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]")))/last("vm.memory.total[memTotalReal.0]")*100`|
-|Memory|Free memory|<p>MIB: UCD-SNMP-MIB</p>|SNMP|vm.memory.free[memAvailReal.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Memory (buffers)|<p>MIB: UCD-SNMP-MIB</p><p>Memory used by kernel buffers (Buffers in /proc/meminfo)</p>|SNMP|vm.memory.buffers[memBuffer.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Memory (cached)|<p>MIB: UCD-SNMP-MIB</p><p>Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)</p>|SNMP|vm.memory.cached[memCached.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Total memory|<p>MIB: UCD-SNMP-MIB</p><p>Total memory in Bytes</p>|SNMP|vm.memory.total[memTotalReal.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Available memory|<p>Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.</p>|CALCULATED|vm.memory.available[snmp]<p>**Expression**:</p>`last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]")`|
-|Memory|Total swap space|<p>MIB: UCD-SNMP-MIB</p><p>The total amount of swap space configured for this host.</p>|SNMP|system.swap.total[memTotalSwap.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Free swap space|<p>MIB: UCD-SNMP-MIB</p><p>The amount of swap space currently unused or available.</p>|SNMP|system.swap.free[memAvailSwap.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1024`</p>|
-|Memory|Free swap space in %|<p>The free space of swap volume/file in percent.</p>|CALCULATED|system.swap.pfree[snmp]<p>**Expression**:</p>`last("system.swap.free[memAvailSwap.0]")/last("system.swap.total[memTotalSwap.0]")*100`|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)|<p>The system is running out of free memory.</p>|`{TEMPLATE_NAME:vm.memory.util[snmp].min(5m)}>{$MEMORY.UTIL.MAX}`|AVERAGE|<p>**Depends on**:</p><p>- Lack of available memory ( < {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</p>|
-|Lack of available memory ( < {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})|<p>-</p>|`{TEMPLATE_NAME:vm.memory.available[snmp].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Template Module Linux memory SNMPv2:vm.memory.total[memTotalReal.0].last()}>0`|AVERAGE||
-|High swap space usage ( less than {$SWAP.PFREE.MIN.WARN}% free)|<p>This trigger is ignored, if there is no swap configured</p>|`{TEMPLATE_NAME:system.swap.pfree[snmp].min(5m)}<{$SWAP.PFREE.MIN.WARN} and {Template Module Linux memory SNMPv2:system.swap.total[memTotalSwap.0].last()}>0`|WARNING|<p>**Depends on**:</p><p>- High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)</p><p>- Lack of available memory ( < {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.
-
-# Template Module Linux block devices SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$VFS.DEV.DEVNAME.MATCHES}|<p>This macro is used in block devices discovery. Can be overridden on the host or linked template level</p>|`.+`|
-|{$VFS.DEV.DEVNAME.NOT_MATCHES}|<p>This macro is used in block devices discovery. Can be overridden on the host or linked template level</p>|`^(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]*)`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Block devices discovery|<p>Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable)</p>|SNMP|vfs.dev.discovery[snmp]<p>**Filter**:</p>AND <p>- A: {#DEVNAME} MATCHES_REGEX `{$VFS.DEV.DEVNAME.MATCHES}`</p><p>- B: {#DEVNAME} NOT_MATCHES_REGEX `{$VFS.DEV.DEVNAME.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Storage|{#DEVNAME}: Disk read rate|<p>MIB: UCD-DISKIO-MIB</p><p>The number of read accesses from this device since boot.</p>|SNMP|vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Storage|{#DEVNAME}: Disk write rate|<p>MIB: UCD-DISKIO-MIB</p><p>The number of write accesses from this device since boot.</p>|SNMP|vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|Storage|{#DEVNAME}: Disk utilization|<p>MIB: UCD-DISKIO-MIB</p><p>The 1 minute average load of disk (%)</p>|SNMP|vfs.dev.util[diskIOLA1.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module Linux CPU SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$CPU.UTIL.CRIT}|<p>-</p>|`90`|
-|{$LOAD_AVG_PER_CPU.MAX.WARN}|<p>Load per CPU considered sustainable. Tune if needed.</p>|`1.5`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|CPU discovery|<p>This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used.</p>|DEPENDENT|cpu.discovery[snmp]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `//count the number of CPU cores return JSON.stringify([{"{#CPU.COUNT}": value, "{#SNMPINDEX}": 0, "{#SINGLETON}":""}]) `</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|CPU|Load average (1m avg)|<p>MIB: UCD-SNMP-MIB</p>|SNMP|system.cpu.load.avg1[laLoad.1]|
-|CPU|Load average (5m avg)|<p>MIB: UCD-SNMP-MIB</p>|SNMP|system.cpu.load.avg5[laLoad.2]|
-|CPU|Load average (15m avg)|<p>MIB: UCD-SNMP-MIB</p>|SNMP|system.cpu.load.avg15[laLoad.3]|
-|CPU|Number of CPUs|<p>MIB: HOST-RESOURCES-MIB</p><p>Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD</p>|SNMP|system.cpu.num[snmp]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `//count the number of cores return JSON.parse(value).length; `</p>|
-|CPU|Interrupts per second|<p>-</p>|SNMP|system.cpu.intr[ssRawInterrupts.0]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|CPU|Context switches per second|<p>-</p>|SNMP|system.cpu.switches[ssRawContexts.0]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND|
-|CPU|CPU idle time|<p>MIB: UCD-SNMP-MIB</p><p>The time the CPU has spent doing nothing.</p>|SNMP|system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU system time|<p>MIB: UCD-SNMP-MIB</p><p>The time the CPU has spent running the kernel and its processes.</p>|SNMP|system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU user time|<p>MIB: UCD-SNMP-MIB</p><p>The time the CPU has spent running users' processes that are not niced.</p>|SNMP|system.cpu.user[ssCpuRawUser.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU steal time|<p>MIB: UCD-SNMP-MIB</p><p>The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine).</p>|SNMP|system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU softirq time|<p>MIB: UCD-SNMP-MIB</p><p>The amount of time the CPU has been servicing software interrupts.</p>|SNMP|system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU nice time|<p>MIB: UCD-SNMP-MIB</p><p>The time the CPU has spent running users' processes that have been niced.</p>|SNMP|system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU iowait time|<p>MIB: UCD-SNMP-MIB</p><p>Amount of time the CPU has been waiting for I/O to complete.</p>|SNMP|system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU interrupt time|<p>MIB: UCD-SNMP-MIB</p><p>The amount of time the CPU has been servicing hardware interrupts.</p>|SNMP|system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU guest time|<p>MIB: UCD-SNMP-MIB</p><p>Guest time (time spent running a virtual CPU for a guest operating system)</p>|SNMP|system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU guest nice time|<p>MIB: UCD-SNMP-MIB</p><p>Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel)</p>|SNMP|system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- CHANGE_PER_SECOND<p>- JAVASCRIPT: `//to get utilization in %, divide by N, where N is number of cores. return value/{#CPU.COUNT} `</p>|
-|CPU|CPU utilization|<p>CPU utilization in %</p>|DEPENDENT|system.cpu.util[snmp,{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `//Calculate utilization return (100 - value) `</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)|<p>Per CPU load average is too high. Your system may be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.load.avg1[laLoad.1].min(5m)}/{Template Module Linux CPU SNMPv2:system.cpu.num[snmp].last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} and {Template Module Linux CPU SNMPv2:system.cpu.load.avg5[laLoad.2].last()}>0 and {Template Module Linux CPU SNMPv2:system.cpu.load.avg15[laLoad.3].last()}>0`|AVERAGE||
-|High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)|<p>CPU utilization is too high. The system might be slow to respond.</p>|`{TEMPLATE_NAME:system.cpu.util[snmp,{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT}`|WARNING||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template Module Linux filesystems SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-
-## Zabbix configuration
-
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$VFS.FS.FSNAME.MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</p>|`.+`|
-|{$VFS.FS.FSNAME.NOT_MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</p>|`^(/dev|/sys|/run|/proc|.+/shm$)`|
-|{$VFS.FS.FSTYPE.MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</p>|`.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$`|
-|{$VFS.FS.FSTYPE.NOT_MATCHES}|<p>This macro is used in filesystems discovery. Can be overridden on the host or linked template level</p>|`^\s$`|
-|{$VFS.FS.INODE.PFREE.MIN.CRIT}|<p>-</p>|`10`|
-|{$VFS.FS.INODE.PFREE.MIN.WARN}|<p>-</p>|`20`|
-|{$VFS.FS.PUSED.MAX.CRIT}|<p>-</p>|`90`|
-|{$VFS.FS.PUSED.MAX.WARN}|<p>-</p>|`80`|
-
-## Template links
-
-There are no template links in this template.
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Mounted filesystem discovery|<p>HOST-RESOURCES-MIB::hrStorage discovery with storage filter</p>|SNMP|vfs.fs.discovery[snmp]<p>**Filter**:</p>AND <p>- A: {#FSTYPE} MATCHES_REGEX `{$VFS.FS.FSTYPE.MATCHES}`</p><p>- B: {#FSTYPE} NOT_MATCHES_REGEX `{$VFS.FS.FSTYPE.NOT_MATCHES}`</p><p>- C: {#FSNAME} MATCHES_REGEX `{$VFS.FS.FSNAME.MATCHES}`</p><p>- D: {#FSNAME} NOT_MATCHES_REGEX `{$VFS.FS.FSNAME.NOT_MATCHES}`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Storage|{#FSNAME}: Used space|<p>MIB: HOST-RESOURCES-MIB</p><p>The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.</p>|SNMP|vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Storage|{#FSNAME}: Total space|<p>MIB: HOST-RESOURCES-MIB</p><p>The size of the storage represented by this entry, in units of hrStorageAllocationUnits.</p><p>This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.</p><p>For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified.</p>|SNMP|vfs.fs.total[hrStorageSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `{#ALLOC_UNITS}`</p>|
-|Storage|{#FSNAME}: Space utilization|<p>Space utilization in % for {#FSNAME}</p>|CALCULATED|vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}]<p>**Expression**:</p>`(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100`|
-|Storage|{#FSNAME}: Free inodes in %|<p>MIB: UCD-SNMP-MIB</p><p>If having problems collecting this item make sure access to UCD-SNMP-MIB is allowed.</p>|SNMP|vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- JAVASCRIPT: `return (100-value);`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)|<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 5G.</p><p> - The disk will be full in less than 24 hours.</p>|`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({Template Module Linux filesystems SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)`|AVERAGE|<p>Manual close: YES</p>|
-|{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)|<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than 10G.</p><p> - The disk will be full in less than 24 hours.</p>|`{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({Template Module Linux filesystems SNMPv2:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Template Module Linux filesystems SNMPv2:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<10G or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d)`|WARNING|<p>Manual close: YES</p><p>**Depends on**:</p><p>- {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)</p>|
-|{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)|<p>It may become impossible to write to disk if there are no index nodes left.</p><p>As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available.</p>|`{TEMPLATE_NAME:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}`|AVERAGE||
-|{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)|<p>It may become impossible to write to disk if there are no index nodes left.</p><p>As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available.</p>|`{TEMPLATE_NAME:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}`|WARNING|<p>**Depends on**:</p><p>- {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-# Template OS Linux SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-
-## Setup
-
-Install snmpd agent on Linux OS, enable SNMPv2.
-
-Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since,
-by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
-
-```text
-rocommunity public default -V systemonly
-```
-
-Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation:
-http://www.net-snmp.org/wiki/index.php/Vacm
-
-You can also try to use `snmpconf`:
-
-http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration
-
-Change {$SNMP_COMMUNITY} on the host level in Zabbix.
-
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-
-## Template links
-
-|Name|
-|----|
-|Template Module EtherLike-MIB SNMPv2|
-|Template Module Generic SNMPv2|
-|Template Module Interfaces SNMPv2|
-|Template Module Linux CPU SNMPv2|
-|Template Module Linux block devices SNMPv2|
-|Template Module Linux filesystems SNMPv2|
-|Template Module Linux memory SNMPv2|
-
-## Discovery rules
-
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-You can also provide feedback, discuss the template or ask for help with it at
-[ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux).
-
-
-## References
-
-https://docs.fedoraproject.org/en-US/Fedora/26/html/System_Administrators_Guide/sect-System_Monitoring_Tools-Net-SNMP-Retrieving.html
diff --git a/templates/os/windows_snmpv2/README.md b/templates/os/windows_snmp/README.md
index a2bec1d8d2c..16d2cf79ad0 100644
--- a/templates/os/windows_snmpv2/README.md
+++ b/templates/os/windows_snmp/README.md
@@ -1,9 +1,9 @@
-# Template OS Windows SNMPv2
+# Template OS Windows SNMP
## Overview
-For Zabbix version: 4.4
+For Zabbix version: 5.0
## Setup
@@ -18,9 +18,9 @@ No specific Zabbix configuration is required.
|Name|
|----|
-|Template Module Generic SNMPv2|
-|Template Module HOST-RESOURCES-MIB SNMPv2|
-|Template Module Interfaces Windows SNMPv2|
+|Template Module Generic SNMP |
+|Template Module HOST-RESOURCES-MIB SNMP |
+|Template Module Interfaces Windows SNMP |
## Discovery rules
diff --git a/templates/os/windows_snmpv2/template_os_windows_snmpv2.xml b/templates/os/windows_snmp/template_os_windows_snmp.xml
index 5e01f185671..86f278aabe5 100644
--- a/templates/os/windows_snmpv2/template_os_windows_snmpv2.xml
+++ b/templates/os/windows_snmp/template_os_windows_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-05T01:30:23Z</date>
<groups>
<group>
<name>Templates/Operating systems</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template OS Windows SNMPv2</template>
- <name>Template OS Windows SNMPv2</name>
+ <template>Template OS Windows SNMP</template>
+ <name>Template OS Windows SNMP</name>
<description>Official Windows SNMP template. Requires Zabbix server 4.0.14, 4.2.8, 4.4.0 or newer (JSONPath function avg() used with types autoconversion).&#13;
&#13;
&#13;
@@ -29,16 +29,16 @@ https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40
Version: *&#13;
Device: *&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
<template>
- <name>Template Module HOST-RESOURCES-MIB SNMPv2</name>
+ <name>Template Module HOST-RESOURCES-MIB SNMP</name>
</template>
<template>
- <name>Template Module Interfaces Windows SNMPv2</name>
+ <name>Template Module Interfaces Windows SNMP</name>
</template>
</templates>
<groups>
diff --git a/templates/server/cisco_ucs_snmp/README.md b/templates/server/cisco_ucs_snmp/README.md
new file mode 100644
index 00000000000..351424d4efd
--- /dev/null
+++ b/templates/server/cisco_ucs_snmp/README.md
@@ -0,0 +1,136 @@
+
+# Template Server Cisco UCS SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+for Cisco UCS via Integrated Management Controller
+
+This template was tested on:
+
+- Cisco UCS C240 M4SX
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS} |<p>-</p> |`2` |
+|{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS} |<p>-</p> |`1` |
+|{$DISK_ARRAY_CRIT_STATUS:"inoperable"} |<p>-</p> |`2` |
+|{$DISK_ARRAY_OK_STATUS:"operable"} |<p>-</p> |`1` |
+|{$DISK_ARRAY_WARN_STATUS:"degraded"} |<p>-</p> |`3` |
+|{$DISK_CRIT_STATUS:"bad"} |<p>-</p> |`16` |
+|{$DISK_CRIT_STATUS:"predictiveFailure"} |<p>-</p> |`11` |
+|{$DISK_FAIL_STATUS:"failed"} |<p>-</p> |`9` |
+|{$FAN_CRIT_STATUS:"inoperable"} |<p>-</p> |`2` |
+|{$FAN_WARN_STATUS:"degraded"} |<p>-</p> |`3` |
+|{$HEALTH_CRIT_STATUS:"computeFailed"} |<p>-</p> |`30` |
+|{$HEALTH_CRIT_STATUS:"configFailure"} |<p>-</p> |`33` |
+|{$HEALTH_CRIT_STATUS:"inoperable"} |<p>-</p> |`60` |
+|{$HEALTH_CRIT_STATUS:"unconfigFailure"} |<p>-</p> |`34` |
+|{$HEALTH_WARN_STATUS:"diagnosticsFailed"} |<p>-</p> |`204` |
+|{$HEALTH_WARN_STATUS:"powerProblem"} |<p>-</p> |`62` |
+|{$HEALTH_WARN_STATUS:"testFailed"} |<p>-</p> |`35` |
+|{$HEALTH_WARN_STATUS:"thermalProblem"} |<p>-</p> |`60` |
+|{$HEALTH_WARN_STATUS:"voltageProblem"} |<p>-</p> |`62` |
+|{$PSU_CRIT_STATUS:"inoperable"} |<p>-</p> |`2` |
+|{$PSU_WARN_STATUS:"degraded"} |<p>-</p> |`3` |
+|{$TEMP_CRIT:"Ambient"} |<p>-</p> |`35` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN:"Ambient"} |<p>-</p> |`30` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+|{$VDISK_OK_STATUS:"equipped"} |<p>-</p> |`10` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>-</p> |SNMP |temp.discovery |
+|Temperature CPU Discovery |<p>-</p> |SNMP |temp.cpu.discovery |
+|PSU Discovery |<p>-</p> |SNMP |psu.discovery |
+|Unit Discovery |<p>-</p> |SNMP |unit.discovery |
+|FAN Discovery |<p>-</p> |SNMP |fan.discovery |
+|Physical Disk Discovery |<p>Scanning table of physical drive entries CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageLocalDiskTable.</p> |SNMP |physicalDisk.discovery |
+|Virtual Disk Discovery |<p>CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageLocalLunTable</p> |SNMP |virtualdisk.discovery |
+|Array Controller Discovery |<p>Scanning table of Array controllers: CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageControllerTable.</p> |SNMP |array.discovery |
+|Array Controller Cache Discovery |<p>Scanning table of Array controllers: CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageControllerTable.</p> |SNMP |array.cache.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Disk_arrays |{#DISKARRAY_LOCATION}: Disk array controller status |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p> |SNMP |system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}] |
+|Disk_arrays |{#DISKARRAY_LOCATION}: Disk array controller model |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p> |SNMP |system.hw.diskarray.model[cucsStorageControllerModel.{#SNMPINDEX}] |
+|Disk_arrays |{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery status |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p> |SNMP |system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}] |
+|Fans |{#FAN_LOCATION}: Fan status |<p>MIB: CISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB</p><p>Cisco UCS equipment:Fan:operState managed object property</p> |SNMP |sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}] |
+|Inventory |{#UNIT_LOCATION}: Hardware model name |<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnit:model managed object property</p> |SNMP |system.hw.model[cucsComputeRackUnitModel.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |{#UNIT_LOCATION}: Hardware serial number |<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnit:serial managed object property</p> |SNMP |system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Physical_disks |{#DISK_LOCATION}: Physical disk status |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalDisk:diskState managed object property.</p> |SNMP |system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_LOCATION}: Physical disk model name |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalDisk:serial managed object property. Actually returns part number code</p> |SNMP |system.hw.physicaldisk.model[cucsStorageLocalDiskSerial.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_LOCATION}: Physical disk media type |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalDisk:model managed object property. Actually returns 'HDD' or 'SSD'</p> |SNMP |system.hw.physicaldisk.media_type[cucsStorageLocalDiskModel.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_LOCATION}: Disk size |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalDisk:size managed object property. In MB.</p> |SNMP |system.hw.physicaldisk.size[cucsStorageLocalDiskSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p> |
+|Power_supply |{#PSU_LOCATION}: Power supply status |<p>MIB: CISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB</p><p>Cisco UCS equipment:Psu:operState managed object property</p> |SNMP |sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}] |
+|Status |{#UNIT_LOCATION}: Overall system health status |<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnit:operState managed object property</p> |SNMP |system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_LOCATION}.Ambient: Temperature |<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Temperature readings of testpoint: {#SENSOR_LOCATION}.Ambient</p> |SNMP |sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_LOCATION}.Front: Temperature |<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnitMbTempStats:frontTemp managed object property</p> |SNMP |sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_LOCATION}.Rear: Temperature |<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnitMbTempStats:rearTemp managed object property</p> |SNMP |sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_LOCATION}.IOH: Temperature |<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnitMbTempStats:ioh1Temp managed object property</p> |SNMP |sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_LOCATION}: Temperature |<p>MIB: CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB</p><p>Cisco UCS processor:EnvStats:temperature managed object property</p> |SNMP |sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}] |
+|Virtual_disks |{#VDISK_LOCATION}: Status |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalLun:presence managed object property</p> |SNMP |system.hw.virtualdisk.status[cucsStorageLocalLunPresence.{#SNMPINDEX}] |
+|Virtual_disks |{#VDISK_LOCATION}: Layout type |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalLun:type managed object property</p> |SNMP |system.hw.virtualdisk.layout[cucsStorageLocalLunType.{#SNMPINDEX}] |
+|Virtual_disks |{#VDISK_LOCATION}: Disk size |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalLun:size managed object property in MB.</p> |SNMP |system.hw.virtualdisk.size[cucsStorageLocalLunSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#DISKARRAY_LOCATION}: Disk array controller is in critical state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1` |HIGH | |
+|{#DISKARRAY_LOCATION}: Disk array controller is in warning state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS:"degraded"},eq)}=1` |AVERAGE |<p>**Depends on**:</p><p>- {#DISKARRAY_LOCATION}: Disk array controller is in critical state</p> |
+|{#DISKARRAY_LOCATION}: Disk array controller is not in optimal state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_OK_STATUS:"operable"},ne)}=1` |WARNING |<p>**Depends on**:</p><p>- {#DISKARRAY_LOCATION}: Disk array controller is in critical state</p><p>- {#DISKARRAY_LOCATION}: Disk array controller is in warning state</p> |
+|{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state! |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is not in optimal state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS},ne)}=1` |WARNING |<p>**Depends on**:</p><p>- {#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state!</p> |
+|{#FAN_LOCATION}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"inoperable"},eq)}=1` |AVERAGE | |
+|{#FAN_LOCATION}: Fan is in warning state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"degraded"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#FAN_LOCATION}: Fan is in critical state</p> |
+|{#UNIT_LOCATION}: Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#DISK_LOCATION}: Physical disk failed |<p>Please check physical disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"failed"},eq)}=1` |HIGH | |
+|{#DISK_LOCATION}: Physical disk error |<p>Please check physical disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_CRIT_STATUS:"bad"},eq)}=1 or {TEMPLATE_NAME:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_CRIT_STATUS:"predictiveFailure"},eq)}=1` |AVERAGE |<p>**Depends on**:</p><p>- {#DISK_LOCATION}: Physical disk failed</p> |
+|{#PSU_LOCATION}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"inoperable"},eq)}=1` |AVERAGE | |
+|{#PSU_LOCATION}: Power supply is in warning state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"degraded"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#PSU_LOCATION}: Power supply is in critical state</p> |
+|{#UNIT_LOCATION}: System status is in critical state |<p>Please check the device for errors</p> |`{TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"computeFailed"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"configFailure"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"unconfigFailure"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"inoperable"},eq)}=1` |HIGH | |
+|{#UNIT_LOCATION}: System status is in warning state |<p>Please check the device for warnings</p> |`{TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"testFailed"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"thermalProblem"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"powerProblem"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"voltageProblem"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"diagnosticsFailed"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#UNIT_LOCATION}: System status is in critical state</p> |
+|{#SENSOR_LOCATION}.Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p> |
+|{#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3` |HIGH | |
+|{#SENSOR_LOCATION}.Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3` |AVERAGE | |
+|{#SENSOR_LOCATION}.Front: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}.Front: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p> |
+|{#SENSOR_LOCATION}.Front: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3` |HIGH | |
+|{#SENSOR_LOCATION}.Front: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3` |AVERAGE | |
+|{#SENSOR_LOCATION}.Rear: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}.Rear: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p> |
+|{#SENSOR_LOCATION}.Rear: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3` |HIGH | |
+|{#SENSOR_LOCATION}.Rear: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3` |AVERAGE | |
+|{#SENSOR_LOCATION}.IOH: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}.IOH: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p> |
+|{#SENSOR_LOCATION}.IOH: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3` |HIGH | |
+|{#SENSOR_LOCATION}.IOH: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3` |AVERAGE | |
+|{#SENSOR_LOCATION}: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p> |
+|{#SENSOR_LOCATION}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3` |HIGH | |
+|{#SENSOR_LOCATION}: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3` |AVERAGE | |
+|{#VDISK_LOCATION}: Virtual disk is not in OK state |<p>Please check virtual disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.virtualdisk.status[cucsStorageLocalLunPresence.{#SNMPINDEX}].count(#1,{$VDISK_OK_STATUS:"equipped"},ne)}=1` |WARNING | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/server/cisco_ucs_snmpv2/template_server_cisco_ucs_snmpv2.xml b/templates/server/cisco_ucs_snmp/template_server_cisco_ucs_snmp.xml
index 361d24fe34f..cd9463dfd2e 100644
--- a/templates/server/cisco_ucs_snmpv2/template_server_cisco_ucs_snmpv2.xml
+++ b/templates/server/cisco_ucs_snmp/template_server_cisco_ucs_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-04T23:48:11Z</date>
<groups>
<group>
<name>Templates/Server hardware</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Server Cisco UCS SNMPv2</template>
- <name>Template Server Cisco UCS SNMPv2</name>
+ <template>Template Server Cisco UCS SNMP</template>
+ <name>Template Server Cisco UCS SNMP</name>
<description>Template Server Cisco UCS&#13;
&#13;
MIBs used:&#13;
@@ -19,10 +19,10 @@ CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB&#13;
CISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB&#13;
CISCO-UNIFIED-COMPUTING-STORAGE-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
</templates>
<groups>
@@ -59,8 +59,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>Array Controller Cache Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#DISKARRAY_CACHE_LOCATION},1.3.6.1.4.1.9.9.719.1.45.11.1.2]</snmp_oid>
<key>array.cache.discovery</key>
<delay>1h</delay>
@@ -68,8 +67,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.11.1.9.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}]</key>
<history>1w</history>
@@ -100,7 +98,7 @@ Template tooling version used: 0.34</description>
<dependencies>
<dependency>
<name>{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state!</name>
- <expression>{Template Server Cisco UCS SNMPv2:system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server Cisco UCS SNMP:system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -110,8 +108,7 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>Array Controller Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#DISKARRAY_LOCATION},1.3.6.1.4.1.9.9.719.1.45.1.1.2]</snmp_oid>
<key>array.discovery</key>
<delay>1h</delay>
@@ -119,8 +116,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#DISKARRAY_LOCATION}: Disk array controller model</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.1.1.5.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.model[cucsStorageControllerModel.{#SNMPINDEX}]</key>
<delay>1d</delay>
@@ -135,8 +131,7 @@ Template tooling version used: 0.34</description>
</item_prototype>
<item_prototype>
<name>{#DISKARRAY_LOCATION}: Disk array controller status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}]</key>
<history>1w</history>
@@ -167,7 +162,7 @@ Template tooling version used: 0.34</description>
<dependencies>
<dependency>
<name>{#DISKARRAY_LOCATION}: Disk array controller is in critical state</name>
- <expression>{Template Server Cisco UCS SNMPv2:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1</expression>
+ <expression>{Template Server Cisco UCS SNMP:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -180,11 +175,11 @@ Template tooling version used: 0.34</description>
<dependencies>
<dependency>
<name>{#DISKARRAY_LOCATION}: Disk array controller is in critical state</name>
- <expression>{Template Server Cisco UCS SNMPv2:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1</expression>
+ <expression>{Template Server Cisco UCS SNMP:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1</expression>
</dependency>
<dependency>
<name>{#DISKARRAY_LOCATION}: Disk array controller is in warning state</name>
- <expression>{Template Server Cisco UCS SNMPv2:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS:"degraded"},eq)}=1</expression>
+ <expression>{Template Server Cisco UCS SNMP:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS:"degraded"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -194,16 +189,14 @@ Template tooling version used: 0.34</description>
</discovery_rule>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#FAN_LOCATION},1.3.6.1.4.1.9.9.719.1.15.12.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#FAN_LOCATION}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.15.12.1.9.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -236,7 +229,7 @@ Cisco UCS equipment:Fan:operState managed object property</description>
<dependencies>
<dependency>
<name>{#FAN_LOCATION}: Fan is in critical state</name>
- <expression>{Template Server Cisco UCS SNMPv2:sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"inoperable"},eq)}=1</expression>
+ <expression>{Template Server Cisco UCS SNMP:sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"inoperable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -246,8 +239,7 @@ Cisco UCS equipment:Fan:operState managed object property</description>
</discovery_rule>
<discovery_rule>
<name>Physical Disk Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#DISK_LOCATION},1.3.6.1.4.1.9.9.719.1.45.4.1.2]</snmp_oid>
<key>physicalDisk.discovery</key>
<delay>1h</delay>
@@ -255,8 +247,7 @@ Cisco UCS equipment:Fan:operState managed object property</description>
<item_prototypes>
<item_prototype>
<name>{#DISK_LOCATION}: Physical disk media type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.4.1.7.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.media_type[cucsStorageLocalDiskModel.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -273,8 +264,7 @@ Cisco UCS storage:LocalDisk:model managed object property. Actually returns 'HDD
</item_prototype>
<item_prototype>
<name>{#DISK_LOCATION}: Physical disk model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.4.1.12.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.model[cucsStorageLocalDiskSerial.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -291,8 +281,7 @@ Cisco UCS storage:LocalDisk:serial managed object property. Actually returns par
</item_prototype>
<item_prototype>
<name>{#DISK_LOCATION}: Disk size</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.4.1.13.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.size[cucsStorageLocalDiskSize.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -315,8 +304,7 @@ Cisco UCS storage:LocalDisk:size managed object property. In MB.</description>
</item_prototype>
<item_prototype>
<name>{#DISK_LOCATION}: Physical disk status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.4.1.18.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -348,7 +336,7 @@ Cisco UCS storage:LocalDisk:diskState managed object property.</description>
<dependencies>
<dependency>
<name>{#DISK_LOCATION}: Physical disk failed</name>
- <expression>{Template Server Cisco UCS SNMPv2:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"failed"},eq)}=1</expression>
+ <expression>{Template Server Cisco UCS SNMP:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"failed"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -358,16 +346,14 @@ Cisco UCS storage:LocalDisk:diskState managed object property.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#PSU_LOCATION},1.3.6.1.4.1.9.9.719.1.15.56.1.2]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#PSU_LOCATION}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.15.56.1.7.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -400,7 +386,7 @@ Cisco UCS equipment:Psu:operState managed object property</description>
<dependencies>
<dependency>
<name>{#PSU_LOCATION}: Power supply is in critical state</name>
- <expression>{Template Server Cisco UCS SNMPv2:sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"inoperable"},eq)}=1</expression>
+ <expression>{Template Server Cisco UCS SNMP:sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"inoperable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -410,16 +396,14 @@ Cisco UCS equipment:Psu:operState managed object property</description>
</discovery_rule>
<discovery_rule>
<name>Temperature CPU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_LOCATION},1.3.6.1.4.1.9.9.719.1.41.2.1.2]</snmp_oid>
<key>temp.cpu.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_LOCATION}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.41.2.1.10.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -444,8 +428,8 @@ Cisco UCS processor:EnvStats:temperature managed object property</description>
<dependencies>
<dependency>
<name>{#SENSOR_LOCATION}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"CPU"}</name>
- <expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
- <recovery_expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
+ <expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
+ <recovery_expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -472,16 +456,14 @@ Cisco UCS processor:EnvStats:temperature managed object property</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SENSOR_LOCATION},1.3.6.1.4.1.9.9.719.1.9.44.1.2]</snmp_oid>
<key>temp.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_LOCATION}.IOH: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.9.44.1.13.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -506,8 +488,8 @@ Cisco UCS compute:RackUnitMbTempStats:ioh1Temp managed object property</descript
<dependencies>
<dependency>
<name>{#SENSOR_LOCATION}.IOH: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
- <recovery_expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
+ <expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
+ <recovery_expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -532,8 +514,7 @@ Cisco UCS compute:RackUnitMbTempStats:ioh1Temp managed object property</descript
</item_prototype>
<item_prototype>
<name>{#SENSOR_LOCATION}.Ambient: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.9.44.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -558,8 +539,8 @@ Temperature readings of testpoint: {#SENSOR_LOCATION}.Ambient</description>
<dependencies>
<dependency>
<name>{#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
- <recovery_expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
+ <expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
+ <recovery_expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -584,8 +565,7 @@ Temperature readings of testpoint: {#SENSOR_LOCATION}.Ambient</description>
</item_prototype>
<item_prototype>
<name>{#SENSOR_LOCATION}.Front: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.9.44.1.8.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -610,8 +590,8 @@ Cisco UCS compute:RackUnitMbTempStats:frontTemp managed object property</descrip
<dependencies>
<dependency>
<name>{#SENSOR_LOCATION}.Front: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
- <recovery_expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
+ <expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
+ <recovery_expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -636,8 +616,7 @@ Cisco UCS compute:RackUnitMbTempStats:frontTemp managed object property</descrip
</item_prototype>
<item_prototype>
<name>{#SENSOR_LOCATION}.Rear: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.9.44.1.21.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -662,8 +641,8 @@ Cisco UCS compute:RackUnitMbTempStats:rearTemp managed object property</descript
<dependencies>
<dependency>
<name>{#SENSOR_LOCATION}.Rear: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
- <recovery_expression>{Template Server Cisco UCS SNMPv2:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
+ <expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
+ <recovery_expression>{Template Server Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -690,16 +669,14 @@ Cisco UCS compute:RackUnitMbTempStats:rearTemp managed object property</descript
</discovery_rule>
<discovery_rule>
<name>Unit Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#UNIT_LOCATION},1.3.6.1.4.1.9.9.719.1.9.35.1.2]</snmp_oid>
<key>unit.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#UNIT_LOCATION}: Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.9.35.1.32.{#SNMPINDEX}</snmp_oid>
<key>system.hw.model[cucsComputeRackUnitModel.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -722,8 +699,7 @@ Cisco UCS compute:RackUnit:model managed object property</description>
</item_prototype>
<item_prototype>
<name>{#UNIT_LOCATION}: Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.9.35.1.47.{#SNMPINDEX}</snmp_oid>
<key>system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -755,8 +731,7 @@ Cisco UCS compute:RackUnit:serial managed object property</description>
</item_prototype>
<item_prototype>
<name>{#UNIT_LOCATION}: Overall system health status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.9.35.1.42.{#SNMPINDEX}</snmp_oid>
<key>system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}]</key>
<delay>30s</delay>
@@ -789,7 +764,7 @@ Cisco UCS compute:RackUnit:operState managed object property</description>
<dependencies>
<dependency>
<name>{#UNIT_LOCATION}: System status is in critical state</name>
- <expression>{Template Server Cisco UCS SNMPv2:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"computeFailed"},eq)}=1 or {Template Server Cisco UCS SNMPv2:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"configFailure"},eq)}=1 or {Template Server Cisco UCS SNMPv2:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"unconfigFailure"},eq)}=1 or {Template Server Cisco UCS SNMPv2:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"inoperable"},eq)}=1</expression>
+ <expression>{Template Server Cisco UCS SNMP:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"computeFailed"},eq)}=1 or {Template Server Cisco UCS SNMP:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"configFailure"},eq)}=1 or {Template Server Cisco UCS SNMP:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"unconfigFailure"},eq)}=1 or {Template Server Cisco UCS SNMP:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"inoperable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -799,8 +774,7 @@ Cisco UCS compute:RackUnit:operState managed object property</description>
</discovery_rule>
<discovery_rule>
<name>Virtual Disk Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#VDISK_LOCATION},1.3.6.1.4.1.9.9.719.1.45.8.1.2]</snmp_oid>
<key>virtualdisk.discovery</key>
<delay>1h</delay>
@@ -808,8 +782,7 @@ Cisco UCS compute:RackUnit:operState managed object property</description>
<item_prototypes>
<item_prototype>
<name>{#VDISK_LOCATION}: Layout type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.8.1.14.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.layout[cucsStorageLocalLunType.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -827,8 +800,7 @@ Cisco UCS storage:LocalLun:type managed object property</description>
</item_prototype>
<item_prototype>
<name>{#VDISK_LOCATION}: Disk size</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.8.1.13.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.size[cucsStorageLocalLunSize.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -854,8 +826,7 @@ Cisco UCS storage:LocalLun:size managed object property in MB.</description>
</item_prototype>
<item_prototype>
<name>{#VDISK_LOCATION}: Status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.9.9.719.1.45.8.1.10.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.status[cucsStorageLocalLunPresence.{#SNMPINDEX}]</key>
<delay>3m</delay>
diff --git a/templates/server/cisco_ucs_snmpv2/README.md b/templates/server/cisco_ucs_snmpv2/README.md
deleted file mode 100644
index 474bcb129fb..00000000000
--- a/templates/server/cisco_ucs_snmpv2/README.md
+++ /dev/null
@@ -1,136 +0,0 @@
-
-# Template Server Cisco UCS SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-for Cisco UCS via Integrated Management Controller
-
-This template was tested on:
-
-- Cisco UCS C240 M4SX
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS}|<p>-</p>|`2`|
-|{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS}|<p>-</p>|`1`|
-|{$DISK_ARRAY_CRIT_STATUS:"inoperable"}|<p>-</p>|`2`|
-|{$DISK_ARRAY_OK_STATUS:"operable"}|<p>-</p>|`1`|
-|{$DISK_ARRAY_WARN_STATUS:"degraded"}|<p>-</p>|`3`|
-|{$DISK_CRIT_STATUS:"bad"}|<p>-</p>|`16`|
-|{$DISK_CRIT_STATUS:"predictiveFailure"}|<p>-</p>|`11`|
-|{$DISK_FAIL_STATUS:"failed"}|<p>-</p>|`9`|
-|{$FAN_CRIT_STATUS:"inoperable"}|<p>-</p>|`2`|
-|{$FAN_WARN_STATUS:"degraded"}|<p>-</p>|`3`|
-|{$HEALTH_CRIT_STATUS:"computeFailed"}|<p>-</p>|`30`|
-|{$HEALTH_CRIT_STATUS:"configFailure"}|<p>-</p>|`33`|
-|{$HEALTH_CRIT_STATUS:"inoperable"}|<p>-</p>|`60`|
-|{$HEALTH_CRIT_STATUS:"unconfigFailure"}|<p>-</p>|`34`|
-|{$HEALTH_WARN_STATUS:"diagnosticsFailed"}|<p>-</p>|`204`|
-|{$HEALTH_WARN_STATUS:"powerProblem"}|<p>-</p>|`62`|
-|{$HEALTH_WARN_STATUS:"testFailed"}|<p>-</p>|`35`|
-|{$HEALTH_WARN_STATUS:"thermalProblem"}|<p>-</p>|`60`|
-|{$HEALTH_WARN_STATUS:"voltageProblem"}|<p>-</p>|`62`|
-|{$PSU_CRIT_STATUS:"inoperable"}|<p>-</p>|`2`|
-|{$PSU_WARN_STATUS:"degraded"}|<p>-</p>|`3`|
-|{$TEMP_CRIT:"Ambient"}|<p>-</p>|`35`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN:"Ambient"}|<p>-</p>|`30`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-|{$VDISK_OK_STATUS:"equipped"}|<p>-</p>|`10`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>-</p>|SNMP|temp.discovery|
-|Temperature CPU Discovery|<p>-</p>|SNMP|temp.cpu.discovery|
-|PSU Discovery|<p>-</p>|SNMP|psu.discovery|
-|Unit Discovery|<p>-</p>|SNMP|unit.discovery|
-|FAN Discovery|<p>-</p>|SNMP|fan.discovery|
-|Physical Disk Discovery|<p>Scanning table of physical drive entries CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageLocalDiskTable.</p>|SNMP|physicalDisk.discovery|
-|Virtual Disk Discovery|<p>CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageLocalLunTable</p>|SNMP|virtualdisk.discovery|
-|Array Controller Discovery|<p>Scanning table of Array controllers: CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageControllerTable.</p>|SNMP|array.discovery|
-|Array Controller Cache Discovery|<p>Scanning table of Array controllers: CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageControllerTable.</p>|SNMP|array.cache.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Disk_arrays|{#DISKARRAY_LOCATION}: Disk array controller status|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p>|SNMP|system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}]|
-|Disk_arrays|{#DISKARRAY_LOCATION}: Disk array controller model|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p>|SNMP|system.hw.diskarray.model[cucsStorageControllerModel.{#SNMPINDEX}]|
-|Disk_arrays|{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery status|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p>|SNMP|system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}]|
-|Fans|{#FAN_LOCATION}: Fan status|<p>MIB: CISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB</p><p>Cisco UCS equipment:Fan:operState managed object property</p>|SNMP|sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}]|
-|Inventory|{#UNIT_LOCATION}: Hardware model name|<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnit:model managed object property</p>|SNMP|system.hw.model[cucsComputeRackUnitModel.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|{#UNIT_LOCATION}: Hardware serial number|<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnit:serial managed object property</p>|SNMP|system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Physical_disks|{#DISK_LOCATION}: Physical disk status|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalDisk:diskState managed object property.</p>|SNMP|system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_LOCATION}: Physical disk model name|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalDisk:serial managed object property. Actually returns part number code</p>|SNMP|system.hw.physicaldisk.model[cucsStorageLocalDiskSerial.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_LOCATION}: Physical disk media type|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalDisk:model managed object property. Actually returns 'HDD' or 'SSD'</p>|SNMP|system.hw.physicaldisk.media_type[cucsStorageLocalDiskModel.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_LOCATION}: Disk size|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalDisk:size managed object property. In MB.</p>|SNMP|system.hw.physicaldisk.size[cucsStorageLocalDiskSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p>|
-|Power_supply|{#PSU_LOCATION}: Power supply status|<p>MIB: CISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB</p><p>Cisco UCS equipment:Psu:operState managed object property</p>|SNMP|sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}]|
-|Status|{#UNIT_LOCATION}: Overall system health status|<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnit:operState managed object property</p>|SNMP|system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_LOCATION}.Ambient: Temperature|<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Temperature readings of testpoint: {#SENSOR_LOCATION}.Ambient</p>|SNMP|sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_LOCATION}.Front: Temperature|<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnitMbTempStats:frontTemp managed object property</p>|SNMP|sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_LOCATION}.Rear: Temperature|<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnitMbTempStats:rearTemp managed object property</p>|SNMP|sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_LOCATION}.IOH: Temperature|<p>MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB</p><p>Cisco UCS compute:RackUnitMbTempStats:ioh1Temp managed object property</p>|SNMP|sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_LOCATION}: Temperature|<p>MIB: CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB</p><p>Cisco UCS processor:EnvStats:temperature managed object property</p>|SNMP|sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}]|
-|Virtual_disks|{#VDISK_LOCATION}: Status|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalLun:presence managed object property</p>|SNMP|system.hw.virtualdisk.status[cucsStorageLocalLunPresence.{#SNMPINDEX}]|
-|Virtual_disks|{#VDISK_LOCATION}: Layout type |<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalLun:type managed object property</p>|SNMP|system.hw.virtualdisk.layout[cucsStorageLocalLunType.{#SNMPINDEX}]|
-|Virtual_disks|{#VDISK_LOCATION}: Disk size|<p>MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB</p><p>Cisco UCS storage:LocalLun:size managed object property in MB.</p>|SNMP|system.hw.virtualdisk.size[cucsStorageLocalLunSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#DISKARRAY_LOCATION}: Disk array controller is in critical state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1`|HIGH||
-|{#DISKARRAY_LOCATION}: Disk array controller is in warning state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS:"degraded"},eq)}=1`|AVERAGE|<p>**Depends on**:</p><p>- {#DISKARRAY_LOCATION}: Disk array controller is in critical state</p>|
-|{#DISKARRAY_LOCATION}: Disk array controller is not in optimal state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_OK_STATUS:"operable"},ne)}=1`|WARNING|<p>**Depends on**:</p><p>- {#DISKARRAY_LOCATION}: Disk array controller is in critical state</p><p>- {#DISKARRAY_LOCATION}: Disk array controller is in warning state</p>|
-|{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state!|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is not in optimal state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS},ne)}=1`|WARNING|<p>**Depends on**:</p><p>- {#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state!</p>|
-|{#FAN_LOCATION}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"inoperable"},eq)}=1`|AVERAGE||
-|{#FAN_LOCATION}: Fan is in warning state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"degraded"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#FAN_LOCATION}: Fan is in critical state</p>|
-|{#UNIT_LOCATION}: Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#DISK_LOCATION}: Physical disk failed|<p>Please check physical disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"failed"},eq)}=1`|HIGH||
-|{#DISK_LOCATION}: Physical disk error|<p>Please check physical disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_CRIT_STATUS:"bad"},eq)}=1 or {TEMPLATE_NAME:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_CRIT_STATUS:"predictiveFailure"},eq)}=1`|AVERAGE|<p>**Depends on**:</p><p>- {#DISK_LOCATION}: Physical disk failed</p>|
-|{#PSU_LOCATION}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"inoperable"},eq)}=1`|AVERAGE||
-|{#PSU_LOCATION}: Power supply is in warning state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"degraded"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#PSU_LOCATION}: Power supply is in critical state</p>|
-|{#UNIT_LOCATION}: System status is in critical state|<p>Please check the device for errors</p>|`{TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"computeFailed"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"configFailure"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"unconfigFailure"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"inoperable"},eq)}=1`|HIGH||
-|{#UNIT_LOCATION}: System status is in warning state|<p>Please check the device for warnings</p>|`{TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"testFailed"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"thermalProblem"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"powerProblem"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"voltageProblem"},eq)}=1 or {TEMPLATE_NAME:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_WARN_STATUS:"diagnosticsFailed"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#UNIT_LOCATION}: System status is in critical state</p>|
-|{#SENSOR_LOCATION}.Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p>|
-|{#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3`|HIGH||
-|{#SENSOR_LOCATION}.Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3`|AVERAGE||
-|{#SENSOR_LOCATION}.Front: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}.Front: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p>|
-|{#SENSOR_LOCATION}.Front: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3`|HIGH||
-|{#SENSOR_LOCATION}.Front: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3`|AVERAGE||
-|{#SENSOR_LOCATION}.Rear: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}.Rear: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p>|
-|{#SENSOR_LOCATION}.Rear: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3`|HIGH||
-|{#SENSOR_LOCATION}.Rear: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3`|AVERAGE||
-|{#SENSOR_LOCATION}.IOH: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}.IOH: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p>|
-|{#SENSOR_LOCATION}.IOH: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3`|HIGH||
-|{#SENSOR_LOCATION}.IOH: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3`|AVERAGE||
-|{#SENSOR_LOCATION}: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_LOCATION}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p>|
-|{#SENSOR_LOCATION}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3`|HIGH||
-|{#SENSOR_LOCATION}: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3`|AVERAGE||
-|{#VDISK_LOCATION}: Virtual disk is not in OK state|<p>Please check virtual disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.virtualdisk.status[cucsStorageLocalLunPresence.{#SNMPINDEX}].count(#1,{$VDISK_OK_STATUS:"equipped"},ne)}=1`|WARNING||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/server/dell_idrac_snmp/README.md b/templates/server/dell_idrac_snmp/README.md
new file mode 100644
index 00000000000..cf58eda2fcf
--- /dev/null
+++ b/templates/server/dell_idrac_snmp/README.md
@@ -0,0 +1,153 @@
+
+# Template Server Dell iDRAC SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+for Dell servers with iDRAC controllers
+http://www.dell.com/support/manuals/us/en/19/dell-openmanage-server-administrator-v8.3/snmp_idrac8/idrac-mib?guid=guid-e686536d-bc8e-4e09-8e8b-de8eb052efee
+Supported systems: http://www.dell.com/support/manuals/us/en/04/dell-openmanage-server-administrator-v8.3/snmp_idrac8/supported-systems?guid=guid-f72b75ba-e686-4e8a-b8c5-ca11c7c21381
+
+This template was tested on:
+
+- iDRAC7, PowerEdge R620
+- iDRAC8, PowerEdge R730xd
+- iDRAC8, PowerEdge R720
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS} |<p>-</p> |`3` |
+|{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS} |<p>-</p> |`2` |
+|{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS} |<p>-</p> |`4` |
+|{$DISK_ARRAY_CRIT_STATUS:"critical"} |<p>-</p> |`5` |
+|{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"} |<p>-</p> |`6` |
+|{$DISK_ARRAY_WARN_STATUS:"nonCritical"} |<p>-</p> |`4` |
+|{$DISK_FAIL_STATUS:"critical"} |<p>-</p> |`5` |
+|{$DISK_FAIL_STATUS:"nonRecoverable"} |<p>-</p> |`6` |
+|{$DISK_SMART_FAIL_STATUS} |<p>-</p> |`1` |
+|{$DISK_WARN_STATUS:"nonCritical"} |<p>-</p> |`4` |
+|{$FAN_CRIT_STATUS:"criticalLower"} |<p>-</p> |`8` |
+|{$FAN_CRIT_STATUS:"criticalUpper"} |<p>-</p> |`5` |
+|{$FAN_CRIT_STATUS:"failed"} |<p>-</p> |`10` |
+|{$FAN_CRIT_STATUS:"nonRecoverableLower"} |<p>-</p> |`9` |
+|{$FAN_CRIT_STATUS:"nonRecoverableUpper"} |<p>-</p> |`6` |
+|{$FAN_WARN_STATUS:"nonCriticalLower"} |<p>-</p> |`7` |
+|{$FAN_WARN_STATUS:"nonCriticalUpper"} |<p>-</p> |`4` |
+|{$HEALTH_CRIT_STATUS} |<p>-</p> |`5` |
+|{$HEALTH_DISASTER_STATUS} |<p>-</p> |`6` |
+|{$HEALTH_WARN_STATUS} |<p>-</p> |`4` |
+|{$PSU_CRIT_STATUS:"critical"} |<p>-</p> |`5` |
+|{$PSU_CRIT_STATUS:"nonRecoverable"} |<p>-</p> |`6` |
+|{$PSU_WARN_STATUS:"nonCritical"} |<p>-</p> |`4` |
+|{$TEMP_CRIT:"Ambient"} |<p>-</p> |`35` |
+|{$TEMP_CRIT:"CPU"} |<p>-</p> |`75` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT_STATUS} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_DISASTER_STATUS} |<p>-</p> |`6` |
+|{$TEMP_WARN:"Ambient"} |<p>-</p> |`30` |
+|{$TEMP_WARN:"CPU"} |<p>-</p> |`70` |
+|{$TEMP_WARN_STATUS} |<p>-</p> |`4` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+|{$VDISK_CRIT_STATUS:"failed"} |<p>-</p> |`3` |
+|{$VDISK_WARN_STATUS:"degraded"} |<p>-</p> |`4` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature CPU Discovery |<p>Scanning table of Temperature Probe Table IDRAC-MIB-SMIv2::temperatureProbeTable</p> |SNMP |temp.cpu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `.*CPU.*`</p> |
+|Temperature Ambient Discovery |<p>Scanning table of Temperature Probe Table IDRAC-MIB-SMIv2::temperatureProbeTable</p> |SNMP |temp.ambient.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `.*Inlet Temp.*`</p> |
+|PSU Discovery |<p>IDRAC-MIB-SMIv2::powerSupplyTable</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>IDRAC-MIB-SMIv2::coolingDeviceTable</p> |SNMP |fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#TYPE} MATCHES_REGEX `3`</p> |
+|Physical Disk Discovery |<p>IDRAC-MIB-SMIv2::physicalDiskTable</p> |SNMP |physicaldisk.discovery |
+|Virtual Disk Discovery |<p>IDRAC-MIB-SMIv2::virtualDiskTable</p> |SNMP |virtualdisk.discovery |
+|Array Controller Discovery |<p>IDRAC-MIB-SMIv2::controllerTable</p> |SNMP |physicaldisk.arr.discovery |
+|Array Controller Cache Discovery |<p>IDRAC-MIB-SMIv2::batteryTable</p> |SNMP |array.cache.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Disk_arrays |{#CNTLR_NAME}: Disk array controller status |<p>MIB: IDRAC-MIB-SMIv2</p><p>The status of the controller itself without the propagation of any contained component status.</p><p>Possible values:</p><p>1: Other</p><p>2: Unknown</p><p>3: OK</p><p>4: Non-critical</p><p>5: Critical</p><p>6: Non-recoverable</p><p> </p> |SNMP |system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}] |
+|Disk_arrays |{#CNTLR_NAME}: Disk array controller model |<p>MIB: IDRAC-MIB-SMIv2</p><p>The controller's name as represented in Storage Management.</p> |SNMP |system.hw.diskarray.model[controllerName.{#SNMPINDEX}] |
+|Disk_arrays |Battery {#BATTERY_NUM}: Disk array cache controller battery status |<p>MIB: IDRAC-MIB-SMIv2</p><p>Current state of battery.</p><p>Possible values:</p><p>1: The current state could not be determined.</p><p>2: The battery is operating normally.</p><p>3: The battery has failed and needs to be replaced.</p><p>4: The battery temperature is high or charge level is depleting.</p><p>5: The battery is missing or not detected.</p><p>6: The battery is undergoing the re-charge phase.</p><p>7: The battery voltage or charge level is below the threshold.</p><p> </p> |SNMP |system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}] |
+|Fans |{#FAN_DESCR}: Fan status |<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0012.0001.0005 This attribute defines the probe status of the cooling device.</p> |SNMP |sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}] |
+|Fans |{#FAN_DESCR}: Fan speed |<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0012.0001.0006 This attribute defines the reading for a cooling device</p><p>of subtype other than coolingDeviceSubTypeIsDiscrete. When the value</p><p>for coolingDeviceSubType is other than coolingDeviceSubTypeIsDiscrete, the</p><p>value returned for this attribute is the speed in RPM or the OFF/ON value</p><p>of the cooling device. When the value for coolingDeviceSubType is</p><p>coolingDeviceSubTypeIsDiscrete, a value is not returned for this attribute.</p> |SNMP |sensor.fan.speed[coolingDeviceReading.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the model name of the system.</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Operating system |<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the name of the operating system that the hostis running.</p> |SNMP |system.sw.os[systemOSName]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the service tag of the system.</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Firmware version |<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the firmware version of a remote access card.</p> |SNMP |system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Physical_disks |{#DISK_NAME}: Physical disk status |<p>MIB: IDRAC-MIB-SMIv2</p><p>The status of the physical disk itself without the propagation of any contained component status.</p><p>Possible values:</p><p>1: Other</p><p>2: Unknown</p><p>3: OK</p><p>4: Non-critical</p><p>5: Critical</p><p>6: Non-recoverable</p> |SNMP |system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_NAME}: Physical disk serial number |<p>MIB: IDRAC-MIB-SMIv2</p><p>The physical disk's unique identification number from the manufacturer.</p> |SNMP |system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_NAME}: Physical disk S.M.A.R.T. status |<p>MIB: IDRAC-MIB-SMIv2</p><p>Indicates whether the physical disk has received a predictive failure alert.</p> |SNMP |system.hw.physicaldisk.smart_status[physicalDiskSmartAlertIndication.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_NAME}: Physical disk model name |<p>MIB: IDRAC-MIB-SMIv2</p><p>The model number of the physical disk.</p> |SNMP |system.hw.physicaldisk.model[physicalDiskProductID.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_NAME}: Physical disk part number |<p>MIB: IDRAC-MIB-SMIv2</p><p>The part number of the disk.</p> |SNMP |system.hw.physicaldisk.part_number[physicalDiskPartNumber.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_NAME}: Physical disk media type |<p>MIB: IDRAC-MIB-SMIv2</p><p>The media type of the physical disk. Possible Values:</p><p>1: The media type could not be determined.</p><p>2: Hard Disk Drive (HDD).</p><p>3: Solid State Drive (SSD).</p> |SNMP |system.hw.physicaldisk.media_type[physicalDiskMediaType.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_NAME}: Disk size |<p>MIB: IDRAC-MIB-SMIv2</p><p>The size of the physical disk in megabytes.</p> |SNMP |system.hw.physicaldisk.size[physicalDiskCapacityInMB.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p> |
+|Power_supply |{#PSU_DESCR}: Power supply status |<p>MIB: IDRAC-MIB-SMIv2</p><p>0600.0012.0001.0005 This attribute defines the status of the power supply.</p> |SNMP |sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}] |
+|Status |Overall system health status |<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the overall rollup status of all components in the system being monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc.</p> |SNMP |system.status[globalSystemStatus.0] |
+|Temperature |{#SENSOR_LOCALE}: Temperature |<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0020.0001.0006 This attribute defines the reading for a temperature probe of type other than temperatureProbeTypeIsDiscrete. When the value for temperatureProbeType is other than temperatureProbeTypeIsDiscrete,the value returned for this attribute is the temperature that the probeis reading in tenths of degrees Centigrade. When the value for temperatureProbeType is temperatureProbeTypeIsDiscrete, a value is not returned for this attribute.</p> |SNMP |sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p> |
+|Temperature |{#SENSOR_LOCALE}: Temperature status |<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0020.0001.0005 This attribute defines the probe status of the temperature probe.</p> |SNMP |sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_LOCALE}: Temperature |<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0020.0001.0006 This attribute defines the reading for a temperature probe of type other than temperatureProbeTypeIsDiscrete. When the value for temperatureProbeType is other than temperatureProbeTypeIsDiscrete,the value returned for this attribute is the temperature that the probeis reading in tenths of degrees Centigrade. When the value for temperatureProbeType is temperatureProbeTypeIsDiscrete, a value is not returned for this attribute.</p> |SNMP |sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p> |
+|Temperature |{#SENSOR_LOCALE}: Temperature status |<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0020.0001.0005 This attribute defines the probe status of the temperature probe.</p> |SNMP |sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}] |
+|Virtual_disks |Disk {#SNMPVALUE}({#DISK_NAME}): Layout type |<p>MIB: IDRAC-MIB-SMIv2</p><p>The virtual disk's RAID type.</p><p>Possible values:</p><p>1: Not one of the following</p><p>2: RAID-0</p><p>3: RAID-1</p><p>4: RAID-5</p><p>5: RAID-6</p><p>6: RAID-10</p><p>7: RAID-50</p><p>8: RAID-60</p><p>9: Concatenated RAID 1</p><p>10: Concatenated RAID 5</p> |SNMP |system.hw.virtualdisk.layout[virtualDiskLayout.{#SNMPINDEX}] |
+|Virtual_disks |Disk {#SNMPVALUE}({#DISK_NAME}): Current state |<p>MIB: IDRAC-MIB-SMIv2</p><p>The state of the virtual disk when there are progressive operations ongoing.</p><p>Possible values:</p><p>1: There is no active operation running.</p><p>2: The virtual disk configuration has changed. The physical disks included in the virtual disk are being modified to support the new configuration.</p><p>3: A Consistency Check (CC) is being performed on the virtual disk.</p><p>4: The virtual disk is being initialized.</p><p>5: BackGround Initialization (BGI) is being performed on the virtual disk.</p> |SNMP |system.hw.virtualdisk.state[virtualDiskOperationalState.{#SNMPINDEX}] |
+|Virtual_disks |Disk {#SNMPVALUE}({#DISK_NAME}): Read policy |<p>MIB: IDRAC-MIB-SMIv2</p><p>The read policy used by the controller for read operations on this virtual disk.</p><p>Possible values:</p><p>1: No Read Ahead.</p><p>2: Read Ahead.</p><p>3: Adaptive Read Ahead.</p> |SNMP |system.hw.virtualdisk.readpolicy[virtualDiskReadPolicy.{#SNMPINDEX}] |
+|Virtual_disks |Disk {#SNMPVALUE}({#DISK_NAME}): Write policy |<p>MIB: IDRAC-MIB-SMIv2</p><p>The write policy used by the controller for write operations on this virtual disk.</p><p>Possible values:</p><p>1: Write Through.</p><p>2: Write Back.</p><p>3: Force Write Back.</p> |SNMP |system.hw.virtualdisk.writepolicy[virtualDiskWritePolicy.{#SNMPINDEX}] |
+|Virtual_disks |Disk {#SNMPVALUE}({#DISK_NAME}): Disk size |<p>MIB: IDRAC-MIB-SMIv2</p><p>The size of the virtual disk in megabytes.</p> |SNMP |system.hw.virtualdisk.size[virtualDiskSizeInMB.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p> |
+|Virtual_disks |Disk {#SNMPVALUE}({#DISK_NAME}): Status |<p>MIB: IDRAC-MIB-SMIv2</p><p>The current state of this virtual disk (which includes any member physical disks.)</p><p>Possible states:</p><p>1: The current state could not be determined.</p><p>2: The virtual disk is operating normally or optimally.</p><p>3: The virtual disk has encountered a failure. The data on disk is lost or is about to be lost.</p><p>4: The virtual disk encounterd a failure with one or all of the constituent redundant physical disks.</p><p>The data on the virtual disk might no longer be fault tolerant.</p> |SNMP |system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#CNTLR_NAME}: Disk array controller is in unrecoverable state! |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1` |DISASTER | |
+|{#CNTLR_NAME}: Disk array controller is in critical state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"critical"},eq)}=1` |HIGH |<p>**Depends on**:</p><p>- {#CNTLR_NAME}: Disk array controller is in unrecoverable state!</p> |
+|{#CNTLR_NAME}: Disk array controller is in warning state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS:"nonCritical"},eq)}=1` |AVERAGE |<p>**Depends on**:</p><p>- {#CNTLR_NAME}: Disk array controller is in critical state</p><p>- {#CNTLR_NAME}: Disk array controller is in unrecoverable state!</p> |
+|Battery {#BATTERY_NUM}: Disk array cache controller battery is in warning state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!</p> |
+|Battery {#BATTERY_NUM}: Disk array cache controller battery is not in optimal state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS},ne)}=1` |WARNING |<p>**Depends on**:</p><p>- Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!</p><p>- Battery {#BATTERY_NUM}: Disk array cache controller battery is in warning state</p> |
+|Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state! |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|{#FAN_DESCR}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalUpper"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableUpper"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalLower"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableLower"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1` |AVERAGE | |
+|{#FAN_DESCR}: Fan is in warning state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"nonCriticalUpper"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"nonCriticalLower"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#FAN_DESCR}: Fan is in critical state</p> |
+|Operating system description has changed |<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p> |`{TEMPLATE_NAME:system.sw.os[systemOSName].diff()}=1 and {TEMPLATE_NAME:system.sw.os[systemOSName].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Firmware has changed |<p>Firmware version has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#DISK_NAME}: Physical disk failed |<p>Please check physical disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {TEMPLATE_NAME:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1` |HIGH | |
+|{#DISK_NAME}: Physical disk is in warning state |<p>Please check physical disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_WARN_STATUS:"nonCritical"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#DISK_NAME}: Physical disk failed</p> |
+|{#DISK_NAME}: Disk has been replaced (new serial number received) |<p>Disk serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#DISK_NAME}: Physical disk S.M.A.R.T. failed |<p>Disk probably requires replacement.</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.smart_status[physicalDiskSmartAlertIndication.{#SNMPINDEX}].count(#1,{$DISK_SMART_FAIL_STATUS},eq)}=1` |HIGH |<p>**Depends on**:</p><p>- {#DISK_NAME}: Physical disk failed</p> |
+|{#PSU_DESCR}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"nonRecoverable"},eq)}=1` |AVERAGE | |
+|{#PSU_DESCR}: Power supply is in warning state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"nonCritical"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#PSU_DESCR}: Power supply is in critical state</p> |
+|System is in unrecoverable state! |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.status[globalSystemStatus.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1` |HIGH | |
+|System status is in critical state |<p>Please check the device for errors</p> |`{TEMPLATE_NAME:system.status[globalSystemStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1` |HIGH |<p>**Depends on**:</p><p>- System is in unrecoverable state!</p> |
+|System status is in warning state |<p>Please check the device for warnings</p> |`{TEMPLATE_NAME:system.status[globalSystemStatus.0].count(#1,{$HEALTH_WARN_STATUS},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- System is in unrecoverable state!</p><p>- System status is in critical state</p> |
+|{#SENSOR_LOCALE}: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"} or {Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p> |
+|{#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"} or {Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS} or {Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3` |HIGH | |
+|{#SENSOR_LOCALE}: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3` |AVERAGE | |
+|{#SENSOR_LOCALE}: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"} or {Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p> |
+|{#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"} or {Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS} or {Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3` |HIGH | |
+|{#SENSOR_LOCALE}: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3` |AVERAGE | |
+|Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk failed |<p>Please check virtual disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS:"failed"},eq)}=1` |HIGH | |
+|Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk is in warning state |<p>Please check virtual disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}].count(#1,{$VDISK_WARN_STATUS:"degraded"},eq)}=1` |AVERAGE |<p>**Depends on**:</p><p>- Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk failed</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/server/dell_idrac_snmpv2/template_server_dell_idrac_snmpv2.xml b/templates/server/dell_idrac_snmp/template_server_dell_idrac_snmp.xml
index 38f048349ca..f967ee68d28 100644
--- a/templates/server/dell_idrac_snmpv2/template_server_dell_idrac_snmpv2.xml
+++ b/templates/server/dell_idrac_snmp/template_server_dell_idrac_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-04T23:48:14Z</date>
<groups>
<group>
<name>Templates/Server hardware</name>
@@ -9,17 +9,17 @@
</groups>
<templates>
<template>
- <template>Template Server Dell iDRAC SNMPv2</template>
- <name>Template Server Dell iDRAC SNMPv2</name>
+ <template>Template Server Dell iDRAC SNMP</template>
+ <name>Template Server Dell iDRAC SNMP</name>
<description>Template Server iDRAC&#13;
&#13;
MIBs used:&#13;
IDRAC-MIB-SMIv2&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
</templates>
<groups>
@@ -56,8 +56,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Firmware version</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.1.1.8.0</snmp_oid>
<key>system.hw.firmware</key>
<delay>1h</delay>
@@ -90,8 +89,7 @@ This attribute defines the firmware version of a remote access card.</descriptio
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.1.3.12.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -115,8 +113,7 @@ This attribute defines the model name of the system.</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.1.3.2.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -149,8 +146,7 @@ This attribute defines the service tag of the system.</description>
</item>
<item>
<name>Overall system health status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.2.1.0</snmp_oid>
<key>system.status[globalSystemStatus.0]</key>
<delay>30s</delay>
@@ -183,7 +179,7 @@ This attribute defines the overall rollup status of all components in the system
<dependencies>
<dependency>
<name>System is in unrecoverable state!</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.status[globalSystemStatus.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.status[globalSystemStatus.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger>
@@ -196,11 +192,11 @@ This attribute defines the overall rollup status of all components in the system
<dependencies>
<dependency>
<name>System is in unrecoverable state!</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.status[globalSystemStatus.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.status[globalSystemStatus.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
</dependency>
<dependency>
<name>System status is in critical state</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.status[globalSystemStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.status[globalSystemStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger>
@@ -208,8 +204,7 @@ This attribute defines the overall rollup status of all components in the system
</item>
<item>
<name>Operating system</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.1.3.6.0</snmp_oid>
<key>system.sw.os[systemOSName]</key>
<delay>1h</delay>
@@ -245,8 +240,7 @@ This attribute defines the name of the operating system that the hostis running.
<discovery_rules>
<discovery_rule>
<name>Array Controller Cache Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#BATTERY_NUM},1.3.6.1.4.1.674.10892.5.5.1.20.130.15.1.1]</snmp_oid>
<key>array.cache.discovery</key>
<delay>1h</delay>
@@ -254,8 +248,7 @@ This attribute defines the name of the operating system that the hostis running.
<item_prototypes>
<item_prototype>
<name>Battery {#BATTERY_NUM}: Disk array cache controller battery status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.15.1.4.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}]</key>
<history>1w</history>
@@ -288,7 +281,7 @@ Possible values:&#13;
<dependencies>
<dependency>
<name>Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -301,11 +294,11 @@ Possible values:&#13;
<dependencies>
<dependency>
<name>Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1</expression>
</dependency>
<dependency>
<name>Battery {#BATTERY_NUM}: Disk array cache controller battery is in warning state</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -322,8 +315,7 @@ Possible values:&#13;
</discovery_rule>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.674.10892.5.4.700.12.1.5,{#FAN_DESCR},1.3.6.1.4.1.674.10892.5.4.700.12.1.8,{#TYPE},1.3.6.1.4.1.674.10892.5.4.700.12.1.7]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -341,8 +333,7 @@ Possible values:&#13;
<item_prototypes>
<item_prototype>
<name>{#FAN_DESCR}: Fan speed</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.4.700.12.1.6.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.speed[coolingDeviceReading.{#SNMPINDEX}]</key>
<units>rpm</units>
@@ -361,8 +352,7 @@ coolingDeviceSubTypeIsDiscrete, a value is not returned for this attribute.</des
</item_prototype>
<item_prototype>
<name>{#FAN_DESCR}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.4.700.12.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -395,7 +385,7 @@ coolingDeviceSubTypeIsDiscrete, a value is not returned for this attribute.</des
<dependencies>
<dependency>
<name>{#FAN_DESCR}: Fan is in critical state</name>
- <expression>{Template Server Dell iDRAC SNMPv2:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalUpper"},eq)}=1 or {Template Server Dell iDRAC SNMPv2:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableUpper"},eq)}=1 or {Template Server Dell iDRAC SNMPv2:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalLower"},eq)}=1 or {Template Server Dell iDRAC SNMPv2:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableLower"},eq)}=1 or {Template Server Dell iDRAC SNMPv2:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalUpper"},eq)}=1 or {Template Server Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableUpper"},eq)}=1 or {Template Server Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalLower"},eq)}=1 or {Template Server Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableLower"},eq)}=1 or {Template Server Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -405,8 +395,7 @@ coolingDeviceSubTypeIsDiscrete, a value is not returned for this attribute.</des
</discovery_rule>
<discovery_rule>
<name>Array Controller Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.38,{#CNTLR_NAME},1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.79]</snmp_oid>
<key>physicaldisk.arr.discovery</key>
<delay>1h</delay>
@@ -414,8 +403,7 @@ coolingDeviceSubTypeIsDiscrete, a value is not returned for this attribute.</des
<item_prototypes>
<item_prototype>
<name>{#CNTLR_NAME}: Disk array controller model</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.model[controllerName.{#SNMPINDEX}]</key>
<delay>1d</delay>
@@ -431,8 +419,7 @@ The controller's name as represented in Storage Management.</description>
</item_prototype>
<item_prototype>
<name>{#CNTLR_NAME}: Disk array controller status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.38.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}]</key>
<history>1w</history>
@@ -471,7 +458,7 @@ Possible values:&#13;
<dependencies>
<dependency>
<name>{#CNTLR_NAME}: Disk array controller is in unrecoverable state!</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -484,11 +471,11 @@ Possible values:&#13;
<dependencies>
<dependency>
<name>{#CNTLR_NAME}: Disk array controller is in critical state</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"critical"},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"critical"},eq)}=1</expression>
</dependency>
<dependency>
<name>{#CNTLR_NAME}: Disk array controller is in unrecoverable state!</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -498,8 +485,7 @@ Possible values:&#13;
</discovery_rule>
<discovery_rule>
<name>Physical Disk Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.1,{#DISK_NAME},1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.2]</snmp_oid>
<key>physicaldisk.discovery</key>
<delay>1h</delay>
@@ -507,8 +493,7 @@ Possible values:&#13;
<item_prototypes>
<item_prototype>
<name>{#DISK_NAME}: Physical disk media type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.35.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.media_type[physicalDiskMediaType.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -530,8 +515,7 @@ The media type of the physical disk. Possible Values:&#13;
</item_prototype>
<item_prototype>
<name>{#DISK_NAME}: Physical disk model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.6.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.model[physicalDiskProductID.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -548,8 +532,7 @@ The model number of the physical disk.</description>
</item_prototype>
<item_prototype>
<name>{#DISK_NAME}: Physical disk part number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.27.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.part_number[physicalDiskPartNumber.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -566,8 +549,7 @@ The part number of the disk.</description>
</item_prototype>
<item_prototype>
<name>{#DISK_NAME}: Physical disk serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.7.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}]</key>
<delay>1d</delay>
@@ -592,8 +574,7 @@ The physical disk's unique identification number from the manufacturer.</descrip
</item_prototype>
<item_prototype>
<name>{#DISK_NAME}: Disk size</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.11.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.size[physicalDiskCapacityInMB.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -616,8 +597,7 @@ The size of the physical disk in megabytes.</description>
</item_prototype>
<item_prototype>
<name>{#DISK_NAME}: Physical disk S.M.A.R.T. status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.31.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.smart_status[physicalDiskSmartAlertIndication.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -642,7 +622,7 @@ Indicates whether the physical disk has received a predictive failure alert.</de
<dependencies>
<dependency>
<name>{#DISK_NAME}: Physical disk failed</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {Template Server Dell iDRAC SNMPv2:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {Template Server Dell iDRAC SNMP:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -650,8 +630,7 @@ Indicates whether the physical disk has received a predictive failure alert.</de
</item_prototype>
<item_prototype>
<name>{#DISK_NAME}: Physical disk status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.24.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -690,7 +669,7 @@ Possible values:&#13;
<dependencies>
<dependency>
<name>{#DISK_NAME}: Physical disk failed</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {Template Server Dell iDRAC SNMPv2:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {Template Server Dell iDRAC SNMP:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -700,8 +679,7 @@ Possible values:&#13;
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.674.10892.5.4.600.12.1.5,{#PSU_DESCR},1.3.6.1.4.1.674.10892.5.4.600.12.1.8]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -709,8 +687,7 @@ Possible values:&#13;
<item_prototypes>
<item_prototype>
<name>{#PSU_DESCR}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.4.600.12.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -743,7 +720,7 @@ Possible values:&#13;
<dependencies>
<dependency>
<name>{#PSU_DESCR}: Power supply is in critical state</name>
- <expression>{Template Server Dell iDRAC SNMPv2:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {Template Server Dell iDRAC SNMPv2:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"nonRecoverable"},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {Template Server Dell iDRAC SNMP:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"nonRecoverable"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -753,8 +730,7 @@ Possible values:&#13;
</discovery_rule>
<discovery_rule>
<name>Temperature Ambient Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.674.10892.5.4.700.20.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.674.10892.5.4.700.20.1.8]</snmp_oid>
<key>temp.ambient.discovery</key>
<delay>1h</delay>
@@ -772,8 +748,7 @@ Possible values:&#13;
<item_prototypes>
<item_prototype>
<name>{#SENSOR_LOCALE}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.4.700.20.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -792,8 +767,7 @@ Possible values:&#13;
</item_prototype>
<item_prototype>
<name>{#SENSOR_LOCALE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.4.700.20.1.6.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -829,24 +803,24 @@ Possible values:&#13;
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}&#13;
+ <expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
+ <recovery_expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
<name>{#SENSOR_LOCALE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
<description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:"Ambient"}&#13;
+ <expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:"Ambient"}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:"Ambient"}-3</recovery_expression>
+ <recovery_expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:"Ambient"}-3</recovery_expression>
<name>{#SENSOR_LOCALE}: Temperature is above warning threshold: &gt;{$TEMP_WARN:"Ambient"}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
@@ -854,12 +828,12 @@ or&#13;
<dependencies>
<dependency>
<name>{#SENSOR_LOCALE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}&#13;
+ <expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
- <recovery_expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
+ <recovery_expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -867,8 +841,7 @@ or&#13;
</discovery_rule>
<discovery_rule>
<name>Temperature CPU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.674.10892.5.4.700.20.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.674.10892.5.4.700.20.1.8]</snmp_oid>
<key>temp.cpu.discovery</key>
<delay>1h</delay>
@@ -886,8 +859,7 @@ or&#13;
<item_prototypes>
<item_prototype>
<name>{#SENSOR_LOCALE}: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.4.700.20.1.5.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -906,8 +878,7 @@ or&#13;
</item_prototype>
<item_prototype>
<name>{#SENSOR_LOCALE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.4.700.20.1.6.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -943,24 +914,24 @@ or&#13;
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
- <expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}&#13;
+ <expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
+ <recovery_expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
<name>{#SENSOR_LOCALE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"CPU"}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
<description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
</trigger_prototype>
<trigger_prototype>
- <expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:"CPU"}&#13;
+ <expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_WARN:"CPU"}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:"CPU"}-3</recovery_expression>
+ <recovery_expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_WARN:"CPU"}-3</recovery_expression>
<name>{#SENSOR_LOCALE}: Temperature is above warning threshold: &gt;{$TEMP_WARN:"CPU"}</name>
<opdata>Current value: {ITEM.LASTVALUE1}</opdata>
<priority>WARNING</priority>
@@ -968,12 +939,12 @@ or&#13;
<dependencies>
<dependency>
<name>{#SENSOR_LOCALE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"CPU"}</name>
- <expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}&#13;
+ <expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS}&#13;
or&#13;
-{Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
- <recovery_expression>{Template Server Dell iDRAC SNMPv2:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
+{Template Server Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}</expression>
+ <recovery_expression>{Template Server Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -981,8 +952,7 @@ or&#13;
</discovery_rule>
<discovery_rule>
<name>Virtual Disk Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.1,{#DISK_NAME},1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.2]</snmp_oid>
<key>virtualdisk.discovery</key>
<delay>1h</delay>
@@ -990,8 +960,7 @@ or&#13;
<item_prototypes>
<item_prototype>
<name>Disk {#SNMPVALUE}({#DISK_NAME}): Layout type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.13.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.layout[virtualDiskLayout.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -1020,8 +989,7 @@ Possible values:&#13;
</item_prototype>
<item_prototype>
<name>Disk {#SNMPVALUE}({#DISK_NAME}): Read policy</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.11.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.readpolicy[virtualDiskReadPolicy.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -1040,8 +1008,7 @@ Possible values:&#13;
</item_prototype>
<item_prototype>
<name>Disk {#SNMPVALUE}({#DISK_NAME}): Disk size</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.size[virtualDiskSizeInMB.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -1064,8 +1031,7 @@ The size of the virtual disk in megabytes.</description>
</item_prototype>
<item_prototype>
<name>Disk {#SNMPVALUE}({#DISK_NAME}): Current state</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.30.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.state[virtualDiskOperationalState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -1089,8 +1055,7 @@ Possible values:&#13;
</item_prototype>
<item_prototype>
<name>Disk {#SNMPVALUE}({#DISK_NAME}): Status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.4.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -1128,7 +1093,7 @@ The data on the virtual disk might no longer be fault tolerant.</description>
<dependencies>
<dependency>
<name>Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk failed</name>
- <expression>{Template Server Dell iDRAC SNMPv2:system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS:"failed"},eq)}=1</expression>
+ <expression>{Template Server Dell iDRAC SNMP:system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS:"failed"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -1136,8 +1101,7 @@ The data on the virtual disk might no longer be fault tolerant.</description>
</item_prototype>
<item_prototype>
<name>Disk {#SNMPVALUE}({#DISK_NAME}): Write policy</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.10.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.writepolicy[virtualDiskWritePolicy.{#SNMPINDEX}]</key>
<delay>1h</delay>
diff --git a/templates/server/dell_idrac_snmpv2/README.md b/templates/server/dell_idrac_snmpv2/README.md
deleted file mode 100644
index 658f26ceb93..00000000000
--- a/templates/server/dell_idrac_snmpv2/README.md
+++ /dev/null
@@ -1,153 +0,0 @@
-
-# Template Server Dell iDRAC SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-for Dell servers with iDRAC controllers
-http://www.dell.com/support/manuals/us/en/19/dell-openmanage-server-administrator-v8.3/snmp_idrac8/idrac-mib?guid=guid-e686536d-bc8e-4e09-8e8b-de8eb052efee
-Supported systems: http://www.dell.com/support/manuals/us/en/04/dell-openmanage-server-administrator-v8.3/snmp_idrac8/supported-systems?guid=guid-f72b75ba-e686-4e8a-b8c5-ca11c7c21381
-
-This template was tested on:
-
-- iDRAC7, PowerEdge R620
-- iDRAC8, PowerEdge R730xd
-- iDRAC8, PowerEdge R720
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS}|<p>-</p>|`3`|
-|{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS}|<p>-</p>|`2`|
-|{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS}|<p>-</p>|`4`|
-|{$DISK_ARRAY_CRIT_STATUS:"critical"}|<p>-</p>|`5`|
-|{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"}|<p>-</p>|`6`|
-|{$DISK_ARRAY_WARN_STATUS:"nonCritical"}|<p>-</p>|`4`|
-|{$DISK_FAIL_STATUS:"critical"}|<p>-</p>|`5`|
-|{$DISK_FAIL_STATUS:"nonRecoverable"}|<p>-</p>|`6`|
-|{$DISK_SMART_FAIL_STATUS}|<p>-</p>|`1`|
-|{$DISK_WARN_STATUS:"nonCritical"}|<p>-</p>|`4`|
-|{$FAN_CRIT_STATUS:"criticalLower"}|<p>-</p>|`8`|
-|{$FAN_CRIT_STATUS:"criticalUpper"}|<p>-</p>|`5`|
-|{$FAN_CRIT_STATUS:"failed"}|<p>-</p>|`10`|
-|{$FAN_CRIT_STATUS:"nonRecoverableLower"}|<p>-</p>|`9`|
-|{$FAN_CRIT_STATUS:"nonRecoverableUpper"}|<p>-</p>|`6`|
-|{$FAN_WARN_STATUS:"nonCriticalLower"}|<p>-</p>|`7`|
-|{$FAN_WARN_STATUS:"nonCriticalUpper"}|<p>-</p>|`4`|
-|{$HEALTH_CRIT_STATUS}|<p>-</p>|`5`|
-|{$HEALTH_DISASTER_STATUS}|<p>-</p>|`6`|
-|{$HEALTH_WARN_STATUS}|<p>-</p>|`4`|
-|{$PSU_CRIT_STATUS:"critical"}|<p>-</p>|`5`|
-|{$PSU_CRIT_STATUS:"nonRecoverable"}|<p>-</p>|`6`|
-|{$PSU_WARN_STATUS:"nonCritical"}|<p>-</p>|`4`|
-|{$TEMP_CRIT:"Ambient"}|<p>-</p>|`35`|
-|{$TEMP_CRIT:"CPU"}|<p>-</p>|`75`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT_STATUS}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_DISASTER_STATUS}|<p>-</p>|`6`|
-|{$TEMP_WARN:"Ambient"}|<p>-</p>|`30`|
-|{$TEMP_WARN:"CPU"}|<p>-</p>|`70`|
-|{$TEMP_WARN_STATUS}|<p>-</p>|`4`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-|{$VDISK_CRIT_STATUS:"failed"}|<p>-</p>|`3`|
-|{$VDISK_WARN_STATUS:"degraded"}|<p>-</p>|`4`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature CPU Discovery|<p>Scanning table of Temperature Probe Table IDRAC-MIB-SMIv2::temperatureProbeTable</p>|SNMP|temp.cpu.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `.*CPU.*`</p>|
-|Temperature Ambient Discovery|<p>Scanning table of Temperature Probe Table IDRAC-MIB-SMIv2::temperatureProbeTable</p>|SNMP|temp.ambient.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `.*Inlet Temp.*`</p>|
-|PSU Discovery|<p>IDRAC-MIB-SMIv2::powerSupplyTable</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>IDRAC-MIB-SMIv2::coolingDeviceTable</p>|SNMP|fan.discovery<p>**Filter**:</p>AND_OR <p>- A: {#TYPE} MATCHES_REGEX `3`</p>|
-|Physical Disk Discovery|<p>IDRAC-MIB-SMIv2::physicalDiskTable</p>|SNMP|physicaldisk.discovery|
-|Virtual Disk Discovery|<p>IDRAC-MIB-SMIv2::virtualDiskTable</p>|SNMP|virtualdisk.discovery|
-|Array Controller Discovery|<p>IDRAC-MIB-SMIv2::controllerTable</p>|SNMP|physicaldisk.arr.discovery|
-|Array Controller Cache Discovery|<p>IDRAC-MIB-SMIv2::batteryTable</p>|SNMP|array.cache.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Disk_arrays|{#CNTLR_NAME}: Disk array controller status|<p>MIB: IDRAC-MIB-SMIv2</p><p>The status of the controller itself without the propagation of any contained component status.</p><p>Possible values:</p><p>1: Other</p><p>2: Unknown</p><p>3: OK</p><p>4: Non-critical</p><p>5: Critical</p><p>6: Non-recoverable</p><p> </p>|SNMP|system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}]|
-|Disk_arrays|{#CNTLR_NAME}: Disk array controller model|<p>MIB: IDRAC-MIB-SMIv2</p><p>The controller's name as represented in Storage Management.</p>|SNMP|system.hw.diskarray.model[controllerName.{#SNMPINDEX}]|
-|Disk_arrays|Battery {#BATTERY_NUM}: Disk array cache controller battery status|<p>MIB: IDRAC-MIB-SMIv2</p><p>Current state of battery.</p><p>Possible values:</p><p>1: The current state could not be determined.</p><p>2: The battery is operating normally.</p><p>3: The battery has failed and needs to be replaced.</p><p>4: The battery temperature is high or charge level is depleting.</p><p>5: The battery is missing or not detected.</p><p>6: The battery is undergoing the re-charge phase.</p><p>7: The battery voltage or charge level is below the threshold.</p><p> </p>|SNMP|system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}]|
-|Fans|{#FAN_DESCR}: Fan status|<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0012.0001.0005 This attribute defines the probe status of the cooling device.</p>|SNMP|sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}]|
-|Fans|{#FAN_DESCR}: Fan speed|<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0012.0001.0006 This attribute defines the reading for a cooling device</p><p>of subtype other than coolingDeviceSubTypeIsDiscrete. When the value</p><p>for coolingDeviceSubType is other than coolingDeviceSubTypeIsDiscrete, the</p><p>value returned for this attribute is the speed in RPM or the OFF/ON value</p><p>of the cooling device. When the value for coolingDeviceSubType is</p><p>coolingDeviceSubTypeIsDiscrete, a value is not returned for this attribute.</p>|SNMP|sensor.fan.speed[coolingDeviceReading.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the model name of the system.</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Operating system|<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the name of the operating system that the hostis running.</p>|SNMP|system.sw.os[systemOSName]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the service tag of the system.</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Firmware version|<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the firmware version of a remote access card.</p>|SNMP|system.hw.firmware<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Physical_disks|{#DISK_NAME}: Physical disk status|<p>MIB: IDRAC-MIB-SMIv2</p><p>The status of the physical disk itself without the propagation of any contained component status.</p><p>Possible values:</p><p>1: Other</p><p>2: Unknown</p><p>3: OK</p><p>4: Non-critical</p><p>5: Critical</p><p>6: Non-recoverable</p>|SNMP|system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_NAME}: Physical disk serial number|<p>MIB: IDRAC-MIB-SMIv2</p><p>The physical disk's unique identification number from the manufacturer.</p>|SNMP|system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_NAME}: Physical disk S.M.A.R.T. status|<p>MIB: IDRAC-MIB-SMIv2</p><p>Indicates whether the physical disk has received a predictive failure alert.</p>|SNMP|system.hw.physicaldisk.smart_status[physicalDiskSmartAlertIndication.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_NAME}: Physical disk model name|<p>MIB: IDRAC-MIB-SMIv2</p><p>The model number of the physical disk.</p>|SNMP|system.hw.physicaldisk.model[physicalDiskProductID.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_NAME}: Physical disk part number|<p>MIB: IDRAC-MIB-SMIv2</p><p>The part number of the disk.</p>|SNMP|system.hw.physicaldisk.part_number[physicalDiskPartNumber.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_NAME}: Physical disk media type|<p>MIB: IDRAC-MIB-SMIv2</p><p>The media type of the physical disk. Possible Values:</p><p>1: The media type could not be determined.</p><p>2: Hard Disk Drive (HDD).</p><p>3: Solid State Drive (SSD).</p>|SNMP|system.hw.physicaldisk.media_type[physicalDiskMediaType.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_NAME}: Disk size|<p>MIB: IDRAC-MIB-SMIv2</p><p>The size of the physical disk in megabytes.</p>|SNMP|system.hw.physicaldisk.size[physicalDiskCapacityInMB.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p>|
-|Power_supply|{#PSU_DESCR}: Power supply status|<p>MIB: IDRAC-MIB-SMIv2</p><p>0600.0012.0001.0005 This attribute defines the status of the power supply.</p>|SNMP|sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}]|
-|Status|Overall system health status|<p>MIB: IDRAC-MIB-SMIv2</p><p>This attribute defines the overall rollup status of all components in the system being monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc.</p>|SNMP|system.status[globalSystemStatus.0]|
-|Temperature|{#SENSOR_LOCALE}: Temperature|<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0020.0001.0006 This attribute defines the reading for a temperature probe of type other than temperatureProbeTypeIsDiscrete. When the value for temperatureProbeType is other than temperatureProbeTypeIsDiscrete,the value returned for this attribute is the temperature that the probeis reading in tenths of degrees Centigrade. When the value for temperatureProbeType is temperatureProbeTypeIsDiscrete, a value is not returned for this attribute.</p>|SNMP|sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p>|
-|Temperature|{#SENSOR_LOCALE}: Temperature status|<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0020.0001.0005 This attribute defines the probe status of the temperature probe.</p>|SNMP|sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_LOCALE}: Temperature|<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0020.0001.0006 This attribute defines the reading for a temperature probe of type other than temperatureProbeTypeIsDiscrete. When the value for temperatureProbeType is other than temperatureProbeTypeIsDiscrete,the value returned for this attribute is the temperature that the probeis reading in tenths of degrees Centigrade. When the value for temperatureProbeType is temperatureProbeTypeIsDiscrete, a value is not returned for this attribute.</p>|SNMP|sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p>|
-|Temperature|{#SENSOR_LOCALE}: Temperature status|<p>MIB: IDRAC-MIB-SMIv2</p><p>0700.0020.0001.0005 This attribute defines the probe status of the temperature probe.</p>|SNMP|sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}]|
-|Virtual_disks|Disk {#SNMPVALUE}({#DISK_NAME}): Layout type |<p>MIB: IDRAC-MIB-SMIv2</p><p>The virtual disk's RAID type.</p><p>Possible values:</p><p>1: Not one of the following</p><p>2: RAID-0</p><p>3: RAID-1</p><p>4: RAID-5</p><p>5: RAID-6</p><p>6: RAID-10</p><p>7: RAID-50</p><p>8: RAID-60</p><p>9: Concatenated RAID 1</p><p>10: Concatenated RAID 5</p>|SNMP|system.hw.virtualdisk.layout[virtualDiskLayout.{#SNMPINDEX}]|
-|Virtual_disks|Disk {#SNMPVALUE}({#DISK_NAME}): Current state|<p>MIB: IDRAC-MIB-SMIv2</p><p>The state of the virtual disk when there are progressive operations ongoing.</p><p>Possible values:</p><p>1: There is no active operation running.</p><p>2: The virtual disk configuration has changed. The physical disks included in the virtual disk are being modified to support the new configuration.</p><p>3: A Consistency Check (CC) is being performed on the virtual disk.</p><p>4: The virtual disk is being initialized.</p><p>5: BackGround Initialization (BGI) is being performed on the virtual disk.</p>|SNMP|system.hw.virtualdisk.state[virtualDiskOperationalState.{#SNMPINDEX}]|
-|Virtual_disks|Disk {#SNMPVALUE}({#DISK_NAME}): Read policy|<p>MIB: IDRAC-MIB-SMIv2</p><p>The read policy used by the controller for read operations on this virtual disk.</p><p>Possible values:</p><p>1: No Read Ahead.</p><p>2: Read Ahead.</p><p>3: Adaptive Read Ahead.</p>|SNMP|system.hw.virtualdisk.readpolicy[virtualDiskReadPolicy.{#SNMPINDEX}]|
-|Virtual_disks|Disk {#SNMPVALUE}({#DISK_NAME}): Write policy|<p>MIB: IDRAC-MIB-SMIv2</p><p>The write policy used by the controller for write operations on this virtual disk.</p><p>Possible values:</p><p>1: Write Through.</p><p>2: Write Back.</p><p>3: Force Write Back.</p>|SNMP|system.hw.virtualdisk.writepolicy[virtualDiskWritePolicy.{#SNMPINDEX}]|
-|Virtual_disks|Disk {#SNMPVALUE}({#DISK_NAME}): Disk size|<p>MIB: IDRAC-MIB-SMIv2</p><p>The size of the virtual disk in megabytes.</p>|SNMP|system.hw.virtualdisk.size[virtualDiskSizeInMB.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p>|
-|Virtual_disks|Disk {#SNMPVALUE}({#DISK_NAME}): Status|<p>MIB: IDRAC-MIB-SMIv2</p><p>The current state of this virtual disk (which includes any member physical disks.)</p><p>Possible states:</p><p>1: The current state could not be determined.</p><p>2: The virtual disk is operating normally or optimally.</p><p>3: The virtual disk has encountered a failure. The data on disk is lost or is about to be lost.</p><p>4: The virtual disk encounterd a failure with one or all of the constituent redundant physical disks.</p><p>The data on the virtual disk might no longer be fault tolerant.</p>|SNMP|system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#CNTLR_NAME}: Disk array controller is in unrecoverable state!|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1`|DISASTER||
-|{#CNTLR_NAME}: Disk array controller is in critical state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"critical"},eq)}=1`|HIGH|<p>**Depends on**:</p><p>- {#CNTLR_NAME}: Disk array controller is in unrecoverable state!</p>|
-|{#CNTLR_NAME}: Disk array controller is in warning state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS:"nonCritical"},eq)}=1`|AVERAGE|<p>**Depends on**:</p><p>- {#CNTLR_NAME}: Disk array controller is in critical state</p><p>- {#CNTLR_NAME}: Disk array controller is in unrecoverable state!</p>|
-|Battery {#BATTERY_NUM}: Disk array cache controller battery is in warning state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!</p>|
-|Battery {#BATTERY_NUM}: Disk array cache controller battery is not in optimal state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS},ne)}=1`|WARNING|<p>**Depends on**:</p><p>- Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!</p><p>- Battery {#BATTERY_NUM}: Disk array cache controller battery is in warning state</p>|
-|Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1`|AVERAGE||
-|{#FAN_DESCR}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalUpper"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableUpper"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalLower"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableLower"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1`|AVERAGE||
-|{#FAN_DESCR}: Fan is in warning state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"nonCriticalUpper"},eq)}=1 or {TEMPLATE_NAME:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS:"nonCriticalLower"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#FAN_DESCR}: Fan is in critical state</p>|
-|Operating system description has changed|<p>Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.</p>|`{TEMPLATE_NAME:system.sw.os[systemOSName].diff()}=1 and {TEMPLATE_NAME:system.sw.os[systemOSName].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Firmware has changed|<p>Firmware version has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.firmware.diff()}=1 and {TEMPLATE_NAME:system.hw.firmware.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#DISK_NAME}: Physical disk failed|<p>Please check physical disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {TEMPLATE_NAME:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1`|HIGH||
-|{#DISK_NAME}: Physical disk is in warning state|<p>Please check physical disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_WARN_STATUS:"nonCritical"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#DISK_NAME}: Physical disk failed</p>|
-|{#DISK_NAME}: Disk has been replaced (new serial number received)|<p>Disk serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#DISK_NAME}: Physical disk S.M.A.R.T. failed|<p>Disk probably requires replacement.</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.smart_status[physicalDiskSmartAlertIndication.{#SNMPINDEX}].count(#1,{$DISK_SMART_FAIL_STATUS},eq)}=1`|HIGH|<p>**Depends on**:</p><p>- {#DISK_NAME}: Physical disk failed</p>|
-|{#PSU_DESCR}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {TEMPLATE_NAME:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"nonRecoverable"},eq)}=1`|AVERAGE||
-|{#PSU_DESCR}: Power supply is in warning state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS:"nonCritical"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#PSU_DESCR}: Power supply is in critical state</p>|
-|System is in unrecoverable state!|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.status[globalSystemStatus.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1`|HIGH||
-|System status is in critical state|<p>Please check the device for errors</p>|`{TEMPLATE_NAME:system.status[globalSystemStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1`|HIGH|<p>**Depends on**:</p><p>- System is in unrecoverable state!</p>|
-|System status is in warning state|<p>Please check the device for warnings</p>|`{TEMPLATE_NAME:system.status[globalSystemStatus.0].count(#1,{$HEALTH_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- System is in unrecoverable state!</p><p>- System status is in critical state</p>|
-|{#SENSOR_LOCALE}: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"} or {Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p>|
-|{#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"} or {Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS} or {Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3`|HIGH||
-|{#SENSOR_LOCALE}: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3`|AVERAGE||
-|{#SENSOR_LOCALE}: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"} or {Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p>|
-|{#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"} or {Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS} or {Template Server Dell iDRAC SNMPv2:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last(0)}={$TEMP_DISASTER_STATUS}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3`|HIGH||
-|{#SENSOR_LOCALE}: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3`|AVERAGE||
-|Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk failed|<p>Please check virtual disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS:"failed"},eq)}=1`|HIGH||
-|Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk is in warning state|<p>Please check virtual disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}].count(#1,{$VDISK_WARN_STATUS:"degraded"},eq)}=1`|AVERAGE|<p>**Depends on**:</p><p>- Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk failed</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/server/hp_ilo_snmp/README.md b/templates/server/hp_ilo_snmp/README.md
new file mode 100644
index 00000000000..b87021aacd2
--- /dev/null
+++ b/templates/server/hp_ilo_snmp/README.md
@@ -0,0 +1,160 @@
+
+# Template Server HP iLO SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+for HP iLO adapters that support SNMP get. Or via operating system, using SNMP HP subagent
+
+This template was tested on:
+
+- iLo4, HP Proliant G9
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"capacitorFailed"} |<p>-</p> |`7` |
+|{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"failed"} |<p>-</p> |`4` |
+|{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"degraded"} |<p>-</p> |`5` |
+|{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"notPresent"} |<p>-</p> |`6` |
+|{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"} |<p>-</p> |`8` |
+|{$DISK_ARRAY_CACHE_OK_STATUS:"enabled"} |<p>-</p> |`3` |
+|{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModDegradedFailsafeSpeed"} |<p>-</p> |`7` |
+|{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModFlashMemNotAttached"} |<p>-</p> |`6` |
+|{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheReadCacheNotMapped"} |<p>-</p> |`9` |
+|{$DISK_ARRAY_CACHE_WARN_STATUS:"invalid"} |<p>-</p> |`2` |
+|{$DISK_ARRAY_CRIT_STATUS} |<p>-</p> |`4` |
+|{$DISK_ARRAY_WARN_STATUS} |<p>-</p> |`3` |
+|{$DISK_FAIL_STATUS} |<p>-</p> |`3` |
+|{$DISK_SMART_FAIL_STATUS:"replaceDrive"} |<p>-</p> |`3` |
+|{$DISK_SMART_FAIL_STATUS:"replaceDriveSSDWearOut"} |<p>-</p> |`4` |
+|{$DISK_WARN_STATUS} |<p>-</p> |`4` |
+|{$FAN_CRIT_STATUS} |<p>-</p> |`4` |
+|{$FAN_WARN_STATUS} |<p>-</p> |`3` |
+|{$HEALTH_CRIT_STATUS} |<p>-</p> |`4` |
+|{$HEALTH_WARN_STATUS} |<p>-</p> |`3` |
+|{$PSU_CRIT_STATUS} |<p>-</p> |`4` |
+|{$PSU_WARN_STATUS} |<p>-</p> |`3` |
+|{$TEMP_CRIT:"Ambient"} |<p>-</p> |`35` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN:"Ambient"} |<p>-</p> |`30` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+|{$VDISK_CRIT_STATUS} |<p>-</p> |`3` |
+|{$VDISK_OK_STATUS} |<p>-</p> |`2` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable</p> |SNMP |tempDescr.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `(4|8|9|12|13)`</p> |
+|Temperature Discovery Ambient |<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with ambient(11) and 0.1 index filter</p> |SNMP |tempDescr.discovery.ambient<p>**Filter**:</p>AND_OR <p>- B: {#SNMPINDEX} MATCHES_REGEX `0\.1`</p><p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `11`</p> |
+|Temperature Discovery CPU |<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with cpu(6) filter</p> |SNMP |tempDescr.discovery.cpu<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `6`</p> |
+|Temperature Discovery Memory |<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with memory(7) filter</p> |SNMP |tempDescr.discovery.memory<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `7`</p> |
+|Temperature Discovery PSU |<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with powerSupply(10) filter</p> |SNMP |tempDescr.discovery.psu<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `10`</p> |
+|Temperature Discovery I/O |<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with ioBoard(5) filter</p> |SNMP |tempDescr.discovery.io<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `5`</p> |
+|Temperature Discovery System |<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with system(3) filter</p> |SNMP |tempDescr.discovery.io<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `3`</p> |
+|PSU Discovery |<p>CPQHLTH-MIB::cpqHeFltTolPowerSupplyStatus</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>CPQHLTH-MIB::cpqHeFltTolFanCondition</p> |SNMP |fan.discovery |
+|Array Controller Discovery |<p>Scanning table of Array controllers: CPQIDA-MIB::cpqDaCntlrTable</p> |SNMP |array.discovery |
+|Array Controller Cache Discovery |<p>Scanning table of Array controllers: CPQIDA-MIB::cpqDaAccelTable</p> |SNMP |array.cache.discovery |
+|Physical Disk Discovery |<p>Scanning table of physical drive entries CPQIDA-MIB::cpqDaPhyDrvTable.</p> |SNMP |physicalDisk.discovery |
+|Virtual Disk Discovery |<p>CPQIDA-MIB::cpqDaLogDrvTable</p> |SNMP |virtualdisk.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Disk_arrays |{#CNTLR_LOCATION}: Disk array controller status |<p>MIB: CPQIDA-MIB</p><p>This value represents the overall condition of this controller,</p><p>and any associated logical drives,physical drives, and array accelerators.</p> |SNMP |system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}] |
+|Disk_arrays |{#CNTLR_LOCATION}: Disk array controller model |<p>MIB: CPQIDA-MIB</p><p>Array Controller Model. The type of controller card.</p> |SNMP |system.hw.diskarray.model[cpqDaCntlrModel.{#SNMPINDEX}] |
+|Disk_arrays |#{#CACHE_CNTRL_INDEX}: Disk array cache controller status |<p>MIB: CPQIDA-MIB</p><p>Cache Module/Operations Status. This describes the status of the cache module and/or cache operations.</p><p>Note that for some controller models, a cache module board that physically attaches to the controller or chipset may not be an available option.</p> |SNMP |system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}] |
+|Disk_arrays |#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery status |<p>MIB: CPQIDA-MIB</p><p>Cache Module Board Backup Power Status. This monitors the status of each backup power source on the board.</p><p>The backup power source can only recharge when the system has power applied. The type of backup power source used is indicated by cpqDaAccelBackupPowerSource.</p><p>The following values are valid:</p><p>Other (1) Indicates that the instrument agent does not recognize backup power status. You may need to update your software.</p><p>Ok (2) The backup power source is fully charged.</p><p>Recharging (3) The array controller has one or more cache module backup power sources that are recharging.</p><p>Cache module operations such as Battery/Flash Backed Write Cache, Expansion, Extension and Migration are temporarily suspended until the backup power source is fully charged.</p><p>Cache module operations will automatically resume when charging is complete.</p><p>Failed (4) The battery pack is below the sufficient voltage level and has not recharged in 36 hours.</p><p>Your Cache Module board needs to be serviced.</p><p>Degraded (5) The battery is still operating, however, one of the batteries in the pack has failed to recharge properly.</p><p>Your Cache Module board should be serviced as soon as possible.</p><p>NotPresent (6) A backup power source is not present on the cache module board. Some controllers do not have backup power sources.</p><p>Capacitor Failed (7) The flash backed cache module capacitor is below the sufficient voltage level and has not recharged in 10 minutes. Your Cache Module board needs to be serviced.</p><p> </p> |SNMP |system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}] |
+|Fans |Fan {#SNMPINDEX}: Fan status |<p>MIB: CPQHLTH-MIB</p><p>The condition of the fan.</p><p>This value will be one of the following:</p><p>other(1) Fan status detection is not supported by this system or driver.</p><p>ok(2) The fan is operating properly.</p><p>degraded(2) A redundant fan is not operating properly.</p><p>failed(4) A non-redundant fan is not operating properly.</p> |SNMP |sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}] |
+|Inventory |Hardware model name |<p>MIB: CPQSINFO-MIB</p><p>The machine product name.The name of the machine used in this system.</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: CPQSINFO-MIB</p><p>The serial number of the physical system unit. The string will be empty if the system does not report the serial number function.</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Physical_disks |{#DISK_LOCATION}: Physical disk status |<p>MIB: CPQIDA-MIB</p><p>Physical Drive Status. This shows the status of the physical drive. The following values are valid for the physical drive status:</p><p>other (1) Indicates that the instrument agent does not recognize the drive.</p><p>You may need to upgrade your instrument agent and/or driver software.</p><p>ok (2) Indicates the drive is functioning properly.</p><p>failed (3) Indicates that the drive is no longer operating and should be replaced.</p><p>predictiveFailure(4) Indicates that the drive has a predictive failure error and should be replaced.</p> |SNMP |system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_LOCATION}: Physical disk S.M.A.R.T. status |<p>MIB: CPQIDA-MIB</p><p>Physical Drive S.M.A.R.T Status.The following values are defined:</p><p>other(1) The agent is unable to determine if the status of S.M.A.R.T predictive failure monitoring for this drive.</p><p>ok(2) Indicates the drive is functioning properly.</p><p>replaceDrive(3) Indicates that the drive has a S.M.A.R.T predictive failure error and should be replaced.</p> |SNMP |system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_LOCATION}: Physical disk serial number |<p>MIB: CPQIDA-MIB</p><p>Physical Drive Serial Number.</p><p>This is the serial number assigned to the physical drive.</p><p>This value is based upon the serial number as returned by the SCSI inquiry command</p><p>but may have been modified due to space limitations. This can be used for identification purposes.</p> |SNMP |system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_LOCATION}: Physical disk model name |<p>MIB: CPQIDA-MIB</p><p>Physical Drive Model.This is a text description of the physical drive.</p><p>The text that appears depends upon who manufactured the drive and the drive type.</p><p>If a drive fails, note the model to identify the type of drive necessary for replacement.</p><p>If a model number is not present, you may not have properly initialized the drive array to which the physical drive is attached for monitoring.</p> |SNMP |system.hw.physicaldisk.model[cpqDaPhyDrvModel.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_LOCATION}: Physical disk media type |<p>MIB: CPQIDA-MIB</p><p>Drive Array Physical Drive Media Type.The following values are defined:</p><p>other(1) The instrument agent is unable to determine the physical drive’s media type.</p><p>rotatingPlatters(2) The physical drive media is composed of rotating platters.</p><p>solidState(3) The physical drive media is composed of solid state electronics.</p> |SNMP |system.hw.physicaldisk.media_type[cpqDaPhyDrvMediaType.{#SNMPINDEX}] |
+|Physical_disks |{#DISK_LOCATION}: Disk size |<p>MIB: CPQIDA-MIB</p><p>Physical Drive Size in MB.</p><p>This is the size of the physical drive in megabytes.</p><p>This value is calculated using the value 1,048,576 (2^20) as a megabyte.</p><p>Drive manufacturers sometimes use the number 1,000,000 as a megabyte when giving drive capacities so this value may differ</p><p>from the advertised size of a drive. This field is only applicable for controllers which support SCSI drives,</p><p>and therefore is not supported by the IDA or IDA-2 controllers. The field will contain 0xFFFFFFFF if the drive capacity cannot be calculated</p><p>or if the controller does not support SCSI drives.</p> |SNMP |system.hw.physicaldisk.size[cpqDaPhyDrvMediaType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p> |
+|Power_supply |Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply status |<p>MIB: CPQHLTH-MIB</p><p>The condition of the power supply. This value will be one of the following:</p><p>other(1) The status could not be determined or not present.</p><p>ok(2) The power supply is operating normally.</p><p>degraded(3) A temperature sensor, fan or other power supply component is outside of normal operating range.</p><p>failed(4) A power supply component detects a condition that could permanently damage the system.</p> |SNMP |sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}] |
+|Status |Overall system health status |<p>MIB: CPQHLTH-MIB</p><p>The overall condition. This object represents the overall status of the server information represented by this MIB.</p> |SNMP |system.status[cpqHeMibCondition.0] |
+|Temperature |System: Temperature status |<p>MIB: CPQHLTH-MIB</p><p>This value specifies the overall condition of the system's thermal environment.</p><p>This value will be one of the following:</p><p>other(1) Temperature could not be determined.</p><p>ok(2) The temperature sensor is within normal operating range.</p><p>degraded(3) The temperature sensor is outside of normal operating range.</p><p>failed(4) The temperature sensor detects a condition that could permanently damage the system.</p> |SNMP |sensor.temp.status[cpqHeThermalCondition.0] |
+|Temperature |{#SNMPINDEX}: Temperature |<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: {#SNMPINDEX}</p> |SNMP |sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}] |
+|Temperature |{#SNMPINDEX}: Temperature sensor location |<p>MIB: CPQHLTH-MIB</p><p>This specifies the location of the temperature sensor present in the system.</p> |SNMP |sensor.temp.locale[cpqHeTemperatureLocale.{#SNMPINDEX}] |
+|Temperature |Ambient: Temperature |<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: Ambient</p> |SNMP |sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}] |
+|Temperature |CPU-{#SNMPINDEX}: Temperature |<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: CPU-{#SNMPINDEX}</p> |SNMP |sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}] |
+|Temperature |Memory-{#SNMPINDEX}: Temperature |<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: Memory-{#SNMPINDEX}</p> |SNMP |sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}] |
+|Temperature |PSU-{#SNMPINDEX}: Temperature |<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: PSU-{#SNMPINDEX}</p> |SNMP |sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}] |
+|Temperature |I/O-{#SNMPINDEX}: Temperature |<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: I/O-{#SNMPINDEX}</p> |SNMP |sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"] |
+|Temperature |System-{#SNMPINDEX}: Temperature |<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: System-{#SNMPINDEX}</p> |SNMP |sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}] |
+|Virtual_disks |Disk {#SNMPINDEX}({#DISK_NAME}): Status |<p>Logical Drive Status.</p> |SNMP |system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}] |
+|Virtual_disks |Disk {#SNMPINDEX}({#DISK_NAME}): Layout type |<p>Logical Drive Fault Tolerance.</p><p>This shows the fault tolerance mode of the logical drive.</p> |SNMP |system.hw.virtualdisk.layout[cpqDaLogDrvFaultTol.{#SNMPINDEX}] |
+|Virtual_disks |Disk {#SNMPINDEX}({#DISK_NAME}): Disk size |<p>Logical Drive Size.</p><p>This is the size of the logical drive in megabytes. This value</p><p>is calculated using the value 1,048,576 (2^20) as a megabyte.</p><p>Drive manufacturers sometimes use the number 1,000,000 as a</p><p>megabyte when giving drive capacities so this value may</p><p>differ from the advertised size of a drive.</p> |SNMP |system.hw.virtualdisk.size[cpqDaLogDrvSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p> |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#CNTLR_LOCATION}: Disk array controller is in critical state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS},eq)}=1` |HIGH | |
+|{#CNTLR_LOCATION}: Disk array controller is in warning state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS},eq)}=1` |AVERAGE |<p>**Depends on**:</p><p>- {#CNTLR_LOCATION}: Disk array controller is in critical state</p> |
+|#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state! |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1` |AVERAGE | |
+|#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in warning state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"invalid"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModDegradedFailsafeSpeed"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheReadCacheNotMapped"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModFlashMemNotAttached"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- #{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!</p> |
+|#{#CACHE_CNTRL_INDEX}: Disk array cache controller is not in optimal state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_OK_STATUS:"enabled"},ne)}=1` |WARNING |<p>**Depends on**:</p><p>- #{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!</p><p>- #{#CACHE_CNTRL_INDEX}: Disk array cache controller is in warning state</p> |
+|#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in critical state! |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"failed"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"capacitorFailed"},eq)}=1` |AVERAGE | |
+|#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in warning state |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"degraded"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"notPresent"},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- #{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in critical state!</p> |
+|Fan {#SNMPINDEX}: Fan is in critical state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Fan {#SNMPINDEX}: Fan is in warning state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- Fan {#SNMPINDEX}: Fan is in critical state</p> |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#DISK_LOCATION}: Physical disk failed |<p>Please check physical disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS},eq)}=1` |HIGH | |
+|{#DISK_LOCATION}: Physical disk is in warning state |<p>Please check physical disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_WARN_STATUS},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- {#DISK_LOCATION}: Physical disk failed</p> |
+|{#DISK_LOCATION}: Physical disk S.M.A.R.T. failed |<p>Disk probably requires replacement.</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}].count(#1,{$DISK_SMART_FAIL_STATUS:"replaceDrive"},eq)}=1 or {TEMPLATE_NAME:system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}].count(#1,{$DISK_SMART_FAIL_STATUS:"replaceDriveSSDWearOut"},eq)}=1` |HIGH |<p>**Depends on**:</p><p>- {#DISK_LOCATION}: Physical disk failed</p> |
+|{#DISK_LOCATION}: Disk has been replaced (new serial number received) |<p>Disk serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}].strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1` |AVERAGE | |
+|Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in warning state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in critical state</p> |
+|System status is in critical state |<p>Please check the device for errors</p> |`{TEMPLATE_NAME:system.status[cpqHeMibCondition.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1` |HIGH | |
+|System status is in warning state |<p>Please check the device for warnings</p> |`{TEMPLATE_NAME:system.status[cpqHeMibCondition.0].count(#1,{$HEALTH_WARN_STATUS},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- System status is in critical state</p> |
+|{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPINDEX}"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"{#SNMPINDEX}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"{#SNMPINDEX}"}-3` |WARNING |<p>**Depends on**:</p><p>- {#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPINDEX}"}</p> |
+|{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPINDEX}"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPINDEX}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPINDEX}"}-3` |HIGH | |
+|{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPINDEX}"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPINDEX}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPINDEX}"}+3` |AVERAGE | |
+|Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3` |WARNING |<p>**Depends on**:</p><p>- Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p> |
+|Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3` |HIGH | |
+|Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3` |AVERAGE | |
+|CPU-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3` |WARNING |<p>**Depends on**:</p><p>- CPU-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p> |
+|CPU-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3` |HIGH | |
+|CPU-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3` |AVERAGE | |
+|Memory-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"Memory"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Memory"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Memory"}-3` |WARNING |<p>**Depends on**:</p><p>- Memory-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Memory"}</p> |
+|Memory-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Memory"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Memory"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Memory"}-3` |HIGH | |
+|Memory-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"Memory"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Memory"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Memory"}+3` |AVERAGE | |
+|PSU-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"PSU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"PSU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"PSU"}-3` |WARNING |<p>**Depends on**:</p><p>- PSU-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"PSU"}</p> |
+|PSU-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"PSU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"PSU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"PSU"}-3` |HIGH | |
+|PSU-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"PSU"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"PSU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"PSU"}+3` |AVERAGE | |
+|I/O-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"I/O"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].avg(5m)}>{$TEMP_WARN:"I/O"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].max(5m)}<{$TEMP_WARN:"I/O"}-3` |WARNING |<p>**Depends on**:</p><p>- I/O-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"I/O"}</p> |
+|I/O-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"I/O"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].avg(5m)}>{$TEMP_CRIT:"I/O"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].max(5m)}<{$TEMP_CRIT:"I/O"}-3` |HIGH | |
+|I/O-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"I/O"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].avg(5m)}<{$TEMP_CRIT_LOW:"I/O"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].min(5m)}>{$TEMP_CRIT_LOW:"I/O"}+3` |AVERAGE | |
+|System-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"Device"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Device"}-3` |WARNING |<p>**Depends on**:</p><p>- System-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}</p> |
+|System-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Device"}-3` |HIGH | |
+|System-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"Device"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Device"}+3` |AVERAGE | |
+|Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk failed |<p>Please check virtual disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS},eq)}=1` |HIGH | |
+|Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk is not in OK state |<p>Please check virtual disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}].count(#1,{$VDISK_OK_STATUS},ne)}=1` |WARNING |<p>**Depends on**:</p><p>- Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk failed</p> |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/server/hp_ilo_snmpv2/template_server_hp_ilo_snmpv2.xml b/templates/server/hp_ilo_snmp/template_server_hp_ilo_snmp.xml
index 2a66668a4e8..cabf7b8b13e 100644
--- a/templates/server/hp_ilo_snmpv2/template_server_hp_ilo_snmpv2.xml
+++ b/templates/server/hp_ilo_snmp/template_server_hp_ilo_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-04T23:48:15Z</date>
<groups>
<group>
<name>Templates/Server hardware</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Server HP iLO SNMPv2</template>
- <name>Template Server HP iLO SNMPv2</name>
+ <template>Template Server HP iLO SNMP</template>
+ <name>Template Server HP iLO SNMP</name>
<description>Template Server HP iLO&#13;
&#13;
MIBs used:&#13;
@@ -18,10 +18,10 @@ CPQSINFO-MIB&#13;
CPQHLTH-MIB&#13;
CPQIDA-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
</templates>
<groups>
@@ -58,8 +58,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>System: Temperature status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.1.0</snmp_oid>
<key>sensor.temp.status[cpqHeThermalCondition.0]</key>
<delay>3m</delay>
@@ -83,8 +82,7 @@ failed(4) The temperature sensor detects a condition that could permanently da
</item>
<item>
<name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.2.2.4.2.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -108,8 +106,7 @@ The machine product name.The name of the machine used in this system.</descripti
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.2.2.2.1.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -142,8 +139,7 @@ The serial number of the physical system unit. The string will be empty if the s
</item>
<item>
<name>Overall system health status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.1.3.0</snmp_oid>
<key>system.status[cpqHeMibCondition.0]</key>
<delay>30s</delay>
@@ -176,7 +172,7 @@ The overall condition. This object represents the overall status of the server i
<dependencies>
<dependency>
<name>System status is in critical state</name>
- <expression>{Template Server HP iLO SNMPv2:system.status[cpqHeMibCondition.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.status[cpqHeMibCondition.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger>
@@ -186,8 +182,7 @@ The overall condition. This object represents the overall status of the server i
<discovery_rules>
<discovery_rule>
<name>Array Controller Cache Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#CACHE_STATUS},1.3.6.1.4.1.232.3.2.2.2.1.2,{#CACHE_CNTRL_INDEX},1.3.6.1.4.1.232.3.2.2.2.1.1]</snmp_oid>
<key>array.cache.discovery</key>
<delay>1h</delay>
@@ -195,8 +190,7 @@ The overall condition. This object represents the overall status of the server i
<item_prototypes>
<item_prototype>
<name>#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.2.2.1.6.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}]</key>
<history>1w</history>
@@ -247,7 +241,7 @@ Capacitor Failed (7) The flash backed cache module capacitor is below the suffi
<dependencies>
<dependency>
<name>#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in critical state!</name>
- <expression>{Template Server HP iLO SNMPv2:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"failed"},eq)}=1 or {Template Server HP iLO SNMPv2:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"capacitorFailed"},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"failed"},eq)}=1 or {Template Server HP iLO SNMP:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"capacitorFailed"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -255,8 +249,7 @@ Capacitor Failed (7) The flash backed cache module capacitor is below the suffi
</item_prototype>
<item_prototype>
<name>#{#CACHE_CNTRL_INDEX}: Disk array cache controller status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.2.2.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}]</key>
<history>1w</history>
@@ -289,7 +282,7 @@ Note that for some controller models, a cache module board that physically attac
<dependencies>
<dependency>
<name>#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!</name>
- <expression>{Template Server HP iLO SNMPv2:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -302,11 +295,11 @@ Note that for some controller models, a cache module board that physically attac
<dependencies>
<dependency>
<name>#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!</name>
- <expression>{Template Server HP iLO SNMPv2:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1</expression>
</dependency>
<dependency>
<name>#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in warning state</name>
- <expression>{Template Server HP iLO SNMPv2:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"invalid"},eq)}=1 or {Template Server HP iLO SNMPv2:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModDegradedFailsafeSpeed"},eq)}=1 or {Template Server HP iLO SNMPv2:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheReadCacheNotMapped"},eq)}=1 or {Template Server HP iLO SNMPv2:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModFlashMemNotAttached"},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"invalid"},eq)}=1 or {Template Server HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModDegradedFailsafeSpeed"},eq)}=1 or {Template Server HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheReadCacheNotMapped"},eq)}=1 or {Template Server HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModFlashMemNotAttached"},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -316,8 +309,7 @@ Note that for some controller models, a cache module board that physically attac
</discovery_rule>
<discovery_rule>
<name>Array Controller Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.3.2.2.1.1.1,{#CNTLR_SLOT},1.3.6.1.4.1.232.3.2.2.1.1.5,{#CNTLR_LOCATION},1.3.6.1.4.1.232.3.2.2.1.1.20]</snmp_oid>
<key>array.discovery</key>
<delay>1h</delay>
@@ -325,8 +317,7 @@ Note that for some controller models, a cache module board that physically attac
<item_prototypes>
<item_prototype>
<name>{#CNTLR_LOCATION}: Disk array controller model</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.2.1.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.model[cpqDaCntlrModel.{#SNMPINDEX}]</key>
<delay>1d</delay>
@@ -344,8 +335,7 @@ Array Controller Model. The type of controller card.</description>
</item_prototype>
<item_prototype>
<name>{#CNTLR_LOCATION}: Disk array controller status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.2.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}]</key>
<history>1w</history>
@@ -378,7 +368,7 @@ and any associated logical drives,physical drives, and array accelerators.</desc
<dependencies>
<dependency>
<name>{#CNTLR_LOCATION}: Disk array controller is in critical state</name>
- <expression>{Template Server HP iLO SNMPv2:system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -388,8 +378,7 @@ and any associated logical drives,physical drives, and array accelerators.</desc
</discovery_rule>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.6.7.1.9]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -397,8 +386,7 @@ and any associated logical drives,physical drives, and array accelerators.</desc
<item_prototypes>
<item_prototype>
<name>Fan {#SNMPINDEX}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.7.1.9.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -436,7 +424,7 @@ failed(4) A non-redundant fan is not operating properly.</description>
<dependencies>
<dependency>
<name>Fan {#SNMPINDEX}: Fan is in critical state</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -446,8 +434,7 @@ failed(4) A non-redundant fan is not operating properly.</description>
</discovery_rule>
<discovery_rule>
<name>Physical Disk Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.3.2.5.1.1.5,{#DISK_LOCATION},1.3.6.1.4.1.232.3.2.5.1.1.64]</snmp_oid>
<key>physicalDisk.discovery</key>
<delay>1h</delay>
@@ -455,8 +442,7 @@ failed(4) A non-redundant fan is not operating properly.</description>
<item_prototypes>
<item_prototype>
<name>{#DISK_LOCATION}: Physical disk media type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.5.1.1.69.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.media_type[cpqDaPhyDrvMediaType.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -478,8 +464,7 @@ solidState(3) The physical drive media is composed of solid state electronics.<
</item_prototype>
<item_prototype>
<name>{#DISK_LOCATION}: Physical disk model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.5.1.1.3.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.model[cpqDaPhyDrvModel.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -499,8 +484,7 @@ If a model number is not present, you may not have properly initialized the driv
</item_prototype>
<item_prototype>
<name>{#DISK_LOCATION}: Physical disk serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.5.1.1.51.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}]</key>
<delay>1d</delay>
@@ -528,8 +512,7 @@ but may have been modified due to space limitations. This can be used for ident
</item_prototype>
<item_prototype>
<name>{#DISK_LOCATION}: Disk size</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.5.1.1.45.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.size[cpqDaPhyDrvMediaType.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -558,8 +541,7 @@ or if the controller does not support SCSI drives.</description>
</item_prototype>
<item_prototype>
<name>{#DISK_LOCATION}: Physical disk S.M.A.R.T. status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.5.1.1.57.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -587,7 +569,7 @@ replaceDrive(3) Indicates that the drive has a S.M.A.R.T predictive failure er
<dependencies>
<dependency>
<name>{#DISK_LOCATION}: Physical disk failed</name>
- <expression>{Template Server HP iLO SNMPv2:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -595,8 +577,7 @@ replaceDrive(3) Indicates that the drive has a S.M.A.R.T predictive failure er
</item_prototype>
<item_prototype>
<name>{#DISK_LOCATION}: Physical disk status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.5.1.1.6.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -633,7 +614,7 @@ predictiveFailure(4) Indicates that the drive has a predictive failure error an
<dependencies>
<dependency>
<name>{#DISK_LOCATION}: Physical disk failed</name>
- <expression>{Template Server HP iLO SNMPv2:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -643,8 +624,7 @@ predictiveFailure(4) Indicates that the drive has a predictive failure error an
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.9.3.1.5,{#CHASSIS_NUM},1.3.6.1.4.1.232.6.2.9.3.1.1,{#BAY_NUM},1.3.6.1.4.1.232.6.2.9.3.1.2]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -652,8 +632,7 @@ predictiveFailure(4) Indicates that the drive has a predictive failure error an
<item_prototypes>
<item_prototype>
<name>Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.9.3.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -690,7 +669,7 @@ failed(4) A power supply component detects a condition that could permanently
<dependencies>
<dependency>
<name>Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in critical state</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -700,8 +679,7 @@ failed(4) A power supply component detects a condition that could permanently
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.6.8.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.232.6.2.6.8.1.3]</snmp_oid>
<key>tempDescr.discovery</key>
<delay>1h</delay>
@@ -719,8 +697,7 @@ failed(4) A power supply component detects a condition that could permanently
<item_prototypes>
<item_prototype>
<name>{#SNMPINDEX}: Temperature sensor location</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.8.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.locale[cpqHeTemperatureLocale.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -739,8 +716,7 @@ This specifies the location of the temperature sensor present in the system.</de
</item_prototype>
<item_prototype>
<name>{#SNMPINDEX}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.8.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}]</key>
<delay>6m</delay>
@@ -765,8 +741,8 @@ Temperature readings of testpoint: {#SNMPINDEX}</description>
<dependencies>
<dependency>
<name>{#SNMPINDEX}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"{#SNMPINDEX}"}</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"{#SNMPINDEX}"}</expression>
- <recovery_expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"{#SNMPINDEX}"}-3</recovery_expression>
+ <expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"{#SNMPINDEX}"}</expression>
+ <recovery_expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"{#SNMPINDEX}"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -793,8 +769,7 @@ Temperature readings of testpoint: {#SNMPINDEX}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery Ambient</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.6.8.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.232.6.2.6.8.1.3]</snmp_oid>
<key>tempDescr.discovery.ambient</key>
<delay>1h</delay>
@@ -817,8 +792,7 @@ Temperature readings of testpoint: {#SNMPINDEX}</description>
<item_prototypes>
<item_prototype>
<name>Ambient: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.8.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -843,8 +817,8 @@ Temperature readings of testpoint: Ambient</description>
<dependencies>
<dependency>
<name>Ambient: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
- <recovery_expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
+ <expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
+ <recovery_expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -871,8 +845,7 @@ Temperature readings of testpoint: Ambient</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery CPU</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.6.8.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.232.6.2.6.8.1.3]</snmp_oid>
<key>tempDescr.discovery.cpu</key>
<delay>1h</delay>
@@ -890,8 +863,7 @@ Temperature readings of testpoint: Ambient</description>
<item_prototypes>
<item_prototype>
<name>CPU-{#SNMPINDEX}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.8.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -916,8 +888,8 @@ Temperature readings of testpoint: CPU-{#SNMPINDEX}</description>
<dependencies>
<dependency>
<name>CPU-{#SNMPINDEX}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"CPU"}</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
- <recovery_expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
+ <expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
+ <recovery_expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -944,8 +916,7 @@ Temperature readings of testpoint: CPU-{#SNMPINDEX}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery I/O</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.6.8.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.232.6.2.6.8.1.3]</snmp_oid>
<key>tempDescr.discovery.io</key>
<delay>1h</delay>
@@ -963,8 +934,7 @@ Temperature readings of testpoint: CPU-{#SNMPINDEX}</description>
<item_prototypes>
<item_prototype>
<name>I/O-{#SNMPINDEX}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.8.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"]</key>
<delay>6m</delay>
@@ -989,8 +959,8 @@ Temperature readings of testpoint: I/O-{#SNMPINDEX}</description>
<dependencies>
<dependency>
<name>I/O-{#SNMPINDEX}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"I/O"}</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].avg(5m)}&gt;{$TEMP_CRIT:"I/O"}</expression>
- <recovery_expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].max(5m)}&lt;{$TEMP_CRIT:"I/O"}-3</recovery_expression>
+ <expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].avg(5m)}&gt;{$TEMP_CRIT:"I/O"}</expression>
+ <recovery_expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].max(5m)}&lt;{$TEMP_CRIT:"I/O"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -1017,8 +987,7 @@ Temperature readings of testpoint: I/O-{#SNMPINDEX}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery System</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.6.8.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.232.6.2.6.8.1.3]</snmp_oid>
<key>tempDescr.discovery.io</key>
<delay>1h</delay>
@@ -1036,8 +1005,7 @@ Temperature readings of testpoint: I/O-{#SNMPINDEX}</description>
<item_prototypes>
<item_prototype>
<name>System-{#SNMPINDEX}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.8.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}]</key>
<delay>6m</delay>
@@ -1062,8 +1030,8 @@ Temperature readings of testpoint: System-{#SNMPINDEX}</description>
<dependencies>
<dependency>
<name>System-{#SNMPINDEX}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Device"}</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Device"}</expression>
- <recovery_expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Device"}-3</recovery_expression>
+ <expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Device"}</expression>
+ <recovery_expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Device"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -1090,8 +1058,7 @@ Temperature readings of testpoint: System-{#SNMPINDEX}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery Memory</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.6.8.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.232.6.2.6.8.1.3]</snmp_oid>
<key>tempDescr.discovery.memory</key>
<delay>1h</delay>
@@ -1109,8 +1076,7 @@ Temperature readings of testpoint: System-{#SNMPINDEX}</description>
<item_prototypes>
<item_prototype>
<name>Memory-{#SNMPINDEX}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.8.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}]</key>
<delay>6m</delay>
@@ -1135,8 +1101,8 @@ Temperature readings of testpoint: Memory-{#SNMPINDEX}</description>
<dependencies>
<dependency>
<name>Memory-{#SNMPINDEX}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Memory"}</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Memory"}</expression>
- <recovery_expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Memory"}-3</recovery_expression>
+ <expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Memory"}</expression>
+ <recovery_expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Memory"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -1163,8 +1129,7 @@ Temperature readings of testpoint: Memory-{#SNMPINDEX}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery PSU</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.6.2.6.8.1.1,{#SENSOR_LOCALE},1.3.6.1.4.1.232.6.2.6.8.1.3]</snmp_oid>
<key>tempDescr.discovery.psu</key>
<delay>1h</delay>
@@ -1182,8 +1147,7 @@ Temperature readings of testpoint: Memory-{#SNMPINDEX}</description>
<item_prototypes>
<item_prototype>
<name>PSU-{#SNMPINDEX}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.6.2.6.8.1.4.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}]</key>
<delay>6m</delay>
@@ -1208,8 +1172,8 @@ Temperature readings of testpoint: PSU-{#SNMPINDEX}</description>
<dependencies>
<dependency>
<name>PSU-{#SNMPINDEX}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"PSU"}</name>
- <expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"PSU"}</expression>
- <recovery_expression>{Template Server HP iLO SNMPv2:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"PSU"}-3</recovery_expression>
+ <expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"PSU"}</expression>
+ <recovery_expression>{Template Server HP iLO SNMP:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"PSU"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -1236,8 +1200,7 @@ Temperature readings of testpoint: PSU-{#SNMPINDEX}</description>
</discovery_rule>
<discovery_rule>
<name>Virtual Disk Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.232.3.2.3.1.1.2,{#DISK_NAME},1.3.6.1.4.1.232.3.2.3.1.1.14]</snmp_oid>
<key>virtualdisk.discovery</key>
<delay>1h</delay>
@@ -1245,8 +1208,7 @@ Temperature readings of testpoint: PSU-{#SNMPINDEX}</description>
<item_prototypes>
<item_prototype>
<name>Disk {#SNMPINDEX}({#DISK_NAME}): Layout type</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.3.1.1.3.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.layout[cpqDaLogDrvFaultTol.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -1264,8 +1226,7 @@ This shows the fault tolerance mode of the logical drive.</description>
</item_prototype>
<item_prototype>
<name>Disk {#SNMPINDEX}({#DISK_NAME}): Disk size</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.3.1.1.9.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.size[cpqDaLogDrvSize.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -1292,8 +1253,7 @@ differ from the advertised size of a drive.</description>
</item_prototype>
<item_prototype>
<name>Disk {#SNMPINDEX}({#DISK_NAME}): Status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.232.3.2.3.1.1.4.{#SNMPINDEX}</snmp_oid>
<key>system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -1324,7 +1284,7 @@ differ from the advertised size of a drive.</description>
<dependencies>
<dependency>
<name>Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk failed</name>
- <expression>{Template Server HP iLO SNMPv2:system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server HP iLO SNMP:system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
diff --git a/templates/server/hp_ilo_snmpv2/README.md b/templates/server/hp_ilo_snmpv2/README.md
deleted file mode 100644
index c6f69679243..00000000000
--- a/templates/server/hp_ilo_snmpv2/README.md
+++ /dev/null
@@ -1,160 +0,0 @@
-
-# Template Server HP iLO SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-for HP iLO adapters that support SNMP get. Or via operating system, using SNMP HP subagent
-
-This template was tested on:
-
-- iLo4, HP Proliant G9
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"capacitorFailed"}|<p>-</p>|`7`|
-|{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"failed"}|<p>-</p>|`4`|
-|{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"degraded"}|<p>-</p>|`5`|
-|{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"notPresent"}|<p>-</p>|`6`|
-|{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"}|<p>-</p>|`8`|
-|{$DISK_ARRAY_CACHE_OK_STATUS:"enabled"}|<p>-</p>|`3`|
-|{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModDegradedFailsafeSpeed"}|<p>-</p>|`7`|
-|{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModFlashMemNotAttached"}|<p>-</p>|`6`|
-|{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheReadCacheNotMapped"}|<p>-</p>|`9`|
-|{$DISK_ARRAY_CACHE_WARN_STATUS:"invalid"}|<p>-</p>|`2`|
-|{$DISK_ARRAY_CRIT_STATUS}|<p>-</p>|`4`|
-|{$DISK_ARRAY_WARN_STATUS}|<p>-</p>|`3`|
-|{$DISK_FAIL_STATUS}|<p>-</p>|`3`|
-|{$DISK_SMART_FAIL_STATUS:"replaceDrive"}|<p>-</p>|`3`|
-|{$DISK_SMART_FAIL_STATUS:"replaceDriveSSDWearOut"}|<p>-</p>|`4`|
-|{$DISK_WARN_STATUS}|<p>-</p>|`4`|
-|{$FAN_CRIT_STATUS}|<p>-</p>|`4`|
-|{$FAN_WARN_STATUS}|<p>-</p>|`3`|
-|{$HEALTH_CRIT_STATUS}|<p>-</p>|`4`|
-|{$HEALTH_WARN_STATUS}|<p>-</p>|`3`|
-|{$PSU_CRIT_STATUS}|<p>-</p>|`4`|
-|{$PSU_WARN_STATUS}|<p>-</p>|`3`|
-|{$TEMP_CRIT:"Ambient"}|<p>-</p>|`35`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN:"Ambient"}|<p>-</p>|`30`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-|{$VDISK_CRIT_STATUS}|<p>-</p>|`3`|
-|{$VDISK_OK_STATUS}|<p>-</p>|`2`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable</p>|SNMP|tempDescr.discovery<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `(4|8|9|12|13)`</p>|
-|Temperature Discovery Ambient|<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with ambient(11) and 0.1 index filter</p>|SNMP|tempDescr.discovery.ambient<p>**Filter**:</p>AND_OR <p>- B: {#SNMPINDEX} MATCHES_REGEX `0\.1`</p><p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `11`</p>|
-|Temperature Discovery CPU|<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with cpu(6) filter</p>|SNMP|tempDescr.discovery.cpu<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `6`</p>|
-|Temperature Discovery Memory|<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with memory(7) filter</p>|SNMP|tempDescr.discovery.memory<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `7`</p>|
-|Temperature Discovery PSU|<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with powerSupply(10) filter</p>|SNMP|tempDescr.discovery.psu<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `10`</p>|
-|Temperature Discovery I/O|<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with ioBoard(5) filter</p>|SNMP|tempDescr.discovery.io<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `5`</p>|
-|Temperature Discovery System|<p>Scanning table of Temperature Sensor Entries: CPQHLTH-MIB::cpqHeTemperatureTable with system(3) filter</p>|SNMP|tempDescr.discovery.io<p>**Filter**:</p>AND_OR <p>- A: {#SENSOR_LOCALE} MATCHES_REGEX `3`</p>|
-|PSU Discovery|<p>CPQHLTH-MIB::cpqHeFltTolPowerSupplyStatus</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>CPQHLTH-MIB::cpqHeFltTolFanCondition</p>|SNMP|fan.discovery|
-|Array Controller Discovery|<p>Scanning table of Array controllers: CPQIDA-MIB::cpqDaCntlrTable</p>|SNMP|array.discovery|
-|Array Controller Cache Discovery|<p>Scanning table of Array controllers: CPQIDA-MIB::cpqDaAccelTable</p>|SNMP|array.cache.discovery|
-|Physical Disk Discovery|<p>Scanning table of physical drive entries CPQIDA-MIB::cpqDaPhyDrvTable.</p>|SNMP|physicalDisk.discovery|
-|Virtual Disk Discovery|<p>CPQIDA-MIB::cpqDaLogDrvTable</p>|SNMP|virtualdisk.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Disk_arrays|{#CNTLR_LOCATION}: Disk array controller status|<p>MIB: CPQIDA-MIB</p><p>This value represents the overall condition of this controller,</p><p>and any associated logical drives,physical drives, and array accelerators.</p>|SNMP|system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}]|
-|Disk_arrays|{#CNTLR_LOCATION}: Disk array controller model|<p>MIB: CPQIDA-MIB</p><p>Array Controller Model. The type of controller card.</p>|SNMP|system.hw.diskarray.model[cpqDaCntlrModel.{#SNMPINDEX}]|
-|Disk_arrays|#{#CACHE_CNTRL_INDEX}: Disk array cache controller status|<p>MIB: CPQIDA-MIB</p><p>Cache Module/Operations Status. This describes the status of the cache module and/or cache operations.</p><p>Note that for some controller models, a cache module board that physically attaches to the controller or chipset may not be an available option.</p>|SNMP|system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}]|
-|Disk_arrays|#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery status|<p>MIB: CPQIDA-MIB</p><p>Cache Module Board Backup Power Status. This monitors the status of each backup power source on the board.</p><p>The backup power source can only recharge when the system has power applied. The type of backup power source used is indicated by cpqDaAccelBackupPowerSource.</p><p>The following values are valid:</p><p>Other (1) Indicates that the instrument agent does not recognize backup power status. You may need to update your software.</p><p>Ok (2) The backup power source is fully charged.</p><p>Recharging (3) The array controller has one or more cache module backup power sources that are recharging.</p><p>Cache module operations such as Battery/Flash Backed Write Cache, Expansion, Extension and Migration are temporarily suspended until the backup power source is fully charged.</p><p>Cache module operations will automatically resume when charging is complete.</p><p>Failed (4) The battery pack is below the sufficient voltage level and has not recharged in 36 hours.</p><p>Your Cache Module board needs to be serviced.</p><p>Degraded (5) The battery is still operating, however, one of the batteries in the pack has failed to recharge properly.</p><p>Your Cache Module board should be serviced as soon as possible.</p><p>NotPresent (6) A backup power source is not present on the cache module board. Some controllers do not have backup power sources.</p><p>Capacitor Failed (7) The flash backed cache module capacitor is below the sufficient voltage level and has not recharged in 10 minutes. Your Cache Module board needs to be serviced.</p><p> </p>|SNMP|system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}]|
-|Fans|Fan {#SNMPINDEX}: Fan status|<p>MIB: CPQHLTH-MIB</p><p>The condition of the fan.</p><p>This value will be one of the following:</p><p>other(1) Fan status detection is not supported by this system or driver.</p><p>ok(2) The fan is operating properly.</p><p>degraded(2) A redundant fan is not operating properly.</p><p>failed(4) A non-redundant fan is not operating properly.</p>|SNMP|sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}]|
-|Inventory|Hardware model name|<p>MIB: CPQSINFO-MIB</p><p>The machine product name.The name of the machine used in this system.</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: CPQSINFO-MIB</p><p>The serial number of the physical system unit. The string will be empty if the system does not report the serial number function.</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Physical_disks|{#DISK_LOCATION}: Physical disk status|<p>MIB: CPQIDA-MIB</p><p>Physical Drive Status. This shows the status of the physical drive. The following values are valid for the physical drive status:</p><p>other (1) Indicates that the instrument agent does not recognize the drive.</p><p>You may need to upgrade your instrument agent and/or driver software.</p><p>ok (2) Indicates the drive is functioning properly.</p><p>failed (3) Indicates that the drive is no longer operating and should be replaced.</p><p>predictiveFailure(4) Indicates that the drive has a predictive failure error and should be replaced.</p>|SNMP|system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_LOCATION}: Physical disk S.M.A.R.T. status|<p>MIB: CPQIDA-MIB</p><p>Physical Drive S.M.A.R.T Status.The following values are defined:</p><p>other(1) The agent is unable to determine if the status of S.M.A.R.T predictive failure monitoring for this drive.</p><p>ok(2) Indicates the drive is functioning properly.</p><p>replaceDrive(3) Indicates that the drive has a S.M.A.R.T predictive failure error and should be replaced.</p>|SNMP|system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_LOCATION}: Physical disk serial number|<p>MIB: CPQIDA-MIB</p><p>Physical Drive Serial Number.</p><p>This is the serial number assigned to the physical drive.</p><p>This value is based upon the serial number as returned by the SCSI inquiry command</p><p>but may have been modified due to space limitations. This can be used for identification purposes.</p>|SNMP|system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_LOCATION}: Physical disk model name|<p>MIB: CPQIDA-MIB</p><p>Physical Drive Model.This is a text description of the physical drive.</p><p>The text that appears depends upon who manufactured the drive and the drive type.</p><p>If a drive fails, note the model to identify the type of drive necessary for replacement.</p><p>If a model number is not present, you may not have properly initialized the drive array to which the physical drive is attached for monitoring.</p>|SNMP|system.hw.physicaldisk.model[cpqDaPhyDrvModel.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_LOCATION}: Physical disk media type|<p>MIB: CPQIDA-MIB</p><p>Drive Array Physical Drive Media Type.The following values are defined:</p><p>other(1) The instrument agent is unable to determine the physical drive’s media type.</p><p>rotatingPlatters(2) The physical drive media is composed of rotating platters.</p><p>solidState(3) The physical drive media is composed of solid state electronics.</p>|SNMP|system.hw.physicaldisk.media_type[cpqDaPhyDrvMediaType.{#SNMPINDEX}]|
-|Physical_disks|{#DISK_LOCATION}: Disk size|<p>MIB: CPQIDA-MIB</p><p>Physical Drive Size in MB.</p><p>This is the size of the physical drive in megabytes.</p><p>This value is calculated using the value 1,048,576 (2^20) as a megabyte.</p><p>Drive manufacturers sometimes use the number 1,000,000 as a megabyte when giving drive capacities so this value may differ</p><p>from the advertised size of a drive. This field is only applicable for controllers which support SCSI drives,</p><p>and therefore is not supported by the IDA or IDA-2 controllers. The field will contain 0xFFFFFFFF if the drive capacity cannot be calculated</p><p>or if the controller does not support SCSI drives.</p>|SNMP|system.hw.physicaldisk.size[cpqDaPhyDrvMediaType.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p>|
-|Power_supply|Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply status|<p>MIB: CPQHLTH-MIB</p><p>The condition of the power supply. This value will be one of the following:</p><p>other(1) The status could not be determined or not present.</p><p>ok(2) The power supply is operating normally.</p><p>degraded(3) A temperature sensor, fan or other power supply component is outside of normal operating range.</p><p>failed(4) A power supply component detects a condition that could permanently damage the system.</p>|SNMP|sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}]|
-|Status|Overall system health status|<p>MIB: CPQHLTH-MIB</p><p>The overall condition. This object represents the overall status of the server information represented by this MIB.</p>|SNMP|system.status[cpqHeMibCondition.0]|
-|Temperature|System: Temperature status|<p>MIB: CPQHLTH-MIB</p><p>This value specifies the overall condition of the system's thermal environment.</p><p>This value will be one of the following:</p><p>other(1) Temperature could not be determined.</p><p>ok(2) The temperature sensor is within normal operating range.</p><p>degraded(3) The temperature sensor is outside of normal operating range.</p><p>failed(4) The temperature sensor detects a condition that could permanently damage the system.</p>|SNMP|sensor.temp.status[cpqHeThermalCondition.0]|
-|Temperature|{#SNMPINDEX}: Temperature|<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: {#SNMPINDEX}</p>|SNMP|sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}]|
-|Temperature|{#SNMPINDEX}: Temperature sensor location|<p>MIB: CPQHLTH-MIB</p><p>This specifies the location of the temperature sensor present in the system.</p>|SNMP|sensor.temp.locale[cpqHeTemperatureLocale.{#SNMPINDEX}]|
-|Temperature|Ambient: Temperature|<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: Ambient</p>|SNMP|sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}]|
-|Temperature|CPU-{#SNMPINDEX}: Temperature|<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: CPU-{#SNMPINDEX}</p>|SNMP|sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}]|
-|Temperature|Memory-{#SNMPINDEX}: Temperature|<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: Memory-{#SNMPINDEX}</p>|SNMP|sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}]|
-|Temperature|PSU-{#SNMPINDEX}: Temperature|<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: PSU-{#SNMPINDEX}</p>|SNMP|sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}]|
-|Temperature|I/O-{#SNMPINDEX}: Temperature|<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: I/O-{#SNMPINDEX}</p>|SNMP|sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"]|
-|Temperature|System-{#SNMPINDEX}: Temperature|<p>MIB: CPQHLTH-MIB</p><p>Temperature readings of testpoint: System-{#SNMPINDEX}</p>|SNMP|sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}]|
-|Virtual_disks|Disk {#SNMPINDEX}({#DISK_NAME}): Status|<p>Logical Drive Status.</p>|SNMP|system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}]|
-|Virtual_disks|Disk {#SNMPINDEX}({#DISK_NAME}): Layout type |<p>Logical Drive Fault Tolerance.</p><p>This shows the fault tolerance mode of the logical drive.</p>|SNMP|system.hw.virtualdisk.layout[cpqDaLogDrvFaultTol.{#SNMPINDEX}]|
-|Virtual_disks|Disk {#SNMPINDEX}({#DISK_NAME}): Disk size|<p>Logical Drive Size.</p><p>This is the size of the logical drive in megabytes. This value</p><p>is calculated using the value 1,048,576 (2^20) as a megabyte.</p><p>Drive manufacturers sometimes use the number 1,000,000 as a</p><p>megabyte when giving drive capacities so this value may</p><p>differ from the advertised size of a drive.</p>|SNMP|system.hw.virtualdisk.size[cpqDaLogDrvSize.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `1048576`</p>|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#CNTLR_LOCATION}: Disk array controller is in critical state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS},eq)}=1`|HIGH||
-|{#CNTLR_LOCATION}: Disk array controller is in warning state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS},eq)}=1`|AVERAGE|<p>**Depends on**:</p><p>- {#CNTLR_LOCATION}: Disk array controller is in critical state</p>|
-|#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1`|AVERAGE||
-|#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in warning state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"invalid"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModDegradedFailsafeSpeed"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheReadCacheNotMapped"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModFlashMemNotAttached"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- #{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!</p>|
-|#{#CACHE_CNTRL_INDEX}: Disk array cache controller is not in optimal state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_OK_STATUS:"enabled"},ne)}=1`|WARNING|<p>**Depends on**:</p><p>- #{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!</p><p>- #{#CACHE_CNTRL_INDEX}: Disk array cache controller is in warning state</p>|
-|#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in critical state!|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"failed"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"capacitorFailed"},eq)}=1`|AVERAGE||
-|#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in warning state|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"degraded"},eq)}=1 or {TEMPLATE_NAME:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"notPresent"},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- #{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in critical state!</p>|
-|Fan {#SNMPINDEX}: Fan is in critical state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Fan {#SNMPINDEX}: Fan is in warning state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}].count(#1,{$FAN_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- Fan {#SNMPINDEX}: Fan is in critical state</p>|
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#DISK_LOCATION}: Physical disk failed|<p>Please check physical disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS},eq)}=1`|HIGH||
-|{#DISK_LOCATION}: Physical disk is in warning state|<p>Please check physical disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- {#DISK_LOCATION}: Physical disk failed</p>|
-|{#DISK_LOCATION}: Physical disk S.M.A.R.T. failed|<p>Disk probably requires replacement.</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}].count(#1,{$DISK_SMART_FAIL_STATUS:"replaceDrive"},eq)}=1 or {TEMPLATE_NAME:system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}].count(#1,{$DISK_SMART_FAIL_STATUS:"replaceDriveSSDWearOut"},eq)}=1`|HIGH|<p>**Depends on**:</p><p>- {#DISK_LOCATION}: Physical disk failed</p>|
-|{#DISK_LOCATION}: Disk has been replaced (new serial number received)|<p>Disk serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}].diff()}=1 and {TEMPLATE_NAME:system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}].strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in critical state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1`|AVERAGE||
-|Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in warning state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}].count(#1,{$PSU_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in critical state</p>|
-|System status is in critical state|<p>Please check the device for errors</p>|`{TEMPLATE_NAME:system.status[cpqHeMibCondition.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1`|HIGH||
-|System status is in warning state|<p>Please check the device for warnings</p>|`{TEMPLATE_NAME:system.status[cpqHeMibCondition.0].count(#1,{$HEALTH_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- System status is in critical state</p>|
-|{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPINDEX}"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"{#SNMPINDEX}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"{#SNMPINDEX}"}-3`|WARNING|<p>**Depends on**:</p><p>- {#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPINDEX}"}</p>|
-|{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPINDEX}"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPINDEX}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPINDEX}"}-3`|HIGH||
-|{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPINDEX}"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPINDEX}"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPINDEX}"}+3`|AVERAGE||
-|Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3`|WARNING|<p>**Depends on**:</p><p>- Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p>|
-|Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3`|HIGH||
-|Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Ambient.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3`|AVERAGE||
-|CPU-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3`|WARNING|<p>**Depends on**:</p><p>- CPU-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p>|
-|CPU-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3`|HIGH||
-|CPU-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.CPU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3`|AVERAGE||
-|Memory-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"Memory"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Memory"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Memory"}-3`|WARNING|<p>**Depends on**:</p><p>- Memory-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Memory"}</p>|
-|Memory-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Memory"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Memory"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Memory"}-3`|HIGH||
-|Memory-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"Memory"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Memory"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.Memory.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Memory"}+3`|AVERAGE||
-|PSU-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"PSU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"PSU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"PSU"}-3`|WARNING|<p>**Depends on**:</p><p>- PSU-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"PSU"}</p>|
-|PSU-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"PSU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"PSU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"PSU"}-3`|HIGH||
-|PSU-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"PSU"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"PSU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.PSU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"PSU"}+3`|AVERAGE||
-|I/O-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"I/O"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].avg(5m)}>{$TEMP_WARN:"I/O"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].max(5m)}<{$TEMP_WARN:"I/O"}-3`|WARNING|<p>**Depends on**:</p><p>- I/O-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"I/O"}</p>|
-|I/O-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"I/O"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].avg(5m)}>{$TEMP_CRIT:"I/O"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].max(5m)}<{$TEMP_CRIT:"I/O"}-3`|HIGH||
-|I/O-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"I/O"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].avg(5m)}<{$TEMP_CRIT_LOW:"I/O"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius."I/O.{#SNMPINDEX}"].min(5m)}>{$TEMP_CRIT_LOW:"I/O"}+3`|AVERAGE||
-|System-{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"Device"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Device"}-3`|WARNING|<p>**Depends on**:</p><p>- System-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}</p>|
-|System-{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Device"}-3`|HIGH||
-|System-{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"Device"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Device"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[cpqHeTemperatureCelsius.System.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Device"}+3`|AVERAGE||
-|Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk failed|<p>Please check virtual disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS},eq)}=1`|HIGH||
-|Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk is not in OK state|<p>Please check virtual disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}].count(#1,{$VDISK_OK_STATUS},ne)}=1`|WARNING|<p>**Depends on**:</p><p>- Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk failed</p>|
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
diff --git a/templates/server/ibm_imm_snmp/README.md b/templates/server/ibm_imm_snmp/README.md
new file mode 100644
index 00000000000..1bc167785c9
--- /dev/null
+++ b/templates/server/ibm_imm_snmp/README.md
@@ -0,0 +1,115 @@
+
+# Template Server IBM IMM SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+for IMM2 and IMM1 IBM serverX hardware
+
+This template was tested on:
+
+- IBM System x3550 M2 with IMM1
+- IBM x3250M3 with IMM1
+- IBM x3550M5 with IMM2
+- System x3550 M3 with IMM1
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$DISK_OK_STATUS} |<p>-</p> |`Normal` |
+|{$FAN_OK_STATUS} |<p>-</p> |`Normal` |
+|{$HEALTH_CRIT_STATUS} |<p>-</p> |`2` |
+|{$HEALTH_DISASTER_STATUS} |<p>-</p> |`0` |
+|{$HEALTH_WARN_STATUS} |<p>-</p> |`4` |
+|{$PSU_OK_STATUS} |<p>-</p> |`Normal` |
+|{$TEMP_CRIT:"Ambient"} |<p>-</p> |`35` |
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN:"Ambient"} |<p>-</p> |`30` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>Scanning IMM-MIB::tempTable</p> |SNMP |tempDescr.discovery<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `(DIMM|PSU|PCH|RAID|RR|PCI).*`</p> |
+|Temperature Discovery Ambient |<p>Scanning IMM-MIB::tempTable with Ambient filter</p> |SNMP |tempDescr.discovery.ambient<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `Ambient.*`</p> |
+|Temperature Discovery CPU |<p>Scanning IMM-MIB::tempTable with CPU filter</p> |SNMP |tempDescr.discovery.cpu<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `CPU [0-9]* Temp`</p> |
+|PSU Discovery |<p>IMM-MIB::powerFruName</p> |SNMP |psu.discovery |
+|FAN Discovery |<p>IMM-MIB::fanDescr</p> |SNMP |fan.discovery |
+|Physical Disk Discovery |<p>-</p> |SNMP |physicalDisk.discovery |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Fans |{#FAN_DESCR}: Fan status |<p>MIB: IMM-MIB</p><p>A description of the fan component status.</p> |SNMP |sensor.fan.status[fanHealthStatus.{#SNMPINDEX}] |
+|Fans |{#FAN_DESCR}: Fan speed, % |<p>MIB: IMM-MIB</p><p>Fan speed expressed in percent(%) of maximum RPM.</p><p>An octet string expressed as 'ddd% of maximum' where:d is a decimal digit or blank space for a leading zero.</p><p>If the fan is determined not to be running or the fan speed cannot be determined, the string will indicate 'Offline'.</p> |SNMP |sensor.fan.speed.percentage[fanSpeed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- REGEX: `(\d{1,3}) *%( of maximum)? \1`</p> |
+|Inventory |Hardware model name |<p>MIB: IMM-MIB</p> |SNMP |system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Inventory |Hardware serial number |<p>MIB: IMM-MIB</p><p>Machine serial number VPD information</p> |SNMP |system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> |
+|Physical_disks |{#SNMPINDEX}: Physical disk status |<p>MIB: IMM-MIB</p> |SNMP |system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}] |
+|Physical_disks |{#SNMPINDEX}: Physical disk part number |<p>MIB: IMM-MIB</p><p>disk module FRU name.</p> |SNMP |system.hw.physicaldisk.part_number[diskFruName.{#SNMPINDEX}] |
+|Power_supply |{#PSU_DESCR}: Power supply status |<p>MIB: IMM-MIB</p><p>A description of the power module status.</p> |SNMP |sensor.psu.status[powerHealthStatus.{#SNMPINDEX}] |
+|Status |Overall system health status |<p>MIB: IMM-MIB</p><p>Indicates status of system health for the system in which the IMM resides. Value of 'nonRecoverable' indicates a severe error has occurred and the system may not be functioning. A value of 'critical' indicates that a error has occurred but the system is currently functioning properly. A value of 'nonCritical' indicates that a condition has occurred that may change the state of the system in the future but currently the system is working properly. A value of 'normal' indicates that the system is operating normally.</p> |SNMP |system.status[systemHealthStat.0] |
+|Temperature |{#SNMPVALUE}: Temperature |<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: {#SNMPVALUE}</p> |SNMP |sensor.temp.value[tempReading.{#SNMPINDEX}] |
+|Temperature |Ambient: Temperature |<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: Ambient</p> |SNMP |sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}] |
+|Temperature |CPU: Temperature |<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: CPU</p> |SNMP |sensor.temp.value[tempReading.CPU.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#FAN_DESCR}: Fan is not in normal state |<p>Please check the fan unit</p> |`{TEMPLATE_NAME:sensor.fan.status[fanHealthStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1` |INFO | |
+|Device has been replaced (new serial number received) |<p>Device serial number has changed. Ack to close</p> |`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0` |INFO |<p>Manual close: YES</p> |
+|{#SNMPINDEX}: Physical disk is not in OK state |<p>Please check physical disk for warnings or errors</p> |`{TEMPLATE_NAME:system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}].count(#1,{$DISK_OK_STATUS},ne)}=1` |WARNING | |
+|{#PSU_DESCR}: Power supply is not in normal state |<p>Please check the power supply unit for errors</p> |`{TEMPLATE_NAME:sensor.psu.status[powerHealthStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1` |INFO | |
+|System is in unrecoverable state! |<p>Please check the device for faults</p> |`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1` |HIGH | |
+|System status is in critical state |<p>Please check the device for errors</p> |`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1` |HIGH |<p>**Depends on**:</p><p>- System is in unrecoverable state!</p> |
+|System status is in warning state |<p>Please check the device for warnings</p> |`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_WARN_STATUS},eq)}=1` |WARNING |<p>**Depends on**:</p><p>- System is in unrecoverable state!</p><p>- System status is in critical state</p> |
+|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+|Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3` |WARNING |<p>**Depends on**:</p><p>- Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p> |
+|Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3` |HIGH | |
+|Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3` |AVERAGE | |
+|CPU: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3` |WARNING |<p>**Depends on**:</p><p>- CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p> |
+|CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3` |HIGH | |
+|CPU: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
+## Known Issues
+
+- Description: Some IMMs (IMM1) do not return disks
+ - Version: IMM1
+ - Device: IBM x3250M3
+
+- Description: Some IMMs (IMM1) do not return fan status: fanHealthStatus
+ - Version: IMM1
+ - Device: IBM x3250M3
+
+- Description: IMM1 servers (M2, M3 generations) sysObjectID is NET-SNMP-MIB::netSnmpAgentOIDs.10
+ - Version: IMM1
+ - Device: IMM1 servers (M2,M3 generations)
+
+- Description: IMM1 servers (M2, M3 generations) only Ambient temperature sensor available
+ - Version: IMM1
+ - Device: IMM1 servers (M2,M3 generations)
+
diff --git a/templates/server/ibm_imm_snmpv1/template_server_ibm_imm_snmpv1.xml b/templates/server/ibm_imm_snmp/template_server_ibm_imm_snmp.xml
index 5d587e83ec3..a69c696677f 100644
--- a/templates/server/ibm_imm_snmpv1/template_server_ibm_imm_snmpv1.xml
+++ b/templates/server/ibm_imm_snmp/template_server_ibm_imm_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-04T23:48:13Z</date>
<groups>
<group>
<name>Templates/Server hardware</name>
@@ -9,8 +9,8 @@
</groups>
<templates>
<template>
- <template>Template Server IBM IMM SNMPv1</template>
- <name>Template Server IBM IMM SNMPv1</name>
+ <template>Template Server IBM IMM SNMP</template>
+ <name>Template Server IBM IMM SNMP</name>
<description>Template Server IBM IMM&#13;
&#13;
MIBs used:&#13;
@@ -34,10 +34,10 @@ Known Issues:&#13;
Version: IMM1&#13;
Device: IMM1 servers (M2,M3 generations)&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv1</name>
+ <name>Template Module Generic SNMP</name>
</template>
</templates>
<groups>
@@ -68,8 +68,7 @@ Template tooling version used: 0.34</description>
<items>
<item>
<name>Hardware model name</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.5.2.1.5.0</snmp_oid>
<key>system.hw.model</key>
<delay>1h</delay>
@@ -92,8 +91,7 @@ Template tooling version used: 0.34</description>
</item>
<item>
<name>Hardware serial number</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.5.2.1.3.0</snmp_oid>
<key>system.hw.serialnumber</key>
<delay>1h</delay>
@@ -126,8 +124,7 @@ Machine serial number VPD information</description>
</item>
<item>
<name>Overall system health status</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.4.1.0</snmp_oid>
<key>system.status[systemHealthStat.0]</key>
<delay>30s</delay>
@@ -160,7 +157,7 @@ Indicates status of system health for the system in which the IMM resides. Value
<dependencies>
<dependency>
<name>System is in unrecoverable state!</name>
- <expression>{Template Server IBM IMM SNMPv1:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
+ <expression>{Template Server IBM IMM SNMP:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger>
@@ -173,11 +170,11 @@ Indicates status of system health for the system in which the IMM resides. Value
<dependencies>
<dependency>
<name>System is in unrecoverable state!</name>
- <expression>{Template Server IBM IMM SNMPv1:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
+ <expression>{Template Server IBM IMM SNMP:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
</dependency>
<dependency>
<name>System status is in critical state</name>
- <expression>{Template Server IBM IMM SNMPv1:system.status[systemHealthStat.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
+ <expression>{Template Server IBM IMM SNMP:system.status[systemHealthStat.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
</dependency>
</dependencies>
</trigger>
@@ -187,8 +184,7 @@ Indicates status of system health for the system in which the IMM resides. Value
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#FAN_DESCR},1.3.6.1.4.1.2.3.51.3.1.3.2.1.2]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -196,8 +192,7 @@ Indicates status of system health for the system in which the IMM resides. Value
<item_prototypes>
<item_prototype>
<name>{#FAN_DESCR}: Fan speed, %</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.3.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.speed.percentage[fanSpeed.{#SNMPINDEX}]</key>
<units>%</units>
@@ -220,8 +215,7 @@ If the fan is determined not to be running or the fan speed cannot be determined
</item_prototype>
<item_prototype>
<name>{#FAN_DESCR}: Fan status</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.3.2.1.10.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.status[fanHealthStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -249,16 +243,14 @@ A description of the fan component status.</description>
</discovery_rule>
<discovery_rule>
<name>Physical Disk Discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2.3.51.3.1.12.2.1.1]</snmp_oid>
<key>physicalDisk.discovery</key>
<delay>1h</delay>
<item_prototypes>
<item_prototype>
<name>{#SNMPINDEX}: Physical disk part number</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.12.2.1.2.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.part_number[diskFruName.{#SNMPINDEX}]</key>
<delay>1h</delay>
@@ -275,8 +267,7 @@ disk module FRU name.</description>
</item_prototype>
<item_prototype>
<name>{#SNMPINDEX}: Physical disk status</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.12.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -302,8 +293,7 @@ disk module FRU name.</description>
</discovery_rule>
<discovery_rule>
<name>PSU Discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#PSU_DESCR},1.3.6.1.4.1.2.3.51.3.1.11.2.1.2]</snmp_oid>
<key>psu.discovery</key>
<delay>1h</delay>
@@ -311,8 +301,7 @@ disk module FRU name.</description>
<item_prototypes>
<item_prototype>
<name>{#PSU_DESCR}: Power supply status</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.11.2.1.6.{#SNMPINDEX}</snmp_oid>
<key>sensor.psu.status[powerHealthStatus.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -340,8 +329,7 @@ A description of the power module status.</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2.3.51.3.1.1.2.1.2]</snmp_oid>
<key>tempDescr.discovery</key>
<delay>1h</delay>
@@ -359,8 +347,7 @@ A description of the power module status.</description>
<item_prototypes>
<item_prototype>
<name>{#SNMPVALUE}: Temperature</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.1.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[tempReading.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -385,8 +372,8 @@ Temperature readings of testpoint: {#SNMPVALUE}</description>
<dependencies>
<dependency>
<name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Server IBM IMM SNMPv1:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Server IBM IMM SNMPv1:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Server IBM IMM SNMP:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Server IBM IMM SNMP:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -413,8 +400,7 @@ Temperature readings of testpoint: {#SNMPVALUE}</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery Ambient</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2.3.51.3.1.1.2.1.2]</snmp_oid>
<key>tempDescr.discovery.ambient</key>
<delay>1h</delay>
@@ -432,8 +418,7 @@ Temperature readings of testpoint: {#SNMPVALUE}</description>
<item_prototypes>
<item_prototype>
<name>Ambient: Temperature</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.1.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -458,8 +443,8 @@ Temperature readings of testpoint: Ambient</description>
<dependencies>
<dependency>
<name>Ambient: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <expression>{Template Server IBM IMM SNMPv1:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
- <recovery_expression>{Template Server IBM IMM SNMPv1:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
+ <expression>{Template Server IBM IMM SNMP:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
+ <recovery_expression>{Template Server IBM IMM SNMP:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
@@ -486,8 +471,7 @@ Temperature readings of testpoint: Ambient</description>
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery CPU</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2.3.51.3.1.1.2.1.2]</snmp_oid>
<key>tempDescr.discovery.cpu</key>
<delay>1h</delay>
@@ -505,8 +489,7 @@ Temperature readings of testpoint: Ambient</description>
<item_prototypes>
<item_prototype>
<name>CPU: Temperature</name>
- <type>SNMPV1</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.2.3.51.3.1.1.2.1.3.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[tempReading.CPU.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -531,8 +514,8 @@ Temperature readings of testpoint: CPU</description>
<dependencies>
<dependency>
<name>CPU: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"CPU"}</name>
- <expression>{Template Server IBM IMM SNMPv1:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
- <recovery_expression>{Template Server IBM IMM SNMPv1:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
+ <expression>{Template Server IBM IMM SNMP:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
+ <recovery_expression>{Template Server IBM IMM SNMP:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
diff --git a/templates/server/ibm_imm_snmpv1/README.md b/templates/server/ibm_imm_snmpv1/README.md
deleted file mode 100644
index ad89c67d09c..00000000000
--- a/templates/server/ibm_imm_snmpv1/README.md
+++ /dev/null
@@ -1,115 +0,0 @@
-
-# Template Server IBM IMM SNMPv1
-
-## Overview
-
-For Zabbix version: 4.4
-for IMM2 and IMM1 IBM serverX hardware
-
-This template was tested on:
-
-- IBM System x3550 M2 with IMM1
-- IBM x3250M3 with IMM1
-- IBM x3550M5 with IMM2
-- System x3550 M3 with IMM1
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$DISK_OK_STATUS}|<p>-</p>|`Normal`|
-|{$FAN_OK_STATUS}|<p>-</p>|`Normal`|
-|{$HEALTH_CRIT_STATUS}|<p>-</p>|`2`|
-|{$HEALTH_DISASTER_STATUS}|<p>-</p>|`0`|
-|{$HEALTH_WARN_STATUS}|<p>-</p>|`4`|
-|{$PSU_OK_STATUS}|<p>-</p>|`Normal`|
-|{$TEMP_CRIT:"Ambient"}|<p>-</p>|`35`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN:"Ambient"}|<p>-</p>|`30`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv1|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>Scanning IMM-MIB::tempTable</p>|SNMP|tempDescr.discovery<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `(DIMM|PSU|PCH|RAID|RR|PCI).*`</p>|
-|Temperature Discovery Ambient|<p>Scanning IMM-MIB::tempTable with Ambient filter</p>|SNMP|tempDescr.discovery.ambient<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `Ambient.*`</p>|
-|Temperature Discovery CPU|<p>Scanning IMM-MIB::tempTable with CPU filter</p>|SNMP|tempDescr.discovery.cpu<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `CPU [0-9]* Temp`</p>|
-|PSU Discovery|<p>IMM-MIB::powerFruName</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>IMM-MIB::fanDescr</p>|SNMP|fan.discovery|
-|Physical Disk Discovery|<p>-</p>|SNMP|physicalDisk.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|{#FAN_DESCR}: Fan status|<p>MIB: IMM-MIB</p><p>A description of the fan component status.</p>|SNMP|sensor.fan.status[fanHealthStatus.{#SNMPINDEX}]|
-|Fans|{#FAN_DESCR}: Fan speed, %|<p>MIB: IMM-MIB</p><p>Fan speed expressed in percent(%) of maximum RPM.</p><p>An octet string expressed as 'ddd% of maximum' where:d is a decimal digit or blank space for a leading zero.</p><p>If the fan is determined not to be running or the fan speed cannot be determined, the string will indicate 'Offline'.</p>|SNMP|sensor.fan.speed.percentage[fanSpeed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- REGEX: `(\d{1,3}) *%( of maximum)? \1`</p>|
-|Inventory|Hardware model name|<p>MIB: IMM-MIB</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: IMM-MIB</p><p>Machine serial number VPD information</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Physical_disks|{#SNMPINDEX}: Physical disk status|<p>MIB: IMM-MIB</p>|SNMP|system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}]|
-|Physical_disks|{#SNMPINDEX}: Physical disk part number|<p>MIB: IMM-MIB</p><p>disk module FRU name.</p>|SNMP|system.hw.physicaldisk.part_number[diskFruName.{#SNMPINDEX}]|
-|Power_supply|{#PSU_DESCR}: Power supply status|<p>MIB: IMM-MIB</p><p>A description of the power module status.</p>|SNMP|sensor.psu.status[powerHealthStatus.{#SNMPINDEX}]|
-|Status|Overall system health status|<p>MIB: IMM-MIB</p><p>Indicates status of system health for the system in which the IMM resides. Value of 'nonRecoverable' indicates a severe error has occurred and the system may not be functioning. A value of 'critical' indicates that a error has occurred but the system is currently functioning properly. A value of 'nonCritical' indicates that a condition has occurred that may change the state of the system in the future but currently the system is working properly. A value of 'normal' indicates that the system is operating normally.</p>|SNMP|system.status[systemHealthStat.0]|
-|Temperature|{#SNMPVALUE}: Temperature|<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: {#SNMPVALUE}</p>|SNMP|sensor.temp.value[tempReading.{#SNMPINDEX}]|
-|Temperature|Ambient: Temperature|<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: Ambient</p>|SNMP|sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}]|
-|Temperature|CPU: Temperature|<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: CPU</p>|SNMP|sensor.temp.value[tempReading.CPU.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#FAN_DESCR}: Fan is not in normal state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[fanHealthStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1`|INFO||
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#SNMPINDEX}: Physical disk is not in OK state|<p>Please check physical disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}].count(#1,{$DISK_OK_STATUS},ne)}=1`|WARNING||
-|{#PSU_DESCR}: Power supply is not in normal state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[powerHealthStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1`|INFO||
-|System is in unrecoverable state!|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1`|HIGH||
-|System status is in critical state|<p>Please check the device for errors</p>|`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1`|HIGH|<p>**Depends on**:</p><p>- System is in unrecoverable state!</p>|
-|System status is in warning state|<p>Please check the device for warnings</p>|`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- System is in unrecoverable state!</p><p>- System status is in critical state</p>|
-|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-|Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3`|WARNING|<p>**Depends on**:</p><p>- Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p>|
-|Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3`|HIGH||
-|Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3`|AVERAGE||
-|CPU: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3`|WARNING|<p>**Depends on**:</p><p>- CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p>|
-|CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3`|HIGH||
-|CPU: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: Some IMMs (IMM1) do not return disks
- - Version: IMM1
- - Device: IBM x3250M3
-
-- Description: Some IMMs (IMM1) do not return fan status: fanHealthStatus
- - Version: IMM1
- - Device: IBM x3250M3
-
-- Description: IMM1 servers (M2, M3 generations) sysObjectID is NET-SNMP-MIB::netSnmpAgentOIDs.10
- - Version: IMM1
- - Device: IMM1 servers (M2,M3 generations)
-
-- Description: IMM1 servers (M2, M3 generations) only Ambient temperature sensor available
- - Version: IMM1
- - Device: IMM1 servers (M2,M3 generations)
-
diff --git a/templates/server/ibm_imm_snmpv2/README.md b/templates/server/ibm_imm_snmpv2/README.md
deleted file mode 100644
index 48336ac5539..00000000000
--- a/templates/server/ibm_imm_snmpv2/README.md
+++ /dev/null
@@ -1,115 +0,0 @@
-
-# Template Server IBM IMM SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-for IMM2 and IMM1 IBM serverX hardware
-
-This template was tested on:
-
-- IBM System x3550 M2 with IMM1
-- IBM x3250M3 with IMM1
-- IBM x3550M5 with IMM2
-- System x3550 M3 with IMM1
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$DISK_OK_STATUS}|<p>-</p>|`Normal`|
-|{$FAN_OK_STATUS}|<p>-</p>|`Normal`|
-|{$HEALTH_CRIT_STATUS}|<p>-</p>|`2`|
-|{$HEALTH_DISASTER_STATUS}|<p>-</p>|`0`|
-|{$HEALTH_WARN_STATUS}|<p>-</p>|`4`|
-|{$PSU_OK_STATUS}|<p>-</p>|`Normal`|
-|{$TEMP_CRIT:"Ambient"}|<p>-</p>|`35`|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN:"Ambient"}|<p>-</p>|`30`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>Scanning IMM-MIB::tempTable</p>|SNMP|tempDescr.discovery<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `(DIMM|PSU|PCH|RAID|RR|PCI).*`</p>|
-|Temperature Discovery Ambient|<p>Scanning IMM-MIB::tempTable with Ambient filter</p>|SNMP|tempDescr.discovery.ambient<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `Ambient.*`</p>|
-|Temperature Discovery CPU|<p>Scanning IMM-MIB::tempTable with CPU filter</p>|SNMP|tempDescr.discovery.cpu<p>**Filter**:</p>AND_OR <p>- B: {#SNMPVALUE} MATCHES_REGEX `CPU [0-9]* Temp`</p>|
-|PSU Discovery|<p>IMM-MIB::powerFruName</p>|SNMP|psu.discovery|
-|FAN Discovery|<p>IMM-MIB::fanDescr</p>|SNMP|fan.discovery|
-|Physical Disk Discovery|<p>-</p>|SNMP|physicalDisk.discovery|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|{#FAN_DESCR}: Fan status|<p>MIB: IMM-MIB</p><p>A description of the fan component status.</p>|SNMP|sensor.fan.status[fanHealthStatus.{#SNMPINDEX}]|
-|Fans|{#FAN_DESCR}: Fan speed, %|<p>MIB: IMM-MIB</p><p>Fan speed expressed in percent(%) of maximum RPM.</p><p>An octet string expressed as 'ddd% of maximum' where:d is a decimal digit or blank space for a leading zero.</p><p>If the fan is determined not to be running or the fan speed cannot be determined, the string will indicate 'Offline'.</p>|SNMP|sensor.fan.speed.percentage[fanSpeed.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- REGEX: `(\d{1,3}) *%( of maximum)? \1`</p>|
-|Inventory|Hardware model name|<p>MIB: IMM-MIB</p>|SNMP|system.hw.model<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Inventory|Hardware serial number|<p>MIB: IMM-MIB</p><p>Machine serial number VPD information</p>|SNMP|system.hw.serialnumber<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p>|
-|Physical_disks|{#SNMPINDEX}: Physical disk status|<p>MIB: IMM-MIB</p>|SNMP|system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}]|
-|Physical_disks|{#SNMPINDEX}: Physical disk part number|<p>MIB: IMM-MIB</p><p>disk module FRU name.</p>|SNMP|system.hw.physicaldisk.part_number[diskFruName.{#SNMPINDEX}]|
-|Power_supply|{#PSU_DESCR}: Power supply status|<p>MIB: IMM-MIB</p><p>A description of the power module status.</p>|SNMP|sensor.psu.status[powerHealthStatus.{#SNMPINDEX}]|
-|Status|Overall system health status|<p>MIB: IMM-MIB</p><p>Indicates status of system health for the system in which the IMM resides. Value of 'nonRecoverable' indicates a severe error has occurred and the system may not be functioning. A value of 'critical' indicates that a error has occurred but the system is currently functioning properly. A value of 'nonCritical' indicates that a condition has occurred that may change the state of the system in the future but currently the system is working properly. A value of 'normal' indicates that the system is operating normally.</p>|SNMP|system.status[systemHealthStat.0]|
-|Temperature|{#SNMPVALUE}: Temperature|<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: {#SNMPVALUE}</p>|SNMP|sensor.temp.value[tempReading.{#SNMPINDEX}]|
-|Temperature|Ambient: Temperature|<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: Ambient</p>|SNMP|sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}]|
-|Temperature|CPU: Temperature|<p>MIB: IMM-MIB</p><p>Temperature readings of testpoint: CPU</p>|SNMP|sensor.temp.value[tempReading.CPU.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#FAN_DESCR}: Fan is not in normal state|<p>Please check the fan unit</p>|`{TEMPLATE_NAME:sensor.fan.status[fanHealthStatus.{#SNMPINDEX}].count(#1,{$FAN_OK_STATUS},ne)}=1`|INFO||
-|Device has been replaced (new serial number received)|<p>Device serial number has changed. Ack to close</p>|`{TEMPLATE_NAME:system.hw.serialnumber.diff()}=1 and {TEMPLATE_NAME:system.hw.serialnumber.strlen()}>0`|INFO|<p>Manual close: YES</p>|
-|{#SNMPINDEX}: Physical disk is not in OK state|<p>Please check physical disk for warnings or errors</p>|`{TEMPLATE_NAME:system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}].count(#1,{$DISK_OK_STATUS},ne)}=1`|WARNING||
-|{#PSU_DESCR}: Power supply is not in normal state|<p>Please check the power supply unit for errors</p>|`{TEMPLATE_NAME:sensor.psu.status[powerHealthStatus.{#SNMPINDEX}].count(#1,{$PSU_OK_STATUS},ne)}=1`|INFO||
-|System is in unrecoverable state!|<p>Please check the device for faults</p>|`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1`|HIGH||
-|System status is in critical state|<p>Please check the device for errors</p>|`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1`|HIGH|<p>**Depends on**:</p><p>- System is in unrecoverable state!</p>|
-|System status is in warning state|<p>Please check the device for warnings</p>|`{TEMPLATE_NAME:system.status[systemHealthStat.0].count(#1,{$HEALTH_WARN_STATUS},eq)}=1`|WARNING|<p>**Depends on**:</p><p>- System is in unrecoverable state!</p><p>- System status is in critical state</p>|
-|{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-|Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3`|WARNING|<p>**Depends on**:</p><p>- Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}</p>|
-|Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3`|HIGH||
-|Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3`|AVERAGE||
-|CPU: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3`|WARNING|<p>**Depends on**:</p><p>- CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}</p>|
-|CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3`|HIGH||
-|CPU: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-
-## Known Issues
-
-- Description: Some IMMs (IMM1) do not return disks
- - Version: IMM1
- - Device: IBM x3250M3
-
-- Description: Some IMMs (IMM1) do not return fan status: fanHealthStatus
- - Version: IMM1
- - Device: IBM x3250M3
-
-- Description: IMM1 servers (M2, M3 generations) sysObjectID is NET-SNMP-MIB::netSnmpAgentOIDs.10
- - Version: IMM1
- - Device: IMM1 servers (M2,M3 generations)
-
-- Description: IMM1 servers (M2, M3 generations) only Ambient temperature sensor available
- - Version: IMM1
- - Device: IMM1 servers (M2,M3 generations)
-
diff --git a/templates/server/ibm_imm_snmpv2/template_server_ibm_imm_snmpv2.xml b/templates/server/ibm_imm_snmpv2/template_server_ibm_imm_snmpv2.xml
deleted file mode 100644
index 708dc44dc4e..00000000000
--- a/templates/server/ibm_imm_snmpv2/template_server_ibm_imm_snmpv2.xml
+++ /dev/null
@@ -1,632 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
- <groups>
- <group>
- <name>Templates/Server hardware</name>
- </group>
- </groups>
- <templates>
- <template>
- <template>Template Server IBM IMM SNMPv2</template>
- <name>Template Server IBM IMM SNMPv2</name>
- <description>Template Server IBM IMM&#13;
-&#13;
-MIBs used:&#13;
-IMM-MIB&#13;
-&#13;
-Known Issues:&#13;
-&#13;
- Description: Some IMMs (IMM1) do not return disks&#13;
- Version: IMM1&#13;
- Device: IBM x3250M3&#13;
-&#13;
- Description: Some IMMs (IMM1) do not return fan status: fanHealthStatus&#13;
- Version: IMM1&#13;
- Device: IBM x3250M3&#13;
-&#13;
- Description: IMM1 servers (M2, M3 generations) sysObjectID is NET-SNMP-MIB::netSnmpAgentOIDs.10&#13;
- Version: IMM1&#13;
- Device: IMM1 servers (M2,M3 generations)&#13;
-&#13;
- Description: IMM1 servers (M2, M3 generations) only Ambient temperature sensor available&#13;
- Version: IMM1&#13;
- Device: IMM1 servers (M2,M3 generations)&#13;
-&#13;
-Template tooling version used: 0.34</description>
- <templates>
- <template>
- <name>Template Module Generic SNMPv2</name>
- </template>
- </templates>
- <groups>
- <group>
- <name>Templates/Server hardware</name>
- </group>
- </groups>
- <applications>
- <application>
- <name>Fans</name>
- </application>
- <application>
- <name>Inventory</name>
- </application>
- <application>
- <name>Physical disks</name>
- </application>
- <application>
- <name>Power supply</name>
- </application>
- <application>
- <name>Status</name>
- </application>
- <application>
- <name>Temperature</name>
- </application>
- </applications>
- <items>
- <item>
- <name>Hardware model name</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.5.2.1.5.0</snmp_oid>
- <key>system.hw.model</key>
- <delay>1h</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: IMM-MIB</description>
- <inventory_link>MODEL</inventory_link>
- <applications>
- <application>
- <name>Inventory</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>DISCARD_UNCHANGED_HEARTBEAT</type>
- <params>1d</params>
- </step>
- </preprocessing>
- </item>
- <item>
- <name>Hardware serial number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.5.2.1.3.0</snmp_oid>
- <key>system.hw.serialnumber</key>
- <delay>1h</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: IMM-MIB&#13;
-Machine serial number VPD information</description>
- <inventory_link>SERIALNO_A</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()}&gt;0</expression>
- <name>Device has been replaced (new serial number received)</name>
- <priority>INFO</priority>
- <description>Device serial number has changed. Ack to close</description>
- <manual_close>YES</manual_close>
- </trigger>
- </triggers>
- </item>
- <item>
- <name>Overall system health status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.4.1.0</snmp_oid>
- <key>system.status[systemHealthStat.0]</key>
- <delay>30s</delay>
- <history>2w</history>
- <trends>0d</trends>
- <description>MIB: IMM-MIB&#13;
-Indicates status of system health for the system in which the IMM resides. Value of 'nonRecoverable' indicates a severe error has occurred and the system may not be functioning. A value of 'critical' indicates that a error has occurred but the system is currently functioning properly. A value of 'nonCritical' indicates that a condition has occurred that may change the state of the system in the future but currently the system is working properly. A value of 'normal' indicates that the system is operating normally.</description>
- <applications>
- <application>
- <name>Status</name>
- </application>
- </applications>
- <valuemap>
- <name>IMM-MIB::systemHealthStat</name>
- </valuemap>
- <triggers>
- <trigger>
- <expression>{count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
- <name>System is in unrecoverable state!</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>HIGH</priority>
- <description>Please check the device for faults</description>
- </trigger>
- <trigger>
- <expression>{count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
- <name>System status is in critical state</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>HIGH</priority>
- <description>Please check the device for errors</description>
- <dependencies>
- <dependency>
- <name>System is in unrecoverable state!</name>
- <expression>{Template Server IBM IMM SNMPv2:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
- </dependency>
- </dependencies>
- </trigger>
- <trigger>
- <expression>{count(#1,{$HEALTH_WARN_STATUS},eq)}=1</expression>
- <name>System status is in warning state</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>WARNING</priority>
- <description>Please check the device for warnings</description>
- <dependencies>
- <dependency>
- <name>System is in unrecoverable state!</name>
- <expression>{Template Server IBM IMM SNMPv2:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1</expression>
- </dependency>
- <dependency>
- <name>System status is in critical state</name>
- <expression>{Template Server IBM IMM SNMPv2:system.status[systemHealthStat.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1</expression>
- </dependency>
- </dependencies>
- </trigger>
- </triggers>
- </item>
- </items>
- <discovery_rules>
- <discovery_rule>
- <name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#FAN_DESCR},1.3.6.1.4.1.2.3.51.3.1.3.2.1.2]</snmp_oid>
- <key>fan.discovery</key>
- <delay>1h</delay>
- <description>IMM-MIB::fanDescr</description>
- <item_prototypes>
- <item_prototype>
- <name>{#FAN_DESCR}: Fan speed, %</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.3.2.1.3.{#SNMPINDEX}</snmp_oid>
- <key>sensor.fan.speed.percentage[fanSpeed.{#SNMPINDEX}]</key>
- <units>%</units>
- <description>MIB: IMM-MIB&#13;
-Fan speed expressed in percent(%) of maximum RPM.&#13;
-An octet string expressed as 'ddd% of maximum' where:d is a decimal digit or blank space for a leading zero.&#13;
-If the fan is determined not to be running or the fan speed cannot be determined, the string will indicate 'Offline'.</description>
- <applications>
- <application>
- <name>Fans</name>
- </application>
- </applications>
- <preprocessing>
- <step>
- <type>REGEX</type>
- <params>(\d{1,3}) *%( of maximum)?
-\1</params>
- </step>
- </preprocessing>
- </item_prototype>
- <item_prototype>
- <name>{#FAN_DESCR}: Fan status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.3.2.1.10.{#SNMPINDEX}</snmp_oid>
- <key>sensor.fan.status[fanHealthStatus.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: IMM-MIB&#13;
-A description of the fan component status.</description>
- <applications>
- <application>
- <name>Fans</name>
- </application>
- </applications>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{count(#1,{$FAN_OK_STATUS},ne)}=1</expression>
- <name>{#FAN_DESCR}: Fan is not in normal state</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>INFO</priority>
- <description>Please check the fan unit</description>
- </trigger_prototype>
- </trigger_prototypes>
- </item_prototype>
- </item_prototypes>
- </discovery_rule>
- <discovery_rule>
- <name>Physical Disk Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2.3.51.3.1.12.2.1.1]</snmp_oid>
- <key>physicalDisk.discovery</key>
- <delay>1h</delay>
- <item_prototypes>
- <item_prototype>
- <name>{#SNMPINDEX}: Physical disk part number</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.12.2.1.2.{#SNMPINDEX}</snmp_oid>
- <key>system.hw.physicaldisk.part_number[diskFruName.{#SNMPINDEX}]</key>
- <delay>1h</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: IMM-MIB&#13;
-disk module FRU name.</description>
- <applications>
- <application>
- <name>Physical disks</name>
- </application>
- </applications>
- </item_prototype>
- <item_prototype>
- <name>{#SNMPINDEX}: Physical disk status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.12.2.1.3.{#SNMPINDEX}</snmp_oid>
- <key>system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: IMM-MIB</description>
- <applications>
- <application>
- <name>Physical disks</name>
- </application>
- </applications>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{count(#1,{$DISK_OK_STATUS},ne)}=1</expression>
- <name>{#SNMPINDEX}: Physical disk is not in OK state</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>WARNING</priority>
- <description>Please check physical disk for warnings or errors</description>
- </trigger_prototype>
- </trigger_prototypes>
- </item_prototype>
- </item_prototypes>
- </discovery_rule>
- <discovery_rule>
- <name>PSU Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#PSU_DESCR},1.3.6.1.4.1.2.3.51.3.1.11.2.1.2]</snmp_oid>
- <key>psu.discovery</key>
- <delay>1h</delay>
- <description>IMM-MIB::powerFruName</description>
- <item_prototypes>
- <item_prototype>
- <name>{#PSU_DESCR}: Power supply status</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.11.2.1.6.{#SNMPINDEX}</snmp_oid>
- <key>sensor.psu.status[powerHealthStatus.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <history>2w</history>
- <trends>0</trends>
- <value_type>CHAR</value_type>
- <description>MIB: IMM-MIB&#13;
-A description of the power module status.</description>
- <applications>
- <application>
- <name>Power supply</name>
- </application>
- </applications>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{count(#1,{$PSU_OK_STATUS},ne)}=1</expression>
- <name>{#PSU_DESCR}: Power supply is not in normal state</name>
- <opdata>Current state: {ITEM.LASTVALUE1}</opdata>
- <priority>INFO</priority>
- <description>Please check the power supply unit for errors</description>
- </trigger_prototype>
- </trigger_prototypes>
- </item_prototype>
- </item_prototypes>
- </discovery_rule>
- <discovery_rule>
- <name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2.3.51.3.1.1.2.1.2]</snmp_oid>
- <key>tempDescr.discovery</key>
- <delay>1h</delay>
- <filter>
- <evaltype>AND_OR</evaltype>
- <conditions>
- <condition>
- <macro>{#SNMPVALUE}</macro>
- <value>(DIMM|PSU|PCH|RAID|RR|PCI).*</value>
- <formulaid>B</formulaid>
- </condition>
- </conditions>
- </filter>
- <description>Scanning IMM-MIB::tempTable</description>
- <item_prototypes>
- <item_prototype>
- <name>{#SNMPVALUE}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.1.2.1.3.{#SNMPINDEX}</snmp_oid>
- <key>sensor.temp.value[tempReading.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <value_type>FLOAT</value_type>
- <units>°C</units>
- <description>MIB: IMM-MIB&#13;
-Temperature readings of testpoint: {#SNMPVALUE}</description>
- <applications>
- <application>
- <name>Temperature</name>
- </application>
- </applications>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{avg(5m)}&gt;{$TEMP_WARN:""}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{max(5m)}&lt;{$TEMP_WARN:""}-3</recovery_expression>
- <name>{#SNMPVALUE}: Temperature is above warning threshold: &gt;{$TEMP_WARN:""}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>WARNING</priority>
- <description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
- <dependencies>
- <dependency>
- <name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Server IBM IMM SNMPv2:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Server IBM IMM SNMPv2:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
- <name>{#SNMPVALUE}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>HIGH</priority>
- <description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{avg(5m)}&lt;{$TEMP_CRIT_LOW:""}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{min(5m)}&gt;{$TEMP_CRIT_LOW:""}+3</recovery_expression>
- <name>{#SNMPVALUE}: Temperature is too low: &lt;{$TEMP_CRIT_LOW:""}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>AVERAGE</priority>
- </trigger_prototype>
- </trigger_prototypes>
- </item_prototype>
- </item_prototypes>
- </discovery_rule>
- <discovery_rule>
- <name>Temperature Discovery Ambient</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2.3.51.3.1.1.2.1.2]</snmp_oid>
- <key>tempDescr.discovery.ambient</key>
- <delay>1h</delay>
- <filter>
- <evaltype>AND_OR</evaltype>
- <conditions>
- <condition>
- <macro>{#SNMPVALUE}</macro>
- <value>Ambient.*</value>
- <formulaid>B</formulaid>
- </condition>
- </conditions>
- </filter>
- <description>Scanning IMM-MIB::tempTable with Ambient filter</description>
- <item_prototypes>
- <item_prototype>
- <name>Ambient: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.1.2.1.3.{#SNMPINDEX}</snmp_oid>
- <key>sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <value_type>FLOAT</value_type>
- <units>°C</units>
- <description>MIB: IMM-MIB&#13;
-Temperature readings of testpoint: Ambient</description>
- <applications>
- <application>
- <name>Temperature</name>
- </application>
- </applications>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{avg(5m)}&gt;{$TEMP_WARN:"Ambient"}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{max(5m)}&lt;{$TEMP_WARN:"Ambient"}-3</recovery_expression>
- <name>Ambient: Temperature is above warning threshold: &gt;{$TEMP_WARN:"Ambient"}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>WARNING</priority>
- <description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
- <dependencies>
- <dependency>
- <name>Ambient: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <expression>{Template Server IBM IMM SNMPv2:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
- <recovery_expression>{Template Server IBM IMM SNMPv2:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{avg(5m)}&gt;{$TEMP_CRIT:"Ambient"}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{max(5m)}&lt;{$TEMP_CRIT:"Ambient"}-3</recovery_expression>
- <name>Ambient: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"Ambient"}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>HIGH</priority>
- <description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{avg(5m)}&lt;{$TEMP_CRIT_LOW:"Ambient"}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{min(5m)}&gt;{$TEMP_CRIT_LOW:"Ambient"}+3</recovery_expression>
- <name>Ambient: Temperature is too low: &lt;{$TEMP_CRIT_LOW:"Ambient"}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>AVERAGE</priority>
- </trigger_prototype>
- </trigger_prototypes>
- </item_prototype>
- </item_prototypes>
- </discovery_rule>
- <discovery_rule>
- <name>Temperature Discovery CPU</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.2.3.51.3.1.1.2.1.2]</snmp_oid>
- <key>tempDescr.discovery.cpu</key>
- <delay>1h</delay>
- <filter>
- <evaltype>AND_OR</evaltype>
- <conditions>
- <condition>
- <macro>{#SNMPVALUE}</macro>
- <value>CPU [0-9]* Temp</value>
- <formulaid>B</formulaid>
- </condition>
- </conditions>
- </filter>
- <description>Scanning IMM-MIB::tempTable with CPU filter</description>
- <item_prototypes>
- <item_prototype>
- <name>CPU: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
- <snmp_oid>1.3.6.1.4.1.2.3.51.3.1.1.2.1.3.{#SNMPINDEX}</snmp_oid>
- <key>sensor.temp.value[tempReading.CPU.{#SNMPINDEX}]</key>
- <delay>3m</delay>
- <value_type>FLOAT</value_type>
- <units>°C</units>
- <description>MIB: IMM-MIB&#13;
-Temperature readings of testpoint: CPU</description>
- <applications>
- <application>
- <name>Temperature</name>
- </application>
- </applications>
- <trigger_prototypes>
- <trigger_prototype>
- <expression>{avg(5m)}&gt;{$TEMP_WARN:"CPU"}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{max(5m)}&lt;{$TEMP_WARN:"CPU"}-3</recovery_expression>
- <name>CPU: Temperature is above warning threshold: &gt;{$TEMP_WARN:"CPU"}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>WARNING</priority>
- <description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
- <dependencies>
- <dependency>
- <name>CPU: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"CPU"}</name>
- <expression>{Template Server IBM IMM SNMPv2:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
- <recovery_expression>{Template Server IBM IMM SNMPv2:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
- </dependency>
- </dependencies>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{avg(5m)}&gt;{$TEMP_CRIT:"CPU"}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{max(5m)}&lt;{$TEMP_CRIT:"CPU"}-3</recovery_expression>
- <name>CPU: Temperature is above critical threshold: &gt;{$TEMP_CRIT:"CPU"}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>HIGH</priority>
- <description>This trigger uses temperature sensor values as well as temperature sensor status if available</description>
- </trigger_prototype>
- <trigger_prototype>
- <expression>{avg(5m)}&lt;{$TEMP_CRIT_LOW:"CPU"}</expression>
- <recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
- <recovery_expression>{min(5m)}&gt;{$TEMP_CRIT_LOW:"CPU"}+3</recovery_expression>
- <name>CPU: Temperature is too low: &lt;{$TEMP_CRIT_LOW:"CPU"}</name>
- <opdata>Current value: {ITEM.LASTVALUE1}</opdata>
- <priority>AVERAGE</priority>
- </trigger_prototype>
- </trigger_prototypes>
- </item_prototype>
- </item_prototypes>
- </discovery_rule>
- </discovery_rules>
- <macros>
- <macro>
- <macro>{$DISK_OK_STATUS}</macro>
- <value>Normal</value>
- </macro>
- <macro>
- <macro>{$FAN_OK_STATUS}</macro>
- <value>Normal</value>
- </macro>
- <macro>
- <macro>{$HEALTH_CRIT_STATUS}</macro>
- <value>2</value>
- </macro>
- <macro>
- <macro>{$HEALTH_DISASTER_STATUS}</macro>
- <value>0</value>
- </macro>
- <macro>
- <macro>{$HEALTH_WARN_STATUS}</macro>
- <value>4</value>
- </macro>
- <macro>
- <macro>{$PSU_OK_STATUS}</macro>
- <value>Normal</value>
- </macro>
- <macro>
- <macro>{$TEMP_CRIT_LOW}</macro>
- <value>5</value>
- </macro>
- <macro>
- <macro>{$TEMP_CRIT:"Ambient"}</macro>
- <value>35</value>
- </macro>
- <macro>
- <macro>{$TEMP_CRIT}</macro>
- <value>60</value>
- </macro>
- <macro>
- <macro>{$TEMP_WARN:"Ambient"}</macro>
- <value>30</value>
- </macro>
- <macro>
- <macro>{$TEMP_WARN}</macro>
- <value>50</value>
- </macro>
- </macros>
- </template>
- </templates>
- <value_maps>
- <value_map>
- <name>IMM-MIB::systemHealthStat</name>
- <mappings>
- <mapping>
- <value>0</value>
- <newvalue>nonRecoverable</newvalue>
- </mapping>
- <mapping>
- <value>2</value>
- <newvalue>critical</newvalue>
- </mapping>
- <mapping>
- <value>4</value>
- <newvalue>nonCritical</newvalue>
- </mapping>
- <mapping>
- <value>255</value>
- <newvalue>normal</newvalue>
- </mapping>
- </mappings>
- </value_map>
- </value_maps>
-</zabbix_export>
diff --git a/templates/server/supermicro_aten_snmp/README.md b/templates/server/supermicro_aten_snmp/README.md
new file mode 100644
index 00000000000..2203594e067
--- /dev/null
+++ b/templates/server/supermicro_aten_snmp/README.md
@@ -0,0 +1,61 @@
+
+# Template Server Supermicro Aten SNMP
+
+## Overview
+
+For Zabbix version: 5.0
+for BMC ATEN IPMI controllers of Supermicro servers
+https://www.supermicro.com/solutions/IPMI.cfm
+
+This template was tested on:
+
+- Supermicro X10DRI
+
+## Setup
+
+Refer to the vendor documentation.
+
+## Zabbix configuration
+
+No specific Zabbix configuration is required.
+
+### Macros used
+
+|Name|Description|Default|
+|----|-----------|-------|
+|{$TEMP_CRIT_LOW} |<p>-</p> |`5` |
+|{$TEMP_CRIT} |<p>-</p> |`60` |
+|{$TEMP_WARN} |<p>-</p> |`50` |
+
+## Template links
+
+|Name|
+|----|
+|Template Module Generic SNMP |
+
+## Discovery rules
+
+|Name|Description|Type|Key and additional info|
+|----|-----------|----|----|
+|Temperature Discovery |<p>Scanning ATEN-IPMI-MIB::sensorTable with filter: not connected temp sensors (Value = 0)</p> |SNMP |tempDescr.discovery<p>**Filter**:</p>AND <p>- B: {#SNMPVALUE} MATCHES_REGEX `[1-9]+`</p><p>- A: {#SENSOR_DESCR} MATCHES_REGEX `.*Temp.*`</p> |
+|FAN Discovery |<p>Scanning ATEN-IPMI-MIB::sensorTable with filter: not connected FAN sensors (Value = 0)</p> |SNMP |fan.discovery<p>**Filter**:</p>AND <p>- B: {#SNMPVALUE} MATCHES_REGEX `[1-9]+`</p><p>- A: {#SENSOR_DESCR} MATCHES_REGEX `FAN.*`</p> |
+
+## Items collected
+
+|Group|Name|Description|Type|Key and additional info|
+|-----|----|-----------|----|---------------------|
+|Fans |{#SENSOR_DESCR}: Fan speed, % |<p>MIB: ATEN-IPMI-MIB</p><p>A textual string containing information about the interface.</p><p>This string should include the name of the manufacturer, the product name and the version of the interface hardware/software.</p> |SNMP |sensor.fan.speed.percentage[sensorReading.{#SNMPINDEX}] |
+|Temperature |{#SENSOR_DESCR}: Temperature |<p>MIB: ATEN-IPMI-MIB</p><p>A textual string containing information about the interface.</p><p>This string should include the name of the manufacturer, the product name and the version of the interface hardware/software.</p> |SNMP |sensor.temp.value[sensorReading.{#SNMPINDEX}] |
+
+## Triggers
+
+|Name|Description|Expression|Severity|Dependencies and additional info|
+|----|-----------|----|----|----|
+|{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p> |
+|{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""} |<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p> |`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3` |HIGH | |
+|{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""} |<p>-</p> |`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3` |AVERAGE | |
+
+## Feedback
+
+Please report any issues with the template at https://support.zabbix.com
+
diff --git a/templates/server/supermicro_aten_snmpv2/template_server_supermicro_aten_snmpv2.xml b/templates/server/supermicro_aten_snmp/template_server_supermicro_aten_snmp.xml
index 88a371e511c..3545f31c97d 100644
--- a/templates/server/supermicro_aten_snmpv2/template_server_supermicro_aten_snmpv2.xml
+++ b/templates/server/supermicro_aten_snmp/template_server_supermicro_aten_snmp.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
- <version>4.4</version>
- <date>2015-12-30T14:41:30Z</date>
+ <version>5.0</version>
+ <date>2020-06-04T23:48:10Z</date>
<groups>
<group>
<name>Templates/Server hardware</name>
@@ -9,17 +9,17 @@
</groups>
<templates>
<template>
- <template>Template Server Supermicro Aten SNMPv2</template>
- <name>Template Server Supermicro Aten SNMPv2</name>
+ <template>Template Server Supermicro Aten SNMP</template>
+ <name>Template Server Supermicro Aten SNMP</name>
<description>Template Server Supermicro Aten&#13;
&#13;
MIBs used:&#13;
ATEN-IPMI-MIB&#13;
&#13;
-Template tooling version used: 0.34</description>
+Template tooling version used: 0.36</description>
<templates>
<template>
- <name>Template Module Generic SNMPv2</name>
+ <name>Template Module Generic SNMP</name>
</template>
</templates>
<groups>
@@ -38,8 +38,7 @@ Template tooling version used: 0.34</description>
<discovery_rules>
<discovery_rule>
<name>FAN Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.21317.1.3.1.2,{#SENSOR_DESCR},1.3.6.1.4.1.21317.1.3.1.13]</snmp_oid>
<key>fan.discovery</key>
<delay>1h</delay>
@@ -62,8 +61,7 @@ Template tooling version used: 0.34</description>
<item_prototypes>
<item_prototype>
<name>{#SENSOR_DESCR}: Fan speed, %</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.21317.1.3.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.fan.speed.percentage[sensorReading.{#SNMPINDEX}]</key>
<units>%</units>
@@ -80,8 +78,7 @@ This string should include the name of the manufacturer, the product name and th
</discovery_rule>
<discovery_rule>
<name>Temperature Discovery</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>discovery[{#SNMPVALUE},1.3.6.1.4.1.21317.1.3.1.2,{#SENSOR_DESCR},1.3.6.1.4.1.21317.1.3.1.13]</snmp_oid>
<key>tempDescr.discovery</key>
<delay>1h</delay>
@@ -104,8 +101,7 @@ This string should include the name of the manufacturer, the product name and th
<item_prototypes>
<item_prototype>
<name>{#SENSOR_DESCR}: Temperature</name>
- <type>SNMPV2</type>
- <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
+ <type>SNMP_AGENT</type>
<snmp_oid>1.3.6.1.4.1.21317.1.3.1.2.{#SNMPINDEX}</snmp_oid>
<key>sensor.temp.value[sensorReading.{#SNMPINDEX}]</key>
<delay>3m</delay>
@@ -131,8 +127,8 @@ This string should include the name of the manufacturer, the product name and th
<dependencies>
<dependency>
<name>{#SENSOR_DESCR}: Temperature is above critical threshold: &gt;{$TEMP_CRIT:""}</name>
- <expression>{Template Server Supermicro Aten SNMPv2:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
- <recovery_expression>{Template Server Supermicro Aten SNMPv2:sensor.temp.value[sensorReading.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
+ <expression>{Template Server Supermicro Aten SNMP:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}&gt;{$TEMP_CRIT:""}</expression>
+ <recovery_expression>{Template Server Supermicro Aten SNMP:sensor.temp.value[sensorReading.{#SNMPINDEX}].max(5m)}&lt;{$TEMP_CRIT:""}-3</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
diff --git a/templates/server/supermicro_aten_snmpv2/README.md b/templates/server/supermicro_aten_snmpv2/README.md
deleted file mode 100644
index 17ecc221dfd..00000000000
--- a/templates/server/supermicro_aten_snmpv2/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-
-# Template Server Supermicro Aten SNMPv2
-
-## Overview
-
-For Zabbix version: 4.4
-for BMC ATEN IPMI controllers of Supermicro servers
-https://www.supermicro.com/solutions/IPMI.cfm
-
-This template was tested on:
-
-- Supermicro X10DRI
-
-## Setup
-
-Refer to the vendor documentation.
-
-## Zabbix configuration
-
-No specific Zabbix configuration is required.
-
-### Macros used
-
-|Name|Description|Default|
-|----|-----------|-------|
-|{$TEMP_CRIT_LOW}|<p>-</p>|`5`|
-|{$TEMP_CRIT}|<p>-</p>|`60`|
-|{$TEMP_WARN}|<p>-</p>|`50`|
-
-## Template links
-
-|Name|
-|----|
-|Template Module Generic SNMPv2|
-
-## Discovery rules
-
-|Name|Description|Type|Key and additional info|
-|----|-----------|----|----|
-|Temperature Discovery|<p>Scanning ATEN-IPMI-MIB::sensorTable with filter: not connected temp sensors (Value = 0)</p>|SNMP|tempDescr.discovery<p>**Filter**:</p>AND <p>- B: {#SNMPVALUE} MATCHES_REGEX `[1-9]+`</p><p>- A: {#SENSOR_DESCR} MATCHES_REGEX `.*Temp.*`</p>|
-|FAN Discovery|<p>Scanning ATEN-IPMI-MIB::sensorTable with filter: not connected FAN sensors (Value = 0)</p>|SNMP|fan.discovery<p>**Filter**:</p>AND <p>- B: {#SNMPVALUE} MATCHES_REGEX `[1-9]+`</p><p>- A: {#SENSOR_DESCR} MATCHES_REGEX `FAN.*`</p>|
-
-## Items collected
-
-|Group|Name|Description|Type|Key and additional info|
-|-----|----|-----------|----|---------------------|
-|Fans|{#SENSOR_DESCR}: Fan speed, %|<p>MIB: ATEN-IPMI-MIB</p><p>A textual string containing information about the interface.</p><p>This string should include the name of the manufacturer, the product name and the version of the interface hardware/software.</p>|SNMP|sensor.fan.speed.percentage[sensorReading.{#SNMPINDEX}]|
-|Temperature|{#SENSOR_DESCR}: Temperature|<p>MIB: ATEN-IPMI-MIB</p><p>A textual string containing information about the interface.</p><p>This string should include the name of the manufacturer, the product name and the version of the interface hardware/software.</p>|SNMP|sensor.temp.value[sensorReading.{#SNMPINDEX}]|
-
-## Triggers
-
-|Name|Description|Expression|Severity|Dependencies and additional info|
-|----|-----------|----|----|----|
-|{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3`|WARNING|<p>**Depends on**:</p><p>- {#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}</p>|
-|{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}|<p>This trigger uses temperature sensor values as well as temperature sensor status if available</p>|`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3`|HIGH||
-|{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""}|<p>-</p>|`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}<{$TEMP_CRIT_LOW:""}`<p>Recovery expression:</p>`{TEMPLATE_NAME:sensor.temp.value[sensorReading.{#SNMPINDEX}].min(5m)}>{$TEMP_CRIT_LOW:""}+3`|AVERAGE||
-
-## Feedback
-
-Please report any issues with the template at https://support.zabbix.com
-