The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create a host for FAS3220 with cluster management IP as SNMPv2 interface.
Link the template to the host.
Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$IF.UTIL.MAX} | 95 |
|
| {$IF.ERRORS.WARN} | ||
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization expressed in %. |
90 |
| {$FAS3220.FS.NAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.FS.NAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
snapshot |
| {$FAS3220.FS.TYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
.* |
| {$FAS3220.FS.TYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.TYPE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
.* |
| {$FAS3220.NET.PORT.TYPE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.ROLE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
.* |
| {$FAS3220.NET.PORT.ROLE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.NAME.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.NET.PORT.NAME.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$FAS3220.FS.PUSED.MAX.CRIT} | Maximum percentage of disk used. Can be used with {#FSNAME} as context. |
90 |
| {$FAS3220.FS.AVAIL.MIN.CRIT} | Minimum available space on the disk. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.TIME} | The time during which disk usage may exceed the threshold. Can be used with {#FSNAME} as context. |
10m |
| {$FAS3220.FS.USE.PCT} | Macro define what threshold will be used for disk space trigger: 0 - use Bytes ({$FAS3220.FS.AVAIL.MIN.CRIT}) 1 - use percents ({$FAS3220.FS.PUSED.MAX.CRIT}) Can be used with {#FSNAME} as context. |
1 |
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Product version | MIB: NETAPP-MIB Version string for the software running on this platform. |
SNMP agent | fas3220.inventory[productVersion] Preprocessing
|
| Product firmware version | Version string for the firmware running on this platform. |
SNMP agent | fas3220.inventory[productFirmwareVersion] Preprocessing
|
| Failed disks count | The number of disks that are currently broken. |
SNMP agent | fas3220.disk[diskFailedCount] Preprocessing
|
| Failed disks message | If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described. |
SNMP agent | fas3220.disk[diskFailedMessage] Preprocessing
|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB 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. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB 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 |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB 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. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | The host accessibility by ICMP ping. 0 - ICMP ping fails; 1 - ICMP ping successful. |
Simple check | icmpping |
| ICMP loss | The percentage of lost packets. |
Simple check | icmppingloss |
| ICMP response time | The ICMP ping response time (in seconds). |
Simple check | icmppingsec |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Number of failed disks has changed | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedCount])>0 and last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#1)<>last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#2) |
Warning | |
| NetApp FAS3220: Host has been restarted | Uptime is less than 10 minutes. |
(last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/NetApp FAS3220 by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| NetApp FAS3220: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/NetApp FAS3220 by SNMP/system.name,#1)<>last(/NetApp FAS3220 by SNMP/system.name,#2) and length(last(/NetApp FAS3220 by SNMP/system.name))>0 |
Info | Manual close: Yes |
| NetApp FAS3220: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/NetApp FAS3220 by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| NetApp FAS3220: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/NetApp FAS3220 by SNMP/icmpping,#3)=0 |
High | |
| NetApp FAS3220: High ICMP ping loss | ICMP packets loss detected. |
min(/NetApp FAS3220 by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/NetApp FAS3220 by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
| NetApp FAS3220: High ICMP ping response time | Average ICMP response time is too high. |
avg(/NetApp FAS3220 by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | Discovery of CPU metrics per node |
SNMP agent | fas3220.cpu.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: CPU utilization | The average, over the last minute, of the percentage of time that this processor was not idle. |
SNMP agent | fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/NetApp FAS3220 by SNMP/fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Cluster metrics discovery | Discovery of Cluster metrics per node |
SNMP agent | fas3220.cluster.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Location | Node Location. Same as sysLocation for a specific node. |
SNMP agent | fas3220.cluster[nodeLocation, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Model | Node Model. Same as productModel for a specific node. |
SNMP agent | fas3220.cluster[nodeModel, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Serial number | Node Serial Number. Same as productSerialNum for a specific node. |
SNMP agent | fas3220.cluster[nodeSerialNumber, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Uptime | Node uptime. Same as sysUpTime for a specific node. |
SNMP agent | fas3220.cluster[nodeUptime, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Health | Whether or not the node can communicate with the cluster. |
SNMP agent | fas3220.cluster[nodeHealth, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: NVRAM battery status | An indication of the current status of the NVRAM battery or batteries. Batteries which are fully or partially discharged may not fully protect the system during a crash. The end-of-life status values are based on the manufacturer's recommended life for the batteries. Possible values: ok(1), partiallyDischarged(2), fullyDischarged(3), notPresent(4), nearEndOfLife(5), atEndOfLife(6), unknown(7), overCharged(8), fullyCharged(9). |
SNMP agent | fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Over-temperature | An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. |
SNMP agent | fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN count | Count of the number of chassis fans that are not operating within the recommended RPM range. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN message | Text message describing current condition of chassis fans. This is useful only if envFailedFanCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies count | Count of the number of power supplies that are in degraded mode. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies message | Text message describing the state of any power supplies that are currently degraded. This is useful only if envFailedPowerSupplyCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: Host has been restarted | Uptime is less than 10 minutes. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeUptime, "{#NODE.NAME}"])<10m |
Info | Manual close: Yes |
| NetApp FAS3220: Node {#NODE.NAME}: Node can not communicate with the cluster | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeHealth, "{#NODE.NAME}"])=0 |
High | Manual close: Yes | |
| NetApp FAS3220: Node {#NODE.NAME}: NVRAM battery status is not OK | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"])<>1 |
Average | Manual close: Yes | |
| NetApp FAS3220: Node {#NODE.NAME}: Temperature is over than recommended | The hardware will shutdown if the temperature exceeds critical thresholds. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"])=2 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Failed FAN count is over than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"]) |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Degraded power supplies count is more than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"]) |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HA discovery | Discovery of high availability metrics per node |
SNMP agent | fas3220.ha.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Cannot takeover cause | The reason node cannot take over it's HA partner {#PARTNER.NAME}. Possible states: ok(1), unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
SNMP agent | fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: HA settings | High Availability configuration settings. The value notConfigured(1) indicates that the HA is not licensed. The thisNodeDead(5) setting indicates that this node has been takenover. |
SNMP agent | fas3220.ha[haSettings, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: Node cannot takeover it's HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE} | Possible reasons: |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"])<>1 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Node has been taken over | The thisNodeDead(5) setting indicates that this node has been takenover. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=5 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: HA is not licensed | The value notConfigured(1) indicates that the HA is not licensed. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=1 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Filesystems discovery | Filesystems discovery with filter. |
SNMP agent | fas3220.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VSERVER}{#FSNAME}: Total space used | The total disk space that is in use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64UsedKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space available | The total disk space that is free for use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space | The total capacity in bytes for {#FSNAME}. |
SNMP agent | fas3220.fs[df64TotalKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Used space percents | The percentage of disk space currently in use on {#FSNAME}. |
SNMP agent | fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by compression percents | Provides the percentage of compression savings in a volume, which is ((compr_saved/used)) * 10(compr_saved + 0). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfCompressSavedPercent, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by deduplication percents | Provides the percentage of deduplication savings in a volume, which is ((dedup_saved/(dedup_saved + used)) * 100). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfDedupeSavedPercent, "{#VSERVER}{#FSNAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: {#VSERVER}{#FSNAME}: Disk space is too low | min(/NetApp FAS3220 by SNMP/fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0 |
High | ||
| NetApp FAS3220: {#VSERVER}{#FSNAME}: Disk space is too low | max(/NetApp FAS3220 by SNMP/fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network ports discovery | Network interfaces discovery with filter. |
SNMP agent | fas3220.net.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Up by an administrator | Indicates whether the port status is set 'UP' by an administrator. |
SNMP agent | fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Role | Role of the port. A port must have one of the following roles: cluster(1), data(2), mgmt(3), intercluster(4), cluster-mgmt(5) or undef(0). The cluster port is used to communicate to other node(s) in the cluster. The data port services clients' requests. It is where all the file requests come in. The management port is used by administrator to manage resources within a node. The intercluster port is used to communicate to other cluster. The cluster-mgmt port is used to manage resources within the cluster. The undef role is for the port that has not yet been assigned a role. |
SNMP agent | fas3220.net.port[netportRole, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Speed | The speed appears on the port. It can be either undef(0), auto(1), ten Mb/s(2), hundred Mb/s(3), one Gb/s(4), or ten Gb/s(5). |
SNMP agent | fas3220.net.port[netportSpeedOper, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits received | The total number of octets received on the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64InOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits sent | The total number of octets transmitted out of the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64OutOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets with errors | MIB: IF-MIB The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |
SNMP agent | fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets with errors | MIB: IF-MIB The number of outbound packets that could not be transmitted because of errors. |
SNMP agent | fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64InDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64OutDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): State | The link-state of the port. Normally it is either UP(2) or DOWN(3). |
SNMP agent | fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health | The health status of the port. |
SNMP agent | fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health degraded reason | The list of reasons why the port is marked as degraded. |
SNMP agent | fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate | It recovers when it is below 80% of the |
min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes |
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down | Link state is not UP and the port status is set 'UP' by an administrator. |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"])<>2 and last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"])=1 |
Average | Manual close: Yes |
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"])<>0 and length(last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"]))>0 |
Info |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create a host for FAS3220 with cluster management IP as SNMPv2 interface.
Link the template to the host.
Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$IF.UTIL.MAX} | 95 |
|
| {$IF.ERRORS.WARN} | ||
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization expressed in %. |
90 |
| {$FAS3220.FS.NAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.FS.NAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
snapshot |
| {$FAS3220.FS.TYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
.* |
| {$FAS3220.FS.TYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.TYPE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
.* |
| {$FAS3220.NET.PORT.TYPE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.ROLE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
.* |
| {$FAS3220.NET.PORT.ROLE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.NAME.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.NET.PORT.NAME.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$FAS3220.FS.PUSED.MAX.CRIT} | Maximum percentage of disk used. Can be used with {#FSNAME} as context. |
90 |
| {$FAS3220.FS.AVAIL.MIN.CRIT} | Minimum available space on the disk. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.TIME} | The time during which disk usage may exceed the threshold. Can be used with {#FSNAME} as context. |
10m |
| {$FAS3220.FS.USE.PCT} | Macro define what threshold will be used for disk space trigger: 0 - use Bytes ({$FAS3220.FS.AVAIL.MIN.CRIT}) 1 - use percents ({$FAS3220.FS.PUSED.MAX.CRIT}) Can be used with {#FSNAME} as context. |
1 |
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Product version | MIB: NETAPP-MIB Version string for the software running on this platform. |
SNMP agent | fas3220.inventory[productVersion] Preprocessing
|
| Product firmware version | Version string for the firmware running on this platform. |
SNMP agent | fas3220.inventory[productFirmwareVersion] Preprocessing
|
| Failed disks count | The number of disks that are currently broken. |
SNMP agent | fas3220.disk[diskFailedCount] Preprocessing
|
| Failed disks message | If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described. |
SNMP agent | fas3220.disk[diskFailedMessage] Preprocessing
|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB 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. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB 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 |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB 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. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | Simple check | icmpping | |
| ICMP loss | Simple check | icmppingloss | |
| ICMP response time | Simple check | icmppingsec |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Number of failed disks has changed | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedCount])>0 and last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#1)<>last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#2) |
Warning | |
| NetApp FAS3220: Host has been restarted | Uptime is less than 10 minutes. |
(last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/NetApp FAS3220 by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| NetApp FAS3220: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/NetApp FAS3220 by SNMP/system.name,#1)<>last(/NetApp FAS3220 by SNMP/system.name,#2) and length(last(/NetApp FAS3220 by SNMP/system.name))>0 |
Info | Manual close: Yes |
| NetApp FAS3220: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/NetApp FAS3220 by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| NetApp FAS3220: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/NetApp FAS3220 by SNMP/icmpping,#3)=0 |
High | |
| NetApp FAS3220: High ICMP ping loss | min(/NetApp FAS3220 by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/NetApp FAS3220 by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| NetApp FAS3220: High ICMP ping response time | Average ICMP response time is too high. |
avg(/NetApp FAS3220 by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | Discovery of CPU metrics per node |
SNMP agent | fas3220.cpu.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: CPU utilization | The average, over the last minute, of the percentage of time that this processor was not idle. |
SNMP agent | fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/NetApp FAS3220 by SNMP/fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Cluster metrics discovery | Discovery of Cluster metrics per node |
SNMP agent | fas3220.cluster.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Location | Node Location. Same as sysLocation for a specific node. |
SNMP agent | fas3220.cluster[nodeLocation, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Model | Node Model. Same as productModel for a specific node. |
SNMP agent | fas3220.cluster[nodeModel, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Serial number | Node Serial Number. Same as productSerialNum for a specific node. |
SNMP agent | fas3220.cluster[nodeSerialNumber, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Uptime | Node uptime. Same as sysUpTime for a specific node. |
SNMP agent | fas3220.cluster[nodeUptime, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Health | Whether or not the node can communicate with the cluster. |
SNMP agent | fas3220.cluster[nodeHealth, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: NVRAM battery status | An indication of the current status of the NVRAM battery or batteries. Batteries which are fully or partially discharged may not fully protect the system during a crash. The end-of-life status values are based on the manufacturer's recommended life for the batteries. Possible values: ok(1), partiallyDischarged(2), fullyDischarged(3), notPresent(4), nearEndOfLife(5), atEndOfLife(6), unknown(7), overCharged(8), fullyCharged(9). |
SNMP agent | fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Over-temperature | An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. |
SNMP agent | fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN count | Count of the number of chassis fans that are not operating within the recommended RPM range. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN message | Text message describing current condition of chassis fans. This is useful only if envFailedFanCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies count | Count of the number of power supplies that are in degraded mode. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies message | Text message describing the state of any power supplies that are currently degraded. This is useful only if envFailedPowerSupplyCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: Host has been restarted | Uptime is less than 10 minutes. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeUptime, "{#NODE.NAME}"])<10m |
Info | Manual close: Yes |
| NetApp FAS3220: Node {#NODE.NAME}: Node can not communicate with the cluster | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeHealth, "{#NODE.NAME}"])=0 |
High | Manual close: Yes | |
| NetApp FAS3220: Node {#NODE.NAME}: NVRAM battery status is not OK | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"])<>1 |
Average | Manual close: Yes | |
| NetApp FAS3220: Node {#NODE.NAME}: Temperature is over than recommended | The hardware will shutdown if the temperature exceeds critical thresholds. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"])=2 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Failed FAN count is over than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"]) |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Degraded power supplies count is more than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"]) |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HA discovery | Discovery of high availability metrics per node |
SNMP agent | fas3220.ha.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Cannot takeover cause | The reason node cannot take over it's HA partner {#PARTNER.NAME}. Possible states: ok(1), unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
SNMP agent | fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: HA settings | High Availability configuration settings. The value notConfigured(1) indicates that the HA is not licensed. The thisNodeDead(5) setting indicates that this node has been takenover. |
SNMP agent | fas3220.ha[haSettings, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: Node cannot takeover it's HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE} | Possible reasons: |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"])<>1 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Node has been taken over | The thisNodeDead(5) setting indicates that this node has been takenover. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=5 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: HA is not licensed | The value notConfigured(1) indicates that the HA is not licensed. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=1 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Filesystems discovery | Filesystems discovery with filter. |
SNMP agent | fas3220.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VSERVER}{#FSNAME}: Total space used | The total disk space that is in use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64UsedKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space available | The total disk space that is free for use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space | The total capacity in bytes for {#FSNAME}. |
SNMP agent | fas3220.fs[df64TotalKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Used space percents | The percentage of disk space currently in use on {#FSNAME}. |
SNMP agent | fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by compression percents | Provides the percentage of compression savings in a volume, which is ((compr_saved/used)) * 10(compr_saved + 0). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfCompressSavedPercent, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by deduplication percents | Provides the percentage of deduplication savings in a volume, which is ((dedup_saved/(dedup_saved + used)) * 100). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfDedupeSavedPercent, "{#VSERVER}{#FSNAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: {#VSERVER}{#FSNAME}: Disk space is too low | min(/NetApp FAS3220 by SNMP/fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0 |
High | ||
| NetApp FAS3220: {#VSERVER}{#FSNAME}: Disk space is too low | max(/NetApp FAS3220 by SNMP/fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network ports discovery | Network interfaces discovery with filter. |
SNMP agent | fas3220.net.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Up by an administrator | Indicates whether the port status is set 'UP' by an administrator. |
SNMP agent | fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Role | Role of the port. A port must have one of the following roles: cluster(1), data(2), mgmt(3), intercluster(4), cluster-mgmt(5) or undef(0). The cluster port is used to communicate to other node(s) in the cluster. The data port services clients' requests. It is where all the file requests come in. The management port is used by administrator to manage resources within a node. The intercluster port is used to communicate to other cluster. The cluster-mgmt port is used to manage resources within the cluster. The undef role is for the port that has not yet been assigned a role. |
SNMP agent | fas3220.net.port[netportRole, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Speed | The speed appears on the port. It can be either undef(0), auto(1), ten Mb/s(2), hundred Mb/s(3), one Gb/s(4), or ten Gb/s(5). |
SNMP agent | fas3220.net.port[netportSpeedOper, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits received | The total number of octets received on the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64InOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits sent | The total number of octets transmitted out of the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64OutOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets with errors | MIB: IF-MIB The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |
SNMP agent | fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets with errors | MIB: IF-MIB The number of outbound packets that could not be transmitted because of errors. |
SNMP agent | fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64InDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64OutDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): State | The link-state of the port. Normally it is either UP(2) or DOWN(3). |
SNMP agent | fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health | The health status of the port. |
SNMP agent | fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health degraded reason | The list of reasons why the port is marked as degraded. |
SNMP agent | fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate | It recovers when it is below 80% of the |
min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes |
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down | Link state is not UP and the port status is set 'UP' by an administrator. |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"])<>2 and last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"])=1 |
Average | Manual close: Yes |
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"])<>0 and length(last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"]))>0 |
Info |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create a host for FAS3220 with cluster management IP as SNMPv2 interface.
Link the template to the host.
Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$IF.UTIL.MAX} | 95 |
|
| {$IF.ERRORS.WARN} | ||
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization expressed in %. |
90 |
| {$FAS3220.FS.NAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.FS.NAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
snapshot |
| {$FAS3220.FS.TYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
.* |
| {$FAS3220.FS.TYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.TYPE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
.* |
| {$FAS3220.NET.PORT.TYPE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.ROLE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
.* |
| {$FAS3220.NET.PORT.ROLE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.NAME.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.NET.PORT.NAME.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$FAS3220.FS.PUSED.MAX.CRIT} | Maximum percentage of disk used. Can be used with {#FSNAME} as context. |
90 |
| {$FAS3220.FS.AVAIL.MIN.CRIT} | Minimum available space on the disk. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.TIME} | The time during which disk usage may exceed the threshold. Can be used with {#FSNAME} as context. |
10m |
| {$FAS3220.FS.USE.PCT} | Macro define what threshold will be used for disk space trigger: 0 - use Bytes ({$FAS3220.FS.AVAIL.MIN.CRIT}) 1 - use percents ({$FAS3220.FS.PUSED.MAX.CRIT}) Can be used with {#FSNAME} as context. |
1 |
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Product version | MIB: NETAPP-MIB Version string for the software running on this platform. |
SNMP agent | fas3220.inventory[productVersion] Preprocessing
|
| Product firmware version | Version string for the firmware running on this platform. |
SNMP agent | fas3220.inventory[productFirmwareVersion] Preprocessing
|
| Failed disks count | The number of disks that are currently broken. |
SNMP agent | fas3220.disk[diskFailedCount] Preprocessing
|
| Failed disks message | If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described. |
SNMP agent | fas3220.disk[diskFailedMessage] Preprocessing
|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB 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. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB 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 |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB 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. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | The host accessibility by ICMP ping. 0 - ICMP ping fails; 1 - ICMP ping successful. |
Simple check | icmpping |
| ICMP loss | The percentage of lost packets. |
Simple check | icmppingloss |
| ICMP response time | The ICMP ping response time (in seconds). |
Simple check | icmppingsec |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Number of failed disks has changed | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedCount])>0 and last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#1)<>last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#2) |
Warning | |
| NetApp FAS3220: Host has been restarted | Uptime is less than 10 minutes. |
(last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/NetApp FAS3220 by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| NetApp FAS3220: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/NetApp FAS3220 by SNMP/system.name,#1)<>last(/NetApp FAS3220 by SNMP/system.name,#2) and length(last(/NetApp FAS3220 by SNMP/system.name))>0 |
Info | Manual close: Yes |
| NetApp FAS3220: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/NetApp FAS3220 by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| NetApp FAS3220: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/NetApp FAS3220 by SNMP/icmpping,#3)=0 |
High | |
| NetApp FAS3220: High ICMP ping loss | ICMP packets loss detected. |
min(/NetApp FAS3220 by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/NetApp FAS3220 by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
| NetApp FAS3220: High ICMP ping response time | Average ICMP response time is too high. |
avg(/NetApp FAS3220 by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | Discovery of CPU metrics per node |
SNMP agent | fas3220.cpu.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: CPU utilization | The average, over the last minute, of the percentage of time that this processor was not idle. |
SNMP agent | fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/NetApp FAS3220 by SNMP/fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Cluster metrics discovery | Discovery of Cluster metrics per node |
SNMP agent | fas3220.cluster.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Location | Node Location. Same as sysLocation for a specific node. |
SNMP agent | fas3220.cluster[nodeLocation, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Model | Node Model. Same as productModel for a specific node. |
SNMP agent | fas3220.cluster[nodeModel, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Serial number | Node Serial Number. Same as productSerialNum for a specific node. |
SNMP agent | fas3220.cluster[nodeSerialNumber, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Uptime | Node uptime. Same as sysUpTime for a specific node. |
SNMP agent | fas3220.cluster[nodeUptime, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Health | Whether or not the node can communicate with the cluster. |
SNMP agent | fas3220.cluster[nodeHealth, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: NVRAM battery status | An indication of the current status of the NVRAM battery or batteries. Batteries which are fully or partially discharged may not fully protect the system during a crash. The end-of-life status values are based on the manufacturer's recommended life for the batteries. Possible values: ok(1), partiallyDischarged(2), fullyDischarged(3), notPresent(4), nearEndOfLife(5), atEndOfLife(6), unknown(7), overCharged(8), fullyCharged(9). |
SNMP agent | fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Over-temperature | An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. |
SNMP agent | fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN count | Count of the number of chassis fans that are not operating within the recommended RPM range. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN message | Text message describing current condition of chassis fans. This is useful only if envFailedFanCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies count | Count of the number of power supplies that are in degraded mode. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies message | Text message describing the state of any power supplies that are currently degraded. This is useful only if envFailedPowerSupplyCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: Host has been restarted | Uptime is less than 10 minutes. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeUptime, "{#NODE.NAME}"])<10m |
Info | Manual close: Yes |
| NetApp FAS3220: Node {#NODE.NAME}: Node can not communicate with the cluster | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeHealth, "{#NODE.NAME}"])=0 |
High | Manual close: Yes | |
| NetApp FAS3220: Node {#NODE.NAME}: NVRAM battery status is not OK | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"])<>1 |
Average | Manual close: Yes | |
| NetApp FAS3220: Node {#NODE.NAME}: Temperature is over than recommended | The hardware will shutdown if the temperature exceeds critical thresholds. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"])=2 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Failed FAN count is over than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"]) |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Degraded power supplies count is more than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"]) |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HA discovery | Discovery of high availability metrics per node |
SNMP agent | fas3220.ha.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Cannot takeover cause | The reason node cannot take over it's HA partner {#PARTNER.NAME}. Possible states: ok(1), unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
SNMP agent | fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: HA settings | High Availability configuration settings. The value notConfigured(1) indicates that the HA is not licensed. The thisNodeDead(5) setting indicates that this node has been takenover. |
SNMP agent | fas3220.ha[haSettings, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE.NAME}: Node cannot takeover it's HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE} | Possible reasons: |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"])<>1 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: Node has been taken over | The thisNodeDead(5) setting indicates that this node has been takenover. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=5 |
High | |
| NetApp FAS3220: Node {#NODE.NAME}: HA is not licensed | The value notConfigured(1) indicates that the HA is not licensed. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=1 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Filesystems discovery | Filesystems discovery with filter. |
SNMP agent | fas3220.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VSERVER}{#FSNAME}: Total space used | The total disk space that is in use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64UsedKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space available | The total disk space that is free for use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space | The total capacity in bytes for {#FSNAME}. |
SNMP agent | fas3220.fs[df64TotalKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Used space percents | The percentage of disk space currently in use on {#FSNAME}. |
SNMP agent | fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by compression percents | Provides the percentage of compression savings in a volume, which is ((compr_saved/used)) * 10(compr_saved + 0). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfCompressSavedPercent, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by deduplication percents | Provides the percentage of deduplication savings in a volume, which is ((dedup_saved/(dedup_saved + used)) * 100). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfDedupeSavedPercent, "{#VSERVER}{#FSNAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: {#VSERVER}{#FSNAME}: Disk space is too low | min(/NetApp FAS3220 by SNMP/fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0 |
High | ||
| NetApp FAS3220: {#VSERVER}{#FSNAME}: Disk space is too low | max(/NetApp FAS3220 by SNMP/fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network ports discovery | Network interfaces discovery with filter. |
SNMP agent | fas3220.net.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Up by an administrator | Indicates whether the port status is set 'UP' by an administrator. |
SNMP agent | fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Role | Role of the port. A port must have one of the following roles: cluster(1), data(2), mgmt(3), intercluster(4), cluster-mgmt(5) or undef(0). The cluster port is used to communicate to other node(s) in the cluster. The data port services clients' requests. It is where all the file requests come in. The management port is used by administrator to manage resources within a node. The intercluster port is used to communicate to other cluster. The cluster-mgmt port is used to manage resources within the cluster. The undef role is for the port that has not yet been assigned a role. |
SNMP agent | fas3220.net.port[netportRole, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Speed | The speed appears on the port. It can be either undef(0), auto(1), ten Mb/s(2), hundred Mb/s(3), one Gb/s(4), or ten Gb/s(5). |
SNMP agent | fas3220.net.port[netportSpeedOper, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits received | The total number of octets received on the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64InOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits sent | The total number of octets transmitted out of the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64OutOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets with errors | MIB: IF-MIB The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |
SNMP agent | fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets with errors | MIB: IF-MIB The number of outbound packets that could not be transmitted because of errors. |
SNMP agent | fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64InDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64OutDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): State | The link-state of the port. Normally it is either UP(2) or DOWN(3). |
SNMP agent | fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health | The health status of the port. |
SNMP agent | fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health degraded reason | The list of reasons why the port is marked as degraded. |
SNMP agent | fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate | It recovers when it is below 80% of the |
min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes |
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down | Link state is not UP and the port status is set 'UP' by an administrator. |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"])<>2 and last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"])=1 |
Average | Manual close: Yes |
| NetApp FAS3220: Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"])<>0 and length(last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"]))>0 |
Info |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create a host for FAS3220 with cluster management IP as SNMPv2 interface.
Link the template to the host.
Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$IF.UTIL.MAX} | 95 |
|
| {$IF.ERRORS.WARN} | ||
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization expressed in %. |
90 |
| {$FAS3220.FS.NAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.FS.NAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
snapshot |
| {$FAS3220.FS.TYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
.* |
| {$FAS3220.FS.TYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.TYPE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
.* |
| {$FAS3220.NET.PORT.TYPE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.ROLE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
.* |
| {$FAS3220.NET.PORT.ROLE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.NAME.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.NET.PORT.NAME.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$FAS3220.FS.PUSED.MAX.CRIT} | Maximum percentage of disk used. Can be used with {#FSNAME} as context. |
90 |
| {$FAS3220.FS.AVAIL.MIN.CRIT} | Minimum available space on the disk. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.TIME} | The time during which disk usage may exceed the threshold. Can be used with {#FSNAME} as context. |
10m |
| {$FAS3220.FS.USE.PCT} | Macro define what threshold will be used for disk space trigger: 0 - use Bytes ({$FAS3220.FS.AVAIL.MIN.CRIT}) 1 - use percents ({$FAS3220.FS.PUSED.MAX.CRIT}) Can be used with {#FSNAME} as context. |
1 |
| {$SNMP.TIMEOUT} | 5m |
|
| {$ICMP_LOSS_WARN} | 20 |
|
| {$ICMP_RESPONSE_TIME_WARN} | 0.15 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| NetApp FAS3220: Product version | MIB: NETAPP-MIB Version string for the software running on this platform. |
SNMP agent | fas3220.inventory[productVersion] Preprocessing
|
| NetApp FAS3220: Product firmware version | Version string for the firmware running on this platform. |
SNMP agent | fas3220.inventory[productFirmwareVersion] Preprocessing
|
| NetApp FAS3220: Failed disks count | The number of disks that are currently broken. |
SNMP agent | fas3220.disk[diskFailedCount] Preprocessing
|
| NetApp FAS3220: Failed disks message | If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described. |
SNMP agent | fas3220.disk[diskFailedMessage] Preprocessing
|
| NetApp FAS3220: Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| NetApp FAS3220: Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| NetApp FAS3220: SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| NetApp FAS3220: System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| NetApp FAS3220: System contact details | MIB: SNMPv2-MIB 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. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| NetApp FAS3220: System object ID | MIB: SNMPv2-MIB 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 |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| NetApp FAS3220: System name | MIB: SNMPv2-MIB 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. |
SNMP agent | system.name Preprocessing
|
| NetApp FAS3220: System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| NetApp FAS3220: SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| NetApp FAS3220: ICMP ping | Simple check | icmpping | |
| NetApp FAS3220: ICMP loss | Simple check | icmppingloss | |
| NetApp FAS3220: ICMP response time | Simple check | icmppingsec |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Number of failed disks has changed | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedCount])>0 and last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#1)<>last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#2) |
Warning | |
| NetApp FAS3220: Host has been restarted | Uptime is less than 10 minutes. |
(last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/NetApp FAS3220 by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| NetApp FAS3220: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/NetApp FAS3220 by SNMP/system.name,#1)<>last(/NetApp FAS3220 by SNMP/system.name,#2) and length(last(/NetApp FAS3220 by SNMP/system.name))>0 |
Info | Manual close: Yes |
| NetApp FAS3220: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/NetApp FAS3220 by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| NetApp FAS3220: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/NetApp FAS3220 by SNMP/icmpping,#3)=0 |
High | |
| NetApp FAS3220: High ICMP ping loss | min(/NetApp FAS3220 by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/NetApp FAS3220 by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| NetApp FAS3220: High ICMP ping response time | avg(/NetApp FAS3220 by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | Discovery of CPU metrics per node |
SNMP agent | fas3220.cpu.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: CPU utilization | The average, over the last minute, of the percentage of time that this processor was not idle. |
SNMP agent | fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/NetApp FAS3220 by SNMP/fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Cluster metrics discovery | Discovery of Cluster metrics per node |
SNMP agent | fas3220.cluster.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Location | Node Location. Same as sysLocation for a specific node. |
SNMP agent | fas3220.cluster[nodeLocation, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Model | Node Model. Same as productModel for a specific node. |
SNMP agent | fas3220.cluster[nodeModel, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Serial number | Node Serial Number. Same as productSerialNum for a specific node. |
SNMP agent | fas3220.cluster[nodeSerialNumber, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Uptime | Node uptime. Same as sysUpTime for a specific node. |
SNMP agent | fas3220.cluster[nodeUptime, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Health | Whether or not the node can communicate with the cluster. |
SNMP agent | fas3220.cluster[nodeHealth, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: NVRAM battery status | An indication of the current status of the NVRAM battery or batteries. Batteries which are fully or partially discharged may not fully protect the system during a crash. The end-of-life status values are based on the manufacturer's recommended life for the batteries. Possible values: ok(1), partiallyDischarged(2), fullyDischarged(3), notPresent(4), nearEndOfLife(5), atEndOfLife(6), unknown(7), overCharged(8), fullyCharged(9). |
SNMP agent | fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Over-temperature | An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. |
SNMP agent | fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN count | Count of the number of chassis fans that are not operating within the recommended RPM range. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN message | Text message describing current condition of chassis fans. This is useful only if envFailedFanCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies count | Count of the number of power supplies that are in degraded mode. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies message | Text message describing the state of any power supplies that are currently degraded. This is useful only if envFailedPowerSupplyCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: Host has been restarted | Uptime is less than 10 minutes. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeUptime, "{#NODE.NAME}"])<10m |
Info | Manual close: Yes |
| Node {#NODE.NAME}: Node can not communicate with the cluster | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeHealth, "{#NODE.NAME}"])=0 |
High | Manual close: Yes | |
| Node {#NODE.NAME}: NVRAM battery status is not OK | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"])<>1 |
Average | Manual close: Yes | |
| Node {#NODE.NAME}: Temperature is over than recommended | The hardware will shutdown if the temperature exceeds critical thresholds. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"])=2 |
High | |
| Node {#NODE.NAME}: Failed FAN count is over than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"]) |
High | |
| Node {#NODE.NAME}: Degraded power supplies count is more than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"]) |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HA discovery | Discovery of high availability metrics per node |
SNMP agent | fas3220.ha.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Cannot takeover cause | The reason node cannot take over it's HA partner {#PARTNER.NAME}. Possible states: ok(1), unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
SNMP agent | fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: HA settings | High Availability configuration settings. The value notConfigured(1) indicates that the HA is not licensed. The thisNodeDead(5) setting indicates that this node has been takenover. |
SNMP agent | fas3220.ha[haSettings, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: Node cannot takeover it's HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE} | Possible reasons: |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"])<>1 |
High | |
| Node {#NODE.NAME}: Node has been taken over | The thisNodeDead(5) setting indicates that this node has been takenover. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=5 |
High | |
| Node {#NODE.NAME}: HA is not licensed | The value notConfigured(1) indicates that the HA is not licensed. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=1 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Filesystems discovery | Filesystems discovery with filter. |
SNMP agent | fas3220.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VSERVER}{#FSNAME}: Total space used | The total disk space that is in use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64UsedKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space available | The total disk space that is free for use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space | The total capacity in bytes for {#FSNAME}. |
SNMP agent | fas3220.fs[df64TotalKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Used space percents | The percentage of disk space currently in use on {#FSNAME}. |
SNMP agent | fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by compression percents | Provides the percentage of compression savings in a volume, which is ((compr_saved/used)) * 10(compr_saved + 0). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfCompressSavedPercent, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by deduplication percents | Provides the percentage of deduplication savings in a volume, which is ((dedup_saved/(dedup_saved + used)) * 100). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfDedupeSavedPercent, "{#VSERVER}{#FSNAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#VSERVER}{#FSNAME}: Disk space is too low | min(/NetApp FAS3220 by SNMP/fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0 |
High | ||
| {#VSERVER}{#FSNAME}: Disk space is too low | max(/NetApp FAS3220 by SNMP/fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network ports discovery | Network interfaces discovery with filter. |
SNMP agent | fas3220.net.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Up by an administrator | Indicates whether the port status is set 'UP' by an administrator. |
SNMP agent | fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Role | Role of the port. A port must have one of the following roles: cluster(1), data(2), mgmt(3), intercluster(4), cluster-mgmt(5) or undef(0). The cluster port is used to communicate to other node(s) in the cluster. The data port services clients' requests. It is where all the file requests come in. The management port is used by administrator to manage resources within a node. The intercluster port is used to communicate to other cluster. The cluster-mgmt port is used to manage resources within the cluster. The undef role is for the port that has not yet been assigned a role. |
SNMP agent | fas3220.net.port[netportRole, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Speed | The speed appears on the port. It can be either undef(0), auto(1), ten Mb/s(2), hundred Mb/s(3), one Gb/s(4), or ten Gb/s(5). |
SNMP agent | fas3220.net.port[netportSpeedOper, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits received | The total number of octets received on the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64InOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits sent | The total number of octets transmitted out of the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64OutOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets with errors | MIB: IF-MIB The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |
SNMP agent | fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets with errors | MIB: IF-MIB The number of outbound packets that could not be transmitted because of errors. |
SNMP agent | fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64InDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64OutDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): State | The link-state of the port. Normally it is either UP(2) or DOWN(3). |
SNMP agent | fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health | The health status of the port. |
SNMP agent | fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health degraded reason | The list of reasons why the port is marked as degraded. |
SNMP agent | fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate | It recovers when it is below 80% of the |
min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down | Link state is not UP and the port status is set 'UP' by an administrator. |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"])<>2 and last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"])=1 |
Average | Manual close: Yes |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"])<>0 and length(last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"]))>0 |
Info |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
For Zabbix version: 6.2 and higher. The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.
This template was tested on:
See Zabbix template operation for basic instructions.
1. Create a host for FAS3220 with cluster management IP as SNMPv2 interface.
2. Link the template to the host.
3. Customize macro values if needed.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization in %. |
90 |
| {$FAS3220.FS.AVAIL.MIN.CRIT} | Minimum available space on the disk. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.NAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.FS.NAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
snapshot |
| {$FAS3220.FS.PUSED.MAX.CRIT} | Maximum percentage of disk used. Can be used with {#FSNAME} as context. |
90 |
| {$FAS3220.FS.TIME} | The time during which disk usage may exceed the threshold. Can be used with {#FSNAME} as context. |
10m |
| {$FAS3220.FS.TYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
.* |
| {$FAS3220.FS.TYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
CHANGE_IF_NEEDED |
| {$FAS3220.FS.USE.PCT} | Macro define what threshold will be used for disk space trigger: 0 - use Bytes ({$FAS3220.FS.AVAIL.MIN.CRIT}) 1 - use percents ({$FAS3220.FS.PUSED.MAX.CRIT}) Can be used with {#FSNAME} as context. |
1 |
| {$FAS3220.NET.PORT.NAME.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.NET.PORT.NAME.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.ROLE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
.* |
| {$FAS3220.NET.PORT.ROLE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.TYPE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
.* |
| {$FAS3220.NET.PORT.TYPE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
CHANGE_IF_NEEDED |
| {$ICMP_LOSS_WARN} | - |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | - |
0.15 |
| {$IF.ERRORS.WARN} | - |
`` |
| {$IF.UTIL.MAX} | - |
95 |
| {$SNMP.TIMEOUT} | - |
5m |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Cluster metrics discovery | Discovery of Cluster metrics per node |
SNMP | fas3220.cluster.discovery |
| CPU discovery | Discovery of CPU metrics per node |
SNMP | fas3220.cpu.discovery |
| Filesystems discovery | Filesystems discovery with filter. |
SNMP | fas3220.fs.discovery Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX Overrides: Do not discover aggregate metrics |
| HA discovery | Discovery of high availability metrics per node |
SNMP | fas3220.ha.discovery |
| Network ports discovery | Network interfaces discovery with filter. |
SNMP | fas3220.net.discovery Preprocessing: - JAVASCRIPT: Filter: AND- {#TYPE} MATCHES_REGEX - {#TYPE} NOT_MATCHES_REGEX - {#ROLE} MATCHES_REGEX - {#TYPE} NOT_MATCHES_REGEX - {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Node {#NODE.NAME}: CPU utilization | The average, over the last minute, of the percentage of time that this processor was not idle. |
SNMP | fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"] |
| General | SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP_TRAP | snmptrap.fallback |
| General | System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP | system.location[sysLocation.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System contact details | MIB: SNMPv2-MIB 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. |
SNMP | system.contact[sysContact.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System object ID | MIB: SNMPv2-MIB 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 |
SNMP | system.objectid[sysObjectID.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System name | MIB: SNMPv2-MIB 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. |
SNMP | system.name Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP | system.descr[sysDescr.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Product version | MIB: NETAPP-MIB Version string for the software running on this platform. |
SNMP | fas3220.inventory[productVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Product firmware version | Version string for the firmware running on this platform. |
SNMP | fas3220.inventory[productFirmwareVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Failed disks count | The number of disks that are currently broken. |
SNMP | fas3220.disk[diskFailedCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Failed disks message | If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described. |
SNMP | fas3220.disk[diskFailedMessage] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Location | Node Location. Same as sysLocation for a specific node. |
SNMP | fas3220.cluster[nodeLocation, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Model | Node Model. Same as productModel for a specific node. |
SNMP | fas3220.cluster[nodeModel, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Serial number | Node Serial Number. Same as productSerialNum for a specific node. |
SNMP | fas3220.cluster[nodeSerialNumber, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Uptime | Node uptime. Same as sysUpTime for a specific node. |
SNMP | fas3220.cluster[nodeUptime, "{#NODE.NAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | Node {#NODE.NAME}: Health | Whether or not the node can communicate with the cluster. |
SNMP | fas3220.cluster[nodeHealth, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: NVRAM battery status | An indication of the current status of the NVRAM battery or batteries. Batteries which are fully or partially discharged may not fully protect the system during a crash. The end-of-life status values are based on the manufacturer's recommended life for the batteries. Possible values: ok(1), partiallyDischarged(2), fullyDischarged(3), notPresent(4), nearEndOfLife(5), atEndOfLife(6), unknown(7), overCharged(8), fullyCharged(9). |
SNMP | fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Over-temperature | An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. |
SNMP | fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Failed FAN count | Count of the number of chassis fans that are not operating within the recommended RPM range. |
SNMP | fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Failed FAN message | Text message describing current condition of chassis fans. This is useful only if envFailedFanCount is not zero. |
SNMP | fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Degraded power supplies count | Count of the number of power supplies that are in degraded mode. |
SNMP | fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Degraded power supplies message | Text message describing the state of any power supplies that are currently degraded. This is useful only if envFailedPowerSupplyCount is not zero. |
SNMP | fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Cannot takeover cause | The reason node cannot take over it's HA partner {#PARTNER.NAME}. Possible states: ok(1), unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
SNMP | fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: HA settings | High Availability configuration settings. The value notConfigured(1) indicates that the HA is not licensed. The thisNodeDead(5) setting indicates that this node has been takenover. |
SNMP | fas3220.ha[haSettings, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space used | The total disk space that is in use on {#FSNAME}. |
SNMP | fas3220.fs[df64UsedKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space available | The total disk space that is free for use on {#FSNAME}. |
SNMP | fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space | The total capacity in Bytes for {#FSNAME}. |
SNMP | fas3220.fs[df64TotalKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Used space percents | The percentage of disk space currently in use on {#FSNAME}. |
SNMP | fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Saved by compression percents | Provides the percentage of compression savings in a volume, which is ((compr_saved/used)) * 10(compr_saved + 0). This is only returned for volumes. |
SNMP | fas3220.fs[dfCompressSavedPercent, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Saved by deduplication percents | Provides the percentage of deduplication savings in a volume, which is ((dedup_saved/(dedup_saved + used)) * 100). This is only returned for volumes. |
SNMP | fas3220.fs[dfDedupeSavedPercent, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Up by an administrator | Indicates whether the port status is set 'UP' by an administrator. |
SNMP | fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Role | Role of the port. A port must have one of the following roles: cluster(1), data(2), mgmt(3), intercluster(4), cluster-mgmt(5) or undef(0). The cluster port is used to communicate to other node(s) in the cluster. The data port services clients' requests. It is where all the file requests come in. The management port is used by administrator to manage resources within a node. The intercluster port is used to communicate to other cluster. The cluster-mgmt port is used to manage resources within the cluster. The undef role is for the port that has not yet been assigned a role. |
SNMP | fas3220.net.port[netportRole, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Speed | The speed appears on the port. It can be either undef(0), auto(1), ten Mb/s(2), hundred Mb/s(3), one Gb/s(4), or ten Gb/s(5). |
SNMP | fas3220.net.port[netportSpeedOper, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits received | The total number of octets received on the interface, including framing characters. |
SNMP | fas3220.net.if[if64InOctets, "{#NODE}", "{#IFNAME}"] Preprocessing: - MULTIPLIER: - CHANGE_PER_SECOND |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits sent | The total number of octets transmitted out of the interface, including framing characters. |
SNMP | fas3220.net.if[if64OutOctets, "{#NODE}", "{#IFNAME}"] Preprocessing: - MULTIPLIER: - CHANGE_PER_SECOND |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): State | The link-state of the port. Normally it is either UP(2) or DOWN(3). |
SNMP | fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Health | The health status of the port. |
SNMP | fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Health degraded reason | The list of reasons why the port is marked as degraded. |
SNMP | fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets with errors | MIB: IF-MIB The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |
SNMP | fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets with errors | MIB: IF-MIB The number of outbound packets that could not be transmitted because of errors. |
SNMP | fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP | fas3220.net.if[if64InDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP | fas3220.net.if[if64OutDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Status | Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP | system.net.uptime[sysUpTime.0] Preprocessing: - MULTIPLIER: |
| Status | Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP | system.hw.uptime[hrSystemUptime.0] Preprocessing: - CHECK_NOT_SUPPORTED ⛔️ON_FAIL: - MULTIPLIER: |
| Status | SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
INTERNAL | zabbix[host,snmp,available] |
| Status | ICMP ping | - |
SIMPLE | icmpping |
| Status | ICMP loss | - |
SIMPLE | icmppingloss |
| Status | ICMP response time | - |
SIMPLE | icmppingsec |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/NetApp FAS3220 by SNMP/fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"],5m)>{$CPU.UTIL.CRIT} |
WARNING | |
| System name has changed | System name has changed. Ack to close. |
last(/NetApp FAS3220 by SNMP/system.name,#1)<>last(/NetApp FAS3220 by SNMP/system.name,#2) and length(last(/NetApp FAS3220 by SNMP/system.name))>0 |
INFO | Manual close: YES |
| NetApp FAS3220: Number of failed disks has changed | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedCount])>0 and last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#1)<>last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#2)Recovery expression: last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedCount])=0 |
WARNING | |
| Node {#NODE.NAME}: Host has been restarted | Uptime is less than 10 minutes. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeUptime, "{#NODE.NAME}"])<10m |
INFO | Manual close: YES |
| Node {#NODE.NAME}: Node can not communicate with the cluster | - |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeHealth, "{#NODE.NAME}"])=0 |
HIGH | Manual close: YES |
| Node {#NODE.NAME}: NVRAM battery status is not OK | - |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"])<>1 |
AVERAGE | Manual close: YES |
| Node {#NODE.NAME}: Temperature is over than recommended | The hardware will shutdown if the temperature exceeds critical thresholds. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"])=2 |
HIGH | |
| Node {#NODE.NAME}: Failed FAN count is over than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"]) |
HIGH | |
| Node {#NODE.NAME}: Degraded power supplies count is more than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"]) |
AVERAGE | |
| Node {#NODE.NAME}: Node cannot takeover it's HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE} | Possible reasons: unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"])<>1 |
HIGH | |
| Node {#NODE.NAME}: Node has been taken over | The thisNodeDead(5) setting indicates that this node has been takenover. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=5 |
HIGH | |
| Node {#NODE.NAME}: HA is not licensed | The value notConfigured(1) indicates that the HA is not licensed. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=1 |
AVERAGE | |
| {#VSERVER}{#FSNAME}: Disk space is too low | - |
min(/NetApp FAS3220 by SNMP/fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0 |
HIGH | |
| {#VSERVER}{#FSNAME}: Disk space is too low | - |
max(/NetApp FAS3220 by SNMP/fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1 |
HIGH | |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down | Link state is not UP and the port status is set 'UP' by an administrator. |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"])<>2 and last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"])=1 |
AVERAGE | Manual close: YES |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"])<>0 and length(last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"]))>0 |
INFO | |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/NetApp FAS3220 by SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/NetApp FAS3220 by SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES |
| Host has been restarted | Uptime is less than 10 minutes. |
(last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/NetApp FAS3220 by SNMP/system.net.uptime[sysUpTime.0])<10m) |
WARNING | Manual close: YES Depends on: - No SNMP data collection |
| No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/NetApp FAS3220 by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
WARNING | Depends on: - Unavailable by ICMP ping |
| Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/NetApp FAS3220 by SNMP/icmpping,#3)=0 |
HIGH | |
| High ICMP ping loss | - |
min(/NetApp FAS3220 by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/NetApp FAS3220 by SNMP/icmppingloss,5m)<100 |
WARNING | Depends on: - Unavailable by ICMP ping |
| High ICMP ping response time | - |
avg(/NetApp FAS3220 by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
WARNING | Depends on: - High ICMP ping loss - Unavailable by ICMP ping |
Please report any issues with the template at https://support.zabbix.com.
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums.
The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create a host for FAS3220 with cluster management IP as SNMPv2 interface.
Link the template to the host.
Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$IF.UTIL.MAX} | 95 |
|
| {$IF.ERRORS.WARN} | ||
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization expressed in %. |
90 |
| {$FAS3220.FS.NAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.FS.NAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
snapshot |
| {$FAS3220.FS.TYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
.* |
| {$FAS3220.FS.TYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.TYPE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
.* |
| {$FAS3220.NET.PORT.TYPE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.ROLE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
.* |
| {$FAS3220.NET.PORT.ROLE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.NAME.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.NET.PORT.NAME.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$FAS3220.FS.PUSED.MAX.CRIT} | Maximum percentage of disk used. Can be used with {#FSNAME} as context. |
90 |
| {$FAS3220.FS.AVAIL.MIN.CRIT} | Minimum available space on the disk. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.TIME} | The time during which disk usage may exceed the threshold. Can be used with {#FSNAME} as context. |
10m |
| {$FAS3220.FS.USE.PCT} | Macro define what threshold will be used for disk space trigger: 0 - use Bytes ({$FAS3220.FS.AVAIL.MIN.CRIT}) 1 - use percents ({$FAS3220.FS.PUSED.MAX.CRIT}) Can be used with {#FSNAME} as context. |
1 |
| {$SNMP.TIMEOUT} | 5m |
|
| {$ICMP_LOSS_WARN} | 20 |
|
| {$ICMP_RESPONSE_TIME_WARN} | 0.15 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| NetApp FAS3220: Product version | MIB: NETAPP-MIB Version string for the software running on this platform. |
SNMP agent | fas3220.inventory[productVersion] Preprocessing
|
| NetApp FAS3220: Product firmware version | Version string for the firmware running on this platform. |
SNMP agent | fas3220.inventory[productFirmwareVersion] Preprocessing
|
| NetApp FAS3220: Failed disks count | The number of disks that are currently broken. |
SNMP agent | fas3220.disk[diskFailedCount] Preprocessing
|
| NetApp FAS3220: Failed disks message | If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described. |
SNMP agent | fas3220.disk[diskFailedMessage] Preprocessing
|
| NetApp FAS3220: Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| NetApp FAS3220: Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| NetApp FAS3220: SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| NetApp FAS3220: System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| NetApp FAS3220: System contact details | MIB: SNMPv2-MIB 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. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| NetApp FAS3220: System object ID | MIB: SNMPv2-MIB 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 |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| NetApp FAS3220: System name | MIB: SNMPv2-MIB 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. |
SNMP agent | system.name Preprocessing
|
| NetApp FAS3220: System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| NetApp FAS3220: SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| NetApp FAS3220: ICMP ping | Simple check | icmpping | |
| NetApp FAS3220: ICMP loss | Simple check | icmppingloss | |
| NetApp FAS3220: ICMP response time | Simple check | icmppingsec |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp FAS3220: Number of failed disks has changed | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedCount])>0 and last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#1)<>last(/NetApp FAS3220 by SNMP/fas3220.disk[diskFailedMessage],#2) |
Warning | |
| NetApp FAS3220: Host has been restarted | Uptime is less than 10 minutes. |
(last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/NetApp FAS3220 by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/NetApp FAS3220 by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| NetApp FAS3220: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/NetApp FAS3220 by SNMP/system.name,#1)<>last(/NetApp FAS3220 by SNMP/system.name,#2) and length(last(/NetApp FAS3220 by SNMP/system.name))>0 |
Info | Manual close: Yes |
| NetApp FAS3220: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/NetApp FAS3220 by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| NetApp FAS3220: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/NetApp FAS3220 by SNMP/icmpping,#3)=0 |
High | |
| NetApp FAS3220: High ICMP ping loss | min(/NetApp FAS3220 by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/NetApp FAS3220 by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| NetApp FAS3220: High ICMP ping response time | avg(/NetApp FAS3220 by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | Discovery of CPU metrics per node |
SNMP agent | fas3220.cpu.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: CPU utilization | The average, over the last minute, of the percentage of time that this processor was not idle. |
SNMP agent | fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/NetApp FAS3220 by SNMP/fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Cluster metrics discovery | Discovery of Cluster metrics per node |
SNMP agent | fas3220.cluster.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Location | Node Location. Same as sysLocation for a specific node. |
SNMP agent | fas3220.cluster[nodeLocation, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Model | Node Model. Same as productModel for a specific node. |
SNMP agent | fas3220.cluster[nodeModel, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Serial number | Node Serial Number. Same as productSerialNum for a specific node. |
SNMP agent | fas3220.cluster[nodeSerialNumber, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Uptime | Node uptime. Same as sysUpTime for a specific node. |
SNMP agent | fas3220.cluster[nodeUptime, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Health | Whether or not the node can communicate with the cluster. |
SNMP agent | fas3220.cluster[nodeHealth, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: NVRAM battery status | An indication of the current status of the NVRAM battery or batteries. Batteries which are fully or partially discharged may not fully protect the system during a crash. The end-of-life status values are based on the manufacturer's recommended life for the batteries. Possible values: ok(1), partiallyDischarged(2), fullyDischarged(3), notPresent(4), nearEndOfLife(5), atEndOfLife(6), unknown(7), overCharged(8), fullyCharged(9). |
SNMP agent | fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Over-temperature | An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. |
SNMP agent | fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN count | Count of the number of chassis fans that are not operating within the recommended RPM range. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Failed FAN message | Text message describing current condition of chassis fans. This is useful only if envFailedFanCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies count | Count of the number of power supplies that are in degraded mode. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: Degraded power supplies message | Text message describing the state of any power supplies that are currently degraded. This is useful only if envFailedPowerSupplyCount is not zero. |
SNMP agent | fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: Host has been restarted | Uptime is less than 10 minutes. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeUptime, "{#NODE.NAME}"])<10m |
Info | Manual close: Yes |
| Node {#NODE.NAME}: Node can not communicate with the cluster | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeHealth, "{#NODE.NAME}"])=0 |
High | Manual close: Yes | |
| Node {#NODE.NAME}: NVRAM battery status is not OK | last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"])<>1 |
Average | Manual close: Yes | |
| Node {#NODE.NAME}: Temperature is over than recommended | The hardware will shutdown if the temperature exceeds critical thresholds. |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"])=2 |
High | |
| Node {#NODE.NAME}: Failed FAN count is over than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"]) |
High | |
| Node {#NODE.NAME}: Degraded power supplies count is more than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 by SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"]) |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HA discovery | Discovery of high availability metrics per node |
SNMP agent | fas3220.ha.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE.NAME}: Cannot takeover cause | The reason node cannot take over it's HA partner {#PARTNER.NAME}. Possible states: ok(1), unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
SNMP agent | fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"] Preprocessing
|
| Node {#NODE.NAME}: HA settings | High Availability configuration settings. The value notConfigured(1) indicates that the HA is not licensed. The thisNodeDead(5) setting indicates that this node has been takenover. |
SNMP agent | fas3220.ha[haSettings, "{#NODE.NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: Node cannot takeover it's HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE} | Possible reasons: |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"])<>1 |
High | |
| Node {#NODE.NAME}: Node has been taken over | The thisNodeDead(5) setting indicates that this node has been takenover. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=5 |
High | |
| Node {#NODE.NAME}: HA is not licensed | The value notConfigured(1) indicates that the HA is not licensed. |
last(/NetApp FAS3220 by SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=1 |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Filesystems discovery | Filesystems discovery with filter. |
SNMP agent | fas3220.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VSERVER}{#FSNAME}: Total space used | The total disk space that is in use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64UsedKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space available | The total disk space that is free for use on {#FSNAME}. |
SNMP agent | fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Total space | The total capacity in bytes for {#FSNAME}. |
SNMP agent | fas3220.fs[df64TotalKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing
|
| {#VSERVER}{#FSNAME}: Used space percents | The percentage of disk space currently in use on {#FSNAME}. |
SNMP agent | fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by compression percents | Provides the percentage of compression savings in a volume, which is ((compr_saved/used)) * 10(compr_saved + 0). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfCompressSavedPercent, "{#VSERVER}{#FSNAME}"] |
| {#VSERVER}{#FSNAME}: Saved by deduplication percents | Provides the percentage of deduplication savings in a volume, which is ((dedup_saved/(dedup_saved + used)) * 100). This is only returned for volumes. |
SNMP agent | fas3220.fs[dfDedupeSavedPercent, "{#VSERVER}{#FSNAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#VSERVER}{#FSNAME}: Disk space is too low | min(/NetApp FAS3220 by SNMP/fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0 |
High | ||
| {#VSERVER}{#FSNAME}: Disk space is too low | max(/NetApp FAS3220 by SNMP/fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network ports discovery | Network interfaces discovery with filter. |
SNMP agent | fas3220.net.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Up by an administrator | Indicates whether the port status is set 'UP' by an administrator. |
SNMP agent | fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Role | Role of the port. A port must have one of the following roles: cluster(1), data(2), mgmt(3), intercluster(4), cluster-mgmt(5) or undef(0). The cluster port is used to communicate to other node(s) in the cluster. The data port services clients' requests. It is where all the file requests come in. The management port is used by administrator to manage resources within a node. The intercluster port is used to communicate to other cluster. The cluster-mgmt port is used to manage resources within the cluster. The undef role is for the port that has not yet been assigned a role. |
SNMP agent | fas3220.net.port[netportRole, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Speed | The speed appears on the port. It can be either undef(0), auto(1), ten Mb/s(2), hundred Mb/s(3), one Gb/s(4), or ten Gb/s(5). |
SNMP agent | fas3220.net.port[netportSpeedOper, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits received | The total number of octets received on the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64InOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits sent | The total number of octets transmitted out of the interface, including framing characters. |
SNMP agent | fas3220.net.if[if64OutOctets, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets with errors | MIB: IF-MIB The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |
SNMP agent | fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets with errors | MIB: IF-MIB The number of outbound packets that could not be transmitted because of errors. |
SNMP agent | fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64InDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP agent | fas3220.net.if[if64OutDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): State | The link-state of the port. Normally it is either UP(2) or DOWN(3). |
SNMP agent | fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health | The health status of the port. |
SNMP agent | fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Health degraded reason | The list of reasons why the port is marked as degraded. |
SNMP agent | fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate | It recovers when it is below 80% of the |
min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/NetApp FAS3220 by SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down | Link state is not UP and the port status is set 'UP' by an administrator. |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"])<>2 and last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"])=1 |
Average | Manual close: Yes |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"])<>0 and length(last(/NetApp FAS3220 by SNMP/fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"]))>0 |
Info |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
For Zabbix version: 5.4 and higher
The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.
This template was tested on:
See Zabbix template operation for basic instructions.
1. Create a host for FAS3220 with cluster management IP as SNMPv2 interface.
2. Link the template to the host.
3. Customize macro values if needed.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization in %. |
90 |
| {$FAS3220.FS.AVAIL.MIN.CRIT} | Minimum available space on the disk. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.NAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.FS.NAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
snapshot |
| {$FAS3220.FS.PUSED.MAX.CRIT} | Maximum percentage of disk used. Can be used with {#FSNAME} as context. |
90 |
| {$FAS3220.FS.TIME} | The time during which disk usage may exceed the threshold. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.TYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
.* |
| {$FAS3220.FS.TYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
CHANGE_IF_NEEDED |
| {$FAS3220.FS.USE.PCT} | Macro define what threshold will be used for disk space trigger: 0 - use Bytes ({$FAS3220.FS.AVAIL.MIN.CRIT}) 1 - use percents ({$FAS3220.FS.PUSED.MAX.CRIT}) Can be used with {#FSNAME} as context. |
1 |
| {$FAS3220.NET.PORT.NAME.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.NET.PORT.NAME.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.ROLE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
.* |
| {$FAS3220.NET.PORT.ROLE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.TYPE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
.* |
| {$FAS3220.NET.PORT.TYPE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
CHANGE_IF_NEEDED |
| {$IF.ERRORS.WARN} | - |
`` |
| {$IF.UTIL.MAX} | - |
95 |
| Name |
|---|
| Generic SNMP |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | Discovery of CPU metrics per node |
SNMP | fas3220.cpu.discovery |
| Cluster metrics discovery | Discovery of Cluster metrics per node |
SNMP | fas3220.cluster.discovery |
| HA discovery | Discovery of high availability metrics per node |
SNMP | fas3220.ha.discovery |
| Filesystems discovery | Filesystems discovery with filter. |
SNMP | fas3220.fs.discovery Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX Overrides: Do not discover aggregate metrics |
| Network ports discovery | Network interfaces discovery with filter. |
SNMP | fas3220.net.discovery Preprocessing: - JAVASCRIPT: Filter: AND- {#TYPE} MATCHES_REGEX - {#TYPE} NOT_MATCHES_REGEX - {#ROLE} MATCHES_REGEX - {#TYPE} NOT_MATCHES_REGEX - {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Node {#NODE.NAME}: CPU utilization | The average, over the last minute, of the percentage of time that this processor was not idle. |
SNMP | fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"] |
| NetApp FAS3220 | NetApp FAS3220: Product version | MIB: NETAPP-MIB Version string for the software running on this platform. |
SNMP | fas3220.inventory[productVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Product firmware version | Version string for the firmware running on this platform. |
SNMP | fas3220.inventory[productFirmwareVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Failed disks count | The number of disks that are currently broken. |
SNMP | fas3220.disk[diskFailedCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Failed disks message | If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described. |
SNMP | fas3220.disk[diskFailedMessage] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Location | Node Location. Same as sysLocation for a specific node. |
SNMP | fas3220.cluster[nodeLocation, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Model | Node Model. Same as productModel for a specific node. |
SNMP | fas3220.cluster[nodeModel, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Serial number | Node Serial Number. Same as productSerialNum for a specific node. |
SNMP | fas3220.cluster[nodeSerialNumber, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Uptime | Node uptime. Same as sysUpTime for a specific node. |
SNMP | fas3220.cluster[nodeUptime, "{#NODE.NAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | Node {#NODE.NAME}: Health | Whether or not the node can communicate with the cluster. |
SNMP | fas3220.cluster[nodeHealth, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: NVRAM battery status | An indication of the current status of the NVRAM battery or batteries. Batteries which are fully or partially discharged may not fully protect the system during a crash. The end-of-life status values are based on the manufacturer's recommended life for the batteries. Possible values: ok(1), partiallyDischarged(2), fullyDischarged(3), notPresent(4), nearEndOfLife(5), atEndOfLife(6), unknown(7), overCharged(8), fullyCharged(9). |
SNMP | fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Over-temperature | An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. |
SNMP | fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Failed FAN count | Count of the number of chassis fans that are not operating within the recommended RPM range. |
SNMP | fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Failed FAN message | Text message describing current condition of chassis fans. This is useful only if envFailedFanCount is not zero. |
SNMP | fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Degraded power supplies count | Count of the number of power supplies that are in degraded mode. |
SNMP | fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Degraded power supplies message | Text message describing the state of any power supplies that are currently degraded. This is useful only if envFailedPowerSupplyCount is not zero. |
SNMP | fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Cannot takeover cause | The reason node cannot take over it's HA partner {#PARTNER.NAME}. Possible states: ok(1), unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
SNMP | fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: HA settings | High Availability configuration settings. The value notConfigured(1) indicates that the HA is not licensed. The thisNodeDead(5) setting indicates that this node has been takenover. |
SNMP | fas3220.ha[haSettings, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space used | The total disk space that is in use on {#FSNAME}. |
SNMP | fas3220.fs[df64UsedKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space available | The total disk space that is free for use on {#FSNAME}. |
SNMP | fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space | The total capacity in Bytes for {#FSNAME}. |
SNMP | fas3220.fs[df64TotalKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Used space percents | The percentage of disk space currently in use on {#FSNAME}. |
SNMP | fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Saved by compression percents | Provides the percentage of compression savings in a volume, which is ((compr_saved/used)) * 10(compr_saved + 0). This is only returned for volumes. |
SNMP | fas3220.fs[dfCompressSavedPercent, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Saved by deduplication percents | Provides the percentage of deduplication savings in a volume, which is ((dedup_saved/(dedup_saved + used)) * 100). This is only returned for volumes. |
SNMP | fas3220.fs[dfDedupeSavedPercent, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Up by an administrator | Indicates whether the port status is set 'UP' by an administrator. |
SNMP | fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Role | Role of the port. A port must have one of the following roles: cluster(1), data(2), mgmt(3), intercluster(4), cluster-mgmt(5) or undef(0). The cluster port is used to communicate to other node(s) in the cluster. The data port services clients' requests. It is where all the file requests come in. The management port is used by administrator to manage resources within a node. The intercluster port is used to communicate to other cluster. The cluster-mgmt port is used to manage resources within the cluster. The undef role is for the port that has not yet been assigned a role. |
SNMP | fas3220.net.port[netportRole, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Speed | The speed appears on the port. It can be either undef(0), auto(1), ten Mb/s(2), hundred Mb/s(3), one Gb/s(4), or ten Gb/s(5). |
SNMP | fas3220.net.port[netportSpeedOper, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits received | The total number of octets received on the interface, including framing characters. |
SNMP | fas3220.net.if[if64InOctets, "{#NODE}", "{#IFNAME}"] Preprocessing: - MULTIPLIER: - CHANGE_PER_SECOND |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits sent | The total number of octets transmitted out of the interface, including framing characters. |
SNMP | fas3220.net.if[if64OutOctets, "{#NODE}", "{#IFNAME}"] Preprocessing: - MULTIPLIER: - CHANGE_PER_SECOND |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): State | The link-state of the port. Normally it is either UP(2) or DOWN(3). |
SNMP | fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Health | The health status of the port. |
SNMP | fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Health degraded reason | The list of reasons why the port is marked as degraded. |
SNMP | fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets with errors | MIB: IF-MIB The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |
SNMP | fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets with errors | MIB: IF-MIB The number of outbound packets that could not be transmitted because of errors. |
SNMP | fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP | fas3220.net.if[if64InDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP | fas3220.net.if[if64OutDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
min(/NetApp FAS3220 SNMP/fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"],5m)>{$CPU.UTIL.CRIT} |
WARNING | |
| NetApp FAS3220: Number of failed disks has changed | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 SNMP/fas3220.disk[diskFailedCount])>0 and last(/NetApp FAS3220 SNMP/fas3220.disk[diskFailedMessage],#1)<>last(/NetApp FAS3220 SNMP/fas3220.disk[diskFailedMessage],#2)Recovery expression: last(/NetApp FAS3220 SNMP/fas3220.disk[diskFailedCount])=0 |
WARNING | |
| Node {#NODE.NAME}: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeUptime, "{#NODE.NAME}"])<10m |
INFO | Manual close: YES |
| Node {#NODE.NAME}: Node can not communicate with the cluster | - |
last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeHealth, "{#NODE.NAME}"])=0 |
HIGH | Manual close: YES |
| Node {#NODE.NAME}: NVRAM battery status is not OK | - |
last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"])<>1 |
AVERAGE | Manual close: YES |
| Node {#NODE.NAME}: Temperature is over than recommended | The hardware will shutdown if the temperature exceeds critical thresholds. |
last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"])=2 |
HIGH | |
| Node {#NODE.NAME}: Failed FAN count is over than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"]) |
HIGH | |
| Node {#NODE.NAME}: Degraded power supplies count is more than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"]) |
AVERAGE | |
| Node {#NODE.NAME}: Node cannot takeover it's HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE} | Possible reasons: unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
last(/NetApp FAS3220 SNMP/fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"])<>1 |
HIGH | |
| Node {#NODE.NAME}: Node has been taken over | The thisNodeDead(5) setting indicates that this node has been takenover. |
last(/NetApp FAS3220 SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=5 |
HIGH | |
| Node {#NODE.NAME}: HA is not licensed | The value notConfigured(1) indicates that the HA is not licensed. |
last(/NetApp FAS3220 SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=1 |
AVERAGE | |
| {#VSERVER}{#FSNAME}: Disk space is too low (below {$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} for {$FAS3220.FS.TIME:"{#FSNAME}"}) | - |
min(/NetApp FAS3220 SNMP/fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0 |
HIGH | |
| {#VSERVER}{#FSNAME}: Disk space is too low (used over {$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"}% for {$FAS3220.FS.TIME:"{#FSNAME}"}) | - |
max(/NetApp FAS3220 SNMP/fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1 |
HIGH | |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down | Link state is not UP and the port status is set 'UP' by an administrator. |
last(/NetApp FAS3220 SNMP/fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"])<>2 and last(/NetApp FAS3220 SNMP/fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"])=1 |
AVERAGE | Manual close: YES |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
last(/NetApp FAS3220 SNMP/fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"])<>0 and length(last(/NetApp FAS3220 SNMP/fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"]))>0 |
INFO | |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/NetApp FAS3220 SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/NetApp FAS3220 SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/NetApp FAS3220 SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/NetApp FAS3220 SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES |
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.
For Zabbix version: 5.0 and higher
The template to monitor SAN NetApp FAS3220 cluster by Zabbix SNMP agent.
This template was tested on:
See Zabbix template operation for basic instructions.
1. Create a host for FAS3220 with cluster management IP as SNMPv2 interface.
2. Link the template to the host.
3. Customize macro values if needed.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization in %. |
90 |
| {$FAS3220.FS.AVAIL.MIN.CRIT} | Minimum available space on the disk. Can be used with {#FSNAME} as context. |
10G |
| {$FAS3220.FS.NAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.FS.NAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
snapshot |
| {$FAS3220.FS.PUSED.MAX.CRIT} | Maximum percentage of disk used. Can be used with {#FSNAME} as context. |
90 |
| {$FAS3220.FS.TIME} | The time during which disk usage may exceed the threshold. Can be used with {#FSNAME} as context. |
10m |
| {$FAS3220.FS.TYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
.* |
| {$FAS3220.FS.TYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. Value should be integer: 2 - flexibleVolume, 3 - aggregate, 4 - stripedAggregate, 5 - stripedVolume. |
CHANGE_IF_NEEDED |
| {$FAS3220.FS.USE.PCT} | Macro define what threshold will be used for disk space trigger: 0 - use Bytes ({$FAS3220.FS.AVAIL.MIN.CRIT}) 1 - use percents ({$FAS3220.FS.PUSED.MAX.CRIT}) Can be used with {#FSNAME} as context. |
1 |
| {$FAS3220.NET.PORT.NAME.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
.* |
| {$FAS3220.NET.PORT.NAME.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.ROLE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
.* |
| {$FAS3220.NET.PORT.ROLE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#ROLE} is integer. Possible values: 0 - undef 1 - cluster 2 - data 3 - node-mgmt 4 - intercluster 5 - cluster-mgmt |
CHANGE_IF_NEEDED |
| {$FAS3220.NET.PORT.TYPE.MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
.* |
| {$FAS3220.NET.PORT.TYPE.NOT_MATCHES} | This macro is used in net ports discovery. Can be overridden on the host or linked template level. {#TYPE} is integer. Possible values: physical, if-group, vlan, undef. |
CHANGE_IF_NEEDED |
| {$IF.ERRORS.WARN} | - |
`` |
| {$IF.UTIL.MAX} | - |
95 |
| Name |
|---|
| Generic SNMP |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | Discovery of CPU metrics per node |
SNMP | fas3220.cpu.discovery |
| Cluster metrics discovery | Discovery of Cluster metrics per node |
SNMP | fas3220.cluster.discovery |
| HA discovery | Discovery of high availability metrics per node |
SNMP | fas3220.ha.discovery |
| Filesystems discovery | Filesystems discovery with filter. |
SNMP | fas3220.fs.discovery Filter: AND- A: {#FSTYPE} MATCHES_REGEX - B: {#FSTYPE} NOT_MATCHES_REGEX - C: {#FSNAME} MATCHES_REGEX - D: {#FSNAME} NOT_MATCHES_REGEX Overrides: Do not discover aggregate metrics |
| Network ports discovery | Network interfaces discovery with filter. |
SNMP | fas3220.net.discovery Preprocessing: - JAVASCRIPT: Filter: AND- A: {#TYPE} MATCHES_REGEX - B: {#TYPE} NOT_MATCHES_REGEX - C: {#ROLE} MATCHES_REGEX - D: {#TYPE} NOT_MATCHES_REGEX - E: {#IFNAME} MATCHES_REGEX - F: {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Node {#NODE.NAME}: CPU utilization | The average, over the last minute, of the percentage of time that this processor was not idle. |
SNMP | fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"] |
| NetApp FAS3220 | NetApp FAS3220: Product version | Version string for the software running on this platform. |
SNMP | fas3220.inventory[productVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Product firmware version | Version string for the firmware running on this platform. |
SNMP | fas3220.inventory[productFirmwareVersion] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Failed disks count | The number of disks that are currently broken. |
SNMP | fas3220.disk[diskFailedCount] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | NetApp FAS3220: Failed disks message | If diskFailedCount is non-zero, this is a string describing the failed disk or disks. Each failed disk is described. |
SNMP | fas3220.disk[diskFailedMessage] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Location | Node Location. Same as sysLocation for a specific node. |
SNMP | fas3220.cluster[nodeLocation, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Model | Node Model. Same as productModel for a specific node. |
SNMP | fas3220.cluster[nodeModel, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Serial number | Node Serial Number. Same as productSerialNum for a specific node. |
SNMP | fas3220.cluster[nodeSerialNumber, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Uptime | Node uptime. Same as sysUpTime for a specific node. |
SNMP | fas3220.cluster[nodeUptime, "{#NODE.NAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | Node {#NODE.NAME}: Health | Whether or not the node can communicate with the cluster. |
SNMP | fas3220.cluster[nodeHealth, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: NVRAM battery status | An indication of the current status of the NVRAM battery or batteries. Batteries which are fully or partially discharged may not fully protect the system during a crash. The end-of-life status values are based on the manufacturer's recommended life for the batteries. Possible values: ok(1), partiallyDischarged(2), fullyDischarged(3), notPresent(4), nearEndOfLife(5), atEndOfLife(6), unknown(7), overCharged(8), fullyCharged(9). |
SNMP | fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Over-temperature | An indication of whether the hardware is currently operating outside of its recommended temperature range. The hardware will shutdown if the temperature exceeds critical thresholds. |
SNMP | fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Failed FAN count | Count of the number of chassis fans that are not operating within the recommended RPM range. |
SNMP | fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Failed FAN message | Text message describing current condition of chassis fans. This is useful only if envFailedFanCount is not zero. |
SNMP | fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Degraded power supplies count | Count of the number of power supplies that are in degraded mode. |
SNMP | fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Degraded power supplies message | Text message describing the state of any power supplies that are currently degraded. This is useful only if envFailedPowerSupplyCount is not zero. |
SNMP | fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: Cannot takeover cause | The reason node cannot take over it's HA partner {#PARTNER.NAME}. Possible states: ok(1), unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
SNMP | fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE.NAME}: HA settings | High Availability configuration settings. The value notConfigured(1) indicates that the HA is not licensed. The thisNodeDead(5) setting indicates that this node has been takenover. |
SNMP | fas3220.ha[haSettings, "{#NODE.NAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space used | The total disk space that is in use on {#FSNAME}. |
SNMP | fas3220.fs[df64UsedKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space available | The total disk space that is free for use on {#FSNAME}. |
SNMP | fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Total space | The total capacity in Bytes for {#FSNAME}. |
SNMP | fas3220.fs[df64TotalKBytes, "{#VSERVER}{#FSNAME}"] Preprocessing: - MULTIPLIER: |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Used space percents | The percentage of disk space currently in use on {#FSNAME}. |
SNMP | fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Saved by compression percents | Provides the percentage of compression savings in a volume, which is ((compr_saved/used)) * 10(compr_saved + 0). This is only returned for volumes. |
SNMP | fas3220.fs[dfCompressSavedPercent, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | {#VSERVER}{#FSNAME}: Saved by deduplication percents | Provides the percentage of deduplication savings in a volume, which is ((dedup_saved/(dedup_saved + used)) * 100). This is only returned for volumes. |
SNMP | fas3220.fs[dfDedupeSavedPercent, "{#VSERVER}{#FSNAME}"] |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Up by an administrator | Indicates whether the port status is set 'UP' by an administrator. |
SNMP | fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Role | Role of the port. A port must have one of the following roles: cluster(1), data(2), mgmt(3), intercluster(4), cluster-mgmt(5) or undef(0). The cluster port is used to communicate to other node(s) in the cluster. The data port services clients' requests. It is where all the file requests come in. The management port is used by administrator to manage resources within a node. The intercluster port is used to communicate to other cluster. The cluster-mgmt port is used to manage resources within the cluster. The undef role is for the port that has not yet been assigned a role. |
SNMP | fas3220.net.port[netportRole, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Speed | The speed appears on the port. It can be either undef(0), auto(1), ten Mb/s(2), hundred Mb/s(3), one Gb/s(4), or ten Gb/s(5). |
SNMP | fas3220.net.port[netportSpeedOper, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits received | The total number of octets received on the interface, including framing characters. |
SNMP | fas3220.net.if[if64InOctets, "{#NODE}", "{#IFNAME}"] Preprocessing: - MULTIPLIER: - CHANGE_PER_SECOND |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Bits sent | The total number of octets transmitted out of the interface, including framing characters. |
SNMP | fas3220.net.if[if64OutOctets, "{#NODE}", "{#IFNAME}"] Preprocessing: - MULTIPLIER: - CHANGE_PER_SECOND |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): State | The link-state of the port. Normally it is either UP(2) or DOWN(3). |
SNMP | fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Health | The health status of the port. |
SNMP | fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| NetApp FAS3220 | Node {#NODE}: port {#IFNAME} ({#TYPE}): Health degraded reason | The list of reasons why the port is marked as degraded. |
SNMP | fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets with errors | MIB: IF-MIB The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. |
SNMP | fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets with errors | MIB: IF-MIB The number of outbound packets that could not be transmitted because of errors. |
SNMP | fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP | fas3220.net.if[if64InDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Node {#NODE}: port {#IFNAME} ({#TYPE}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. |
SNMP | fas3220.net.if[if64OutDiscards, "{#NODE}", "{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Node {#NODE.NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
{TEMPLATE_NAME:fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"].min(5m)}>{$CPU.UTIL.CRIT} |
WARNING | |
| NetApp FAS3220: Number of failed disks has changed | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
{TEMPLATE_NAME:fas3220.disk[diskFailedCount].last()}>0 and {TEMPLATE_NAME:fas3220.disk[diskFailedMessage].diff()}=1Recovery expression: {TEMPLATE_NAME:fas3220.disk[diskFailedCount].last()}=0 |
WARNING | |
| Node {#NODE.NAME}: has been restarted (uptime < 10m) | Uptime is less than 10 minutes. |
{TEMPLATE_NAME:fas3220.cluster[nodeUptime, "{#NODE.NAME}"].last()}<10m |
INFO | Manual close: YES |
| Node {#NODE.NAME}: Node can not communicate with the cluster | - |
{TEMPLATE_NAME:fas3220.cluster[nodeHealth, "{#NODE.NAME}"].last()}=0 |
HIGH | Manual close: YES |
| Node {#NODE.NAME}: NVRAM battery status is not OK | - |
{TEMPLATE_NAME:fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"].last()}<>1 |
AVERAGE | Manual close: YES |
| Node {#NODE.NAME}: Temperature is over than recommended | The hardware will shutdown if the temperature exceeds critical thresholds. |
{TEMPLATE_NAME:fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"].last()}=2 |
HIGH | |
| Node {#NODE.NAME}: Failed FAN count is over than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
{TEMPLATE_NAME:fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"].last()}>0 and {TEMPLATE_NAME:fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"].last()}={TEMPLATE_NAME:fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"].last()} |
HIGH | |
| Node {#NODE.NAME}: Degraded power supplies count is more than zero | {{ITEM.VALUE2}.regsub("(.*)", \1)} |
{TEMPLATE_NAME:fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"].last()}>0 and {TEMPLATE_NAME:fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"].last()}={TEMPLATE_NAME:fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"].last()} |
AVERAGE | |
| Node {#NODE.NAME}: Node cannot takeover it's HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE} | Possible reasons: unknownReason(2), disabledByOperator(3), interconnectOffline(4), disabledByPartner(5), takeoverFailed(6), mailboxIsInDegradedState(7), partnermailboxIsInUninitialisedState(8), mailboxVersionMismatch(9), nvramSizeMismatch(10), kernelVersionMismatch(11), partnerIsInBootingStage(12), diskshelfIsTooHot(13), partnerIsPerformingRevert(14), nodeIsPerformingRevert(15), sametimePartnerIsAlsoTryingToTakeUsOver(16), alreadyInTakenoverMode(17), nvramLogUnsynchronized(18), stateofBackupMailboxIsDoubtful(19). |
{TEMPLATE_NAME:fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"].last()}<>1 |
HIGH | |
| Node {#NODE.NAME}: Node has been taken over | The thisNodeDead(5) setting indicates that this node has been takenover. |
{TEMPLATE_NAME:fas3220.ha[haSettings, "{#NODE.NAME}"].last()}=5 |
HIGH | |
| Node {#NODE.NAME}: HA is not licensed | The value notConfigured(1) indicates that the HA is not licensed. |
{TEMPLATE_NAME:fas3220.ha[haSettings, "{#NODE.NAME}"].last()}=1 |
AVERAGE | |
| {#VSERVER}{#FSNAME}: Disk space is too low (below {$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} for {$FAS3220.FS.TIME:"{#FSNAME}"}) | - |
{TEMPLATE_NAME:fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"].min({$FAS3220.FS.TIME:"{#FSNAME}"})}<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0 |
HIGH | |
| {#VSERVER}{#FSNAME}: Disk space is too low (used over {$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"}% for {$FAS3220.FS.TIME:"{#FSNAME}"}) | - |
{TEMPLATE_NAME:fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"].max({$FAS3220.FS.TIME:"{#FSNAME}"})}>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1 |
HIGH | |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down | Link state is not UP and the port status is set 'UP' by an administrator. |
{TEMPLATE_NAME:fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"].last()}<>2 and {TEMPLATE_NAME:fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"].last()}=1 |
AVERAGE | Manual close: YES |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy | {{ITEM.LASTVALUE2}.regsub("(.*)", \1)} |
{TEMPLATE_NAME:fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"].last()}<>0 and {TEMPLATE_NAME:fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"].strlen()}>0 |
INFO | |
| Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
{TEMPLATE_NAME:fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {TEMPLATE_NAME:fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: {TEMPLATE_NAME:fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {TEMPLATE_NAME:fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES |
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.
The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
1. Create a host for AFF A700 with cluster management IP as the Zabbix agent interface.
2. Link the template to the host.
3. Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$NETAPP.URL} | AFF700 cluster URL address. |
|
| {$NETAPP.USERNAME} | AFF700 user name. |
|
| {$NETAPP.PASSWORD} | AFF700 user password. |
|
| {$NETAPP.HTTP.AGENT.TIMEOUT} | The HTTP agent timeout to wait for a response from AFF700. |
5s |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get cluster | HTTP agent | netapp.cluster.get | |
| Get nodes | HTTP agent | netapp.nodes.get | |
| Get disks | HTTP agent | netapp.disks.get | |
| Get volumes | HTTP agent | netapp.volumes.get | |
| Get ethernet ports | HTTP agent | netapp.ports.eth.get | |
| Get FC ports | HTTP agent | netapp.ports.fc.get | |
| Get SVMs | HTTP agent | netapp.svms.get | |
| Get LUNs | HTTP agent | netapp.luns.get | |
| Get chassis | HTTP agent | netapp.chassis.get | |
| Get FRUs | HTTP agent | netapp.frus.get Preprocessing
|
|
| Cluster software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.cluster.version Preprocessing
|
| Cluster name | The name of the cluster. |
Dependent item | netapp.cluster.name Preprocessing
|
| Cluster location | The location of the cluster. |
Dependent item | netapp.cluster.location Preprocessing
|
| Cluster status | The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data. |
Dependent item | netapp.cluster.status Preprocessing
|
| Cluster throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.throughput.other.rate Preprocessing
|
| Cluster throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.read.rate Preprocessing
|
| Cluster throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.write.rate Preprocessing
|
| Cluster throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.total.rate Preprocessing
|
| Cluster IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops.other.rate Preprocessing
|
| Cluster IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops.read.rate Preprocessing
|
| Cluster IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops.write.rate Preprocessing
|
| Cluster IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops.total.rate Preprocessing
|
| Cluster latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.cluster.statistics.latency.other |
| Cluster latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.cluster.statistics.latency.read |
| Cluster latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.cluster.statistics.latency.write |
| Cluster latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.cluster.statistics.latency.total |
| Cluster latency raw, other | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.latency_raw.other Preprocessing
|
| Cluster latency raw, read | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.read Preprocessing
|
| Cluster latency raw, write | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.write Preprocessing
|
| Cluster latency raw, total | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.total Preprocessing
|
| Cluster IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops_raw.other Preprocessing
|
| Cluster IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.read Preprocessing
|
| Cluster IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.write Preprocessing
|
| Cluster IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.total Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: Version has changed | The NetApp AFF A700 version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2) and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0 |
Info | Manual close: Yes |
| NetApp AFF A700: Cluster status is abnormal | Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data. |
(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nodes discovery | HTTP agent | netapp.nodes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#NODENAME}: Software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.node.version[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Location | The location of the node. |
Dependent item | netapp.nodes.location[{#NODENAME}] Preprocessing
|
| {#NODENAME}: State | State of the node: up - Node is up and operational. booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
Dependent item | netapp.nodes.state[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Membership | Possible values: available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created. joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node. member - Nodes that are members have successfully joined the cluster. |
Dependent item | netapp.nodes.membership[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Uptime | The total time, in seconds, that the node has been up. |
Dependent item | netapp.nodes.uptime[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Controller over temperature | Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal |
Dependent item | netapp.nodes.controller.over_temperature[{#NODENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#NODENAME}: Version has changed | {#NODENAME} version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2) and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0 |
Info | Manual close: Yes |
| NetApp AFF A700: {#NODENAME}: Node state is abnormal | The state of the node is different from up: |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up") |
Average | |
| NetApp AFF A700: {#NODENAME}: Node has been restarted | Uptime is less than 10 minutes. |
last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m |
Info | Manual close: Yes |
| NetApp AFF A700: {#NODENAME}: Node has over temperature | The hardware shuts down if the temperature exceeds critical thresholds(item's value is "over"). |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ethernet ports discovery | HTTP agent | netapp.ports.ether.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ETHPORTNAME}: State | The operational state of the port. Possible values: up, down. |
Dependent item | netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down | Something is wrong with the ethernet port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FC ports discovery | HTTP agent | netapp.ports.fc.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FCPORTNAME}: Description | A description of the FC port. |
Dependent item | netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| {#FCPORTNAME}: State | The operational state of the FC port. Possible values: startup - The port is booting up. link_not_connected - The port has finished initialization, but a link with the fabric is not established. online - The port is initialized and a link with the fabric has been established. link_disconnected - The link was present at one point on this port but is currently not established. offlined_by_user - The port is administratively disabled. offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors. node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible. |
Dependent item | netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online" | Something is wrong with the FC port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disks discovery | HTTP agent | netapp.disks.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DISKNAME}: State | The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing |
Dependent item | netapp.disk.state[{#NODENAME},{#DISKNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present" | Something is wrong with the disk. |
(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Chassis discovery | HTTP agent | netapp.chassis.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ID}: State | The chassis state: ok, error. |
Dependent item | netapp.chassis.state[{#ID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#ID}: Chassis has something errors | Something is wrong with the chassis. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FRUs discovery | Dependent item | netapp.frus.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FRUID}: State | The FRU state: ok, error. |
Dependent item | netapp.chassis.fru.state[{#CHASSISID},{#FRUID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#FRUID}: FRU of the chassis "{#ID}" state is error | Something is wrong with the FRU. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| SVMs discovery | HTTP agent | netapp.svms.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#SVMNAME}: State | SVM state: starting, running, stopping, stopped, deleting. |
Dependent item | netapp.svm.state[{#SVMNAME}] Preprocessing
|
| {#SVMNAME}: Comment | The comment for the SVM. |
Dependent item | netapp.svm.comment[{#SVMNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#SVMNAME}: SVM state is abnormal | Something is wrong with the SVM. |
(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| LUNs discovery | HTTP agent | netapp.luns.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#LUNNAME}: State | The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error. |
Dependent item | netapp.lun.status.state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Container state | The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available. |
Dependent item | netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space size | The total provisioned size of the LUN. |
Dependent item | netapp.lun.space.size[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space used | The amount of space consumed by the main data stream of the LUN. |
Dependent item | netapp.lun.space.used[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state | Normal states for a LUN are online and offline. Other states indicate errors. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| NetApp AFF A700: {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state | LUNs are only available when their containers are available. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Volumes discovery | HTTP agent | netapp.volumes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VOLUMENAME}: Comment | A comment for the volume. |
Dependent item | netapp.volume.comment[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: State | Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
Dependent item | netapp.volume.state[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Type | Type of the volume. rw - read-write volume. dp - data-protection volume. ls - load-sharing dp volume. |
Dependent item | netapp.volume.type[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: SVM name | The volume belongs this SVM. |
Dependent item | netapp.volume.svm_name[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Space size | Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes. |
Dependent item | netapp.volume.space_size[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Available size | The available space, in bytes. |
Dependent item | netapp.volume.space_available[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Used size | The virtual space used (includes volume reserves) before storage efficiency, in bytes. |
Dependent item | netapp.volume.space_used[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.volume.statistics.latency.other[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.volume.statistics.latency.read[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.volume.statistics.latency.write[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.volume.statistics.latency.total[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency raw, other | The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, read | The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, write | The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, total | The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#VOLUMENAME}: Volume state is abnormal | A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online") |
Average | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
1. Create a host for AFF A700 with cluster management IP as the Zabbix agent interface.
2. Link the template to the host.
3. Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$URL} | AFF700 cluster URL address. |
|
| {$USERNAME} | AFF700 user name. |
|
| {$PASSWORD} | AFF700 user password. |
|
| {$HTTP.AGENT.TIMEOUT} | The HTTP agent timeout to wait for a response from AFF700. |
5s |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get cluster | HTTP agent | netapp.cluster.get | |
| Get nodes | HTTP agent | netapp.nodes.get | |
| Get disks | HTTP agent | netapp.disks.get | |
| Get volumes | HTTP agent | netapp.volumes.get | |
| Get ethernet ports | HTTP agent | netapp.ports.eth.get | |
| Get FC ports | HTTP agent | netapp.ports.fc.get | |
| Get SVMs | HTTP agent | netapp.svms.get | |
| Get LUNs | HTTP agent | netapp.luns.get | |
| Get chassis | HTTP agent | netapp.chassis.get | |
| Get FRUs | HTTP agent | netapp.frus.get Preprocessing
|
|
| Cluster software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.cluster.version Preprocessing
|
| Cluster name | The name of the cluster. |
Dependent item | netapp.cluster.name Preprocessing
|
| Cluster location | The location of the cluster. |
Dependent item | netapp.cluster.location Preprocessing
|
| Cluster status | The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data. |
Dependent item | netapp.cluster.status Preprocessing
|
| Cluster throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.throughput.other.rate Preprocessing
|
| Cluster throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.read.rate Preprocessing
|
| Cluster throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.write.rate Preprocessing
|
| Cluster throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.total.rate Preprocessing
|
| Cluster IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops.other.rate Preprocessing
|
| Cluster IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops.read.rate Preprocessing
|
| Cluster IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops.write.rate Preprocessing
|
| Cluster IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops.total.rate Preprocessing
|
| Cluster latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.cluster.statistics.latency.other |
| Cluster latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.cluster.statistics.latency.read |
| Cluster latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.cluster.statistics.latency.write |
| Cluster latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.cluster.statistics.latency.total |
| Cluster latency raw, other | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.latency_raw.other Preprocessing
|
| Cluster latency raw, read | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.read Preprocessing
|
| Cluster latency raw, write | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.write Preprocessing
|
| Cluster latency raw, total | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.total Preprocessing
|
| Cluster IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops_raw.other Preprocessing
|
| Cluster IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.read Preprocessing
|
| Cluster IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.write Preprocessing
|
| Cluster IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.total Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: Version has changed | The NetApp AFF A700 version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2) and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0 |
Info | Manual close: Yes |
| NetApp AFF A700: Cluster status is abnormal | Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data. |
(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nodes discovery | HTTP agent | netapp.nodes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#NODENAME}: Software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.node.version[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Location | The location of the node. |
Dependent item | netapp.nodes.location[{#NODENAME}] Preprocessing
|
| {#NODENAME}: State | State of the node: up - Node is up and operational. booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
Dependent item | netapp.nodes.state[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Membership | Possible values: available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created. joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node. member - Nodes that are members have successfully joined the cluster. |
Dependent item | netapp.nodes.membership[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Uptime | The total time, in seconds, that the node has been up. |
Dependent item | netapp.nodes.uptime[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Controller over temperature | Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal |
Dependent item | netapp.nodes.controller.over_temperature[{#NODENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#NODENAME}: Version has changed | {#NODENAME} version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2) and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0 |
Info | Manual close: Yes |
| NetApp AFF A700: {#NODENAME}: Node state is abnormal | The state of the node is different from up: |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up") |
Average | |
| NetApp AFF A700: {#NODENAME}: Node has been restarted | Uptime is less than 10 minutes. |
last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m |
Info | Manual close: Yes |
| NetApp AFF A700: {#NODENAME}: Node has over temperature | The hardware shuts down if the temperature exceeds critical thresholds(item's value is "over"). |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ethernet ports discovery | HTTP agent | netapp.ports.ether.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ETHPORTNAME}: State | The operational state of the port. Possible values: up, down. |
Dependent item | netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down | Something is wrong with the ethernet port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FC ports discovery | HTTP agent | netapp.ports.fc.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FCPORTNAME}: Description | A description of the FC port. |
Dependent item | netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| {#FCPORTNAME}: State | The operational state of the FC port. Possible values: startup - The port is booting up. link_not_connected - The port has finished initialization, but a link with the fabric is not established. online - The port is initialized and a link with the fabric has been established. link_disconnected - The link was present at one point on this port but is currently not established. offlined_by_user - The port is administratively disabled. offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors. node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible. |
Dependent item | netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online" | Something is wrong with the FC port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disks discovery | HTTP agent | netapp.disks.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DISKNAME}: State | The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing |
Dependent item | netapp.disk.state[{#NODENAME},{#DISKNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present" | Something is wrong with the disk. |
(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Chassis discovery | HTTP agent | netapp.chassis.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ID}: State | The chassis state: ok, error. |
Dependent item | netapp.chassis.state[{#ID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#ID}: Chassis has something errors | Something is wrong with the chassis. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FRUs discovery | Dependent item | netapp.frus.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FRUID}: State | The FRU state: ok, error. |
Dependent item | netapp.chassis.fru.state[{#CHASSISID},{#FRUID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#FRUID}: FRU of the chassis "{#ID}" state is error | Something is wrong with the FRU. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| SVMs discovery | HTTP agent | netapp.svms.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#SVMNAME}: State | SVM state: starting, running, stopping, stopped, deleting. |
Dependent item | netapp.svm.state[{#SVMNAME}] Preprocessing
|
| {#SVMNAME}: Comment | The comment for the SVM. |
Dependent item | netapp.svm.comment[{#SVMNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#SVMNAME}: SVM state is abnormal | Something is wrong with the SVM. |
(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| LUNs discovery | HTTP agent | netapp.luns.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#LUNNAME}: State | The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error. |
Dependent item | netapp.lun.status.state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Container state | The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available. |
Dependent item | netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space size | The total provisioned size of the LUN. |
Dependent item | netapp.lun.space.size[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space used | The amount of space consumed by the main data stream of the LUN. |
Dependent item | netapp.lun.space.used[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state | Normal states for a LUN are online and offline. Other states indicate errors. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| NetApp AFF A700: {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state | LUNs are only available when their containers are available. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Volumes discovery | HTTP agent | netapp.volumes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VOLUMENAME}: Comment | A comment for the volume. |
Dependent item | netapp.volume.comment[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: State | Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
Dependent item | netapp.volume.state[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Type | Type of the volume. rw - read-write volume. dp - data-protection volume. ls - load-sharing dp volume. |
Dependent item | netapp.volume.type[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: SVM name | The volume belongs this SVM. |
Dependent item | netapp.volume.svm_name[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Space size | Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes. |
Dependent item | netapp.volume.space_size[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Available size | The available space, in bytes. |
Dependent item | netapp.volume.space_available[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Used size | The virtual space used (includes volume reserves) before storage efficiency, in bytes. |
Dependent item | netapp.volume.space_used[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.volume.statistics.latency.other[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.volume.statistics.latency.read[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.volume.statistics.latency.write[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.volume.statistics.latency.total[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency raw, other | The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, read | The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, write | The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, total | The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#VOLUMENAME}: Volume state is abnormal | A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online") |
Average | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
1. Create a host for AFF A700 with cluster management IP as the Zabbix agent interface.
2. Link the template to the host.
3. Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$NETAPP.URL} | AFF700 cluster URL address. |
|
| {$NETAPP.USERNAME} | AFF700 user name. |
|
| {$NETAPP.PASSWORD} | AFF700 user password. |
|
| {$NETAPP.HTTP.AGENT.TIMEOUT} | The HTTP agent timeout to wait for a response from AFF700. |
5s |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get cluster | HTTP agent | netapp.cluster.get | |
| Get nodes | HTTP agent | netapp.nodes.get | |
| Get disks | HTTP agent | netapp.disks.get | |
| Get volumes | HTTP agent | netapp.volumes.get | |
| Get ethernet ports | HTTP agent | netapp.ports.eth.get | |
| Get FC ports | HTTP agent | netapp.ports.fc.get | |
| Get SVMs | HTTP agent | netapp.svms.get | |
| Get LUNs | HTTP agent | netapp.luns.get | |
| Get chassis | HTTP agent | netapp.chassis.get | |
| Get FRUs | HTTP agent | netapp.frus.get Preprocessing
|
|
| Cluster software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.cluster.version Preprocessing
|
| Cluster name | The name of the cluster. |
Dependent item | netapp.cluster.name Preprocessing
|
| Cluster location | The location of the cluster. |
Dependent item | netapp.cluster.location Preprocessing
|
| Cluster status | The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data. |
Dependent item | netapp.cluster.status Preprocessing
|
| Cluster throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.throughput.other.rate Preprocessing
|
| Cluster throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.read.rate Preprocessing
|
| Cluster throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.write.rate Preprocessing
|
| Cluster throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.total.rate Preprocessing
|
| Cluster IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops.other.rate Preprocessing
|
| Cluster IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops.read.rate Preprocessing
|
| Cluster IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops.write.rate Preprocessing
|
| Cluster IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops.total.rate Preprocessing
|
| Cluster latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.cluster.statistics.latency.other |
| Cluster latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.cluster.statistics.latency.read |
| Cluster latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.cluster.statistics.latency.write |
| Cluster latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.cluster.statistics.latency.total |
| Cluster latency raw, other | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.latency_raw.other Preprocessing
|
| Cluster latency raw, read | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.read Preprocessing
|
| Cluster latency raw, write | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.write Preprocessing
|
| Cluster latency raw, total | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.total Preprocessing
|
| Cluster IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops_raw.other Preprocessing
|
| Cluster IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.read Preprocessing
|
| Cluster IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.write Preprocessing
|
| Cluster IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.total Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: Version has changed | The NetApp AFF A700 version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2) and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0 |
Info | Manual close: Yes |
| NetApp AFF A700: Cluster status is abnormal | Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data. |
(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nodes discovery | HTTP agent | netapp.nodes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#NODENAME}: Software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.node.version[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Location | The location of the node. |
Dependent item | netapp.nodes.location[{#NODENAME}] Preprocessing
|
| {#NODENAME}: State | State of the node: up - Node is up and operational. booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
Dependent item | netapp.nodes.state[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Membership | Possible values: available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created. joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node. member - Nodes that are members have successfully joined the cluster. |
Dependent item | netapp.nodes.membership[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Uptime | The total time, in seconds, that the node has been up. |
Dependent item | netapp.nodes.uptime[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Controller over temperature | Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal |
Dependent item | netapp.nodes.controller.over_temperature[{#NODENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#NODENAME}: Version has changed | {#NODENAME} version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2) and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0 |
Info | Manual close: Yes |
| NetApp AFF A700: {#NODENAME}: Node state is abnormal | The state of the node is different from up: |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up") |
Average | |
| NetApp AFF A700: {#NODENAME}: Node has been restarted | Uptime is less than 10 minutes. |
last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m |
Info | Manual close: Yes |
| NetApp AFF A700: {#NODENAME}: Node has over temperature | The hardware shuts down if the temperature exceeds critical thresholds(item's value is "over"). |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ethernet ports discovery | HTTP agent | netapp.ports.ether.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ETHPORTNAME}: State | The operational state of the port. Possible values: up, down. |
Dependent item | netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down | Something is wrong with the ethernet port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FC ports discovery | HTTP agent | netapp.ports.fc.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FCPORTNAME}: Description | A description of the FC port. |
Dependent item | netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| {#FCPORTNAME}: State | The operational state of the FC port. Possible values: startup - The port is booting up. link_not_connected - The port has finished initialization, but a link with the fabric is not established. online - The port is initialized and a link with the fabric has been established. link_disconnected - The link was present at one point on this port but is currently not established. offlined_by_user - The port is administratively disabled. offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors. node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible. |
Dependent item | netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online" | Something is wrong with the FC port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disks discovery | HTTP agent | netapp.disks.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DISKNAME}: State | The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing |
Dependent item | netapp.disk.state[{#NODENAME},{#DISKNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present" | Something is wrong with the disk. |
(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Chassis discovery | HTTP agent | netapp.chassis.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ID}: State | The chassis state: ok, error. |
Dependent item | netapp.chassis.state[{#ID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#ID}: Chassis has something errors | Something is wrong with the chassis. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FRUs discovery | Dependent item | netapp.frus.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FRUID}: State | The FRU state: ok, error. |
Dependent item | netapp.chassis.fru.state[{#CHASSISID},{#FRUID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#FRUID}: FRU of the chassis "{#ID}" state is error | Something is wrong with the FRU. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| SVMs discovery | HTTP agent | netapp.svms.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#SVMNAME}: State | SVM state: starting, running, stopping, stopped, deleting. |
Dependent item | netapp.svm.state[{#SVMNAME}] Preprocessing
|
| {#SVMNAME}: Comment | The comment for the SVM. |
Dependent item | netapp.svm.comment[{#SVMNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#SVMNAME}: SVM state is abnormal | Something is wrong with the SVM. |
(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| LUNs discovery | HTTP agent | netapp.luns.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#LUNNAME}: State | The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error. |
Dependent item | netapp.lun.status.state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Container state | The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available. |
Dependent item | netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space size | The total provisioned size of the LUN. |
Dependent item | netapp.lun.space.size[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space used | The amount of space consumed by the main data stream of the LUN. |
Dependent item | netapp.lun.space.used[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state | Normal states for a LUN are online and offline. Other states indicate errors. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| NetApp AFF A700: {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state | LUNs are only available when their containers are available. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Volumes discovery | HTTP agent | netapp.volumes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VOLUMENAME}: Comment | A comment for the volume. |
Dependent item | netapp.volume.comment[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: State | Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
Dependent item | netapp.volume.state[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Type | Type of the volume. rw - read-write volume. dp - data-protection volume. ls - load-sharing dp volume. |
Dependent item | netapp.volume.type[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: SVM name | The volume belongs this SVM. |
Dependent item | netapp.volume.svm_name[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Space size | Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes. |
Dependent item | netapp.volume.space_size[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Available size | The available space, in bytes. |
Dependent item | netapp.volume.space_available[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Used size | The virtual space used (includes volume reserves) before storage efficiency, in bytes. |
Dependent item | netapp.volume.space_used[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.volume.statistics.latency.other[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.volume.statistics.latency.read[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.volume.statistics.latency.write[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.volume.statistics.latency.total[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency raw, other | The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, read | The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, write | The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, total | The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: {#VOLUMENAME}: Volume state is abnormal | A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online") |
Average | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
1. Create a host for AFF A700 with cluster management IP as the Zabbix agent interface.
2. Link the template to the host.
3. Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$URL} | AFF700 cluster URL address. |
|
| {$USERNAME} | AFF700 user name. |
|
| {$PASSWORD} | AFF700 user password. |
|
| {$HTTP.AGENT.TIMEOUT} | The HTTP agent timeout to wait for a response from AFF700. |
3s |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| NetApp AFF A700: Get cluster | HTTP agent | netapp.cluster.get | |
| NetApp AFF A700: Get nodes | HTTP agent | netapp.nodes.get | |
| NetApp AFF A700: Get disks | HTTP agent | netapp.disks.get | |
| NetApp AFF A700: Get volumes | HTTP agent | netapp.volumes.get | |
| NetApp AFF A700: Get ethernet ports | HTTP agent | netapp.ports.eth.get | |
| NetApp AFF A700: Get FC ports | HTTP agent | netapp.ports.fc.get | |
| NetApp AFF A700: Get SVMs | HTTP agent | netapp.svms.get | |
| NetApp AFF A700: Get LUNs | HTTP agent | netapp.luns.get | |
| NetApp AFF A700: Get chassis | HTTP agent | netapp.chassis.get | |
| NetApp AFF A700: Get FRUs | HTTP agent | netapp.frus.get Preprocessing
|
|
| NetApp AFF A700: Cluster software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.cluster.version Preprocessing
|
| NetApp AFF A700: Cluster name | The name of the cluster. |
Dependent item | netapp.cluster.name Preprocessing
|
| NetApp AFF A700: Cluster location | The location of the cluster. |
Dependent item | netapp.cluster.location Preprocessing
|
| NetApp AFF A700: Cluster status | The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data. |
Dependent item | netapp.cluster.status Preprocessing
|
| NetApp AFF A700: Cluster throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.throughput.other.rate Preprocessing
|
| NetApp AFF A700: Cluster throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.read.rate Preprocessing
|
| NetApp AFF A700: Cluster throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.write.rate Preprocessing
|
| NetApp AFF A700: Cluster throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.total.rate Preprocessing
|
| NetApp AFF A700: Cluster IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops.other.rate Preprocessing
|
| NetApp AFF A700: Cluster IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops.read.rate Preprocessing
|
| NetApp AFF A700: Cluster IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops.write.rate Preprocessing
|
| NetApp AFF A700: Cluster IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops.total.rate Preprocessing
|
| NetApp AFF A700: Cluster latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.cluster.statistics.latency.other |
| NetApp AFF A700: Cluster latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.cluster.statistics.latency.read |
| NetApp AFF A700: Cluster latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.cluster.statistics.latency.write |
| NetApp AFF A700: Cluster latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.cluster.statistics.latency.total |
| NetApp AFF A700: Cluster latency raw, other | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.latency_raw.other Preprocessing
|
| NetApp AFF A700: Cluster latency raw, read | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.read Preprocessing
|
| NetApp AFF A700: Cluster latency raw, write | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.write Preprocessing
|
| NetApp AFF A700: Cluster latency raw, total | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.total Preprocessing
|
| NetApp AFF A700: Cluster IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops_raw.other Preprocessing
|
| NetApp AFF A700: Cluster IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.read Preprocessing
|
| NetApp AFF A700: Cluster IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.write Preprocessing
|
| NetApp AFF A700: Cluster IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.total Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: Version has changed | The NetApp AFF A700 version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2) and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0 |
Info | Manual close: Yes |
| NetApp AFF A700: Cluster status is abnormal | Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data. |
(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nodes discovery | HTTP agent | netapp.nodes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#NODENAME}: Software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.node.version[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Location | The location of the node. |
Dependent item | netapp.nodes.location[{#NODENAME}] Preprocessing
|
| {#NODENAME}: State | State of the node: up - Node is up and operational. booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
Dependent item | netapp.nodes.state[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Membership | Possible values: available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created. joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node. member - Nodes that are members have successfully joined the cluster. |
Dependent item | netapp.nodes.membership[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Uptime | The total time, in seconds, that the node has been up. |
Dependent item | netapp.nodes.uptime[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Controller over temperature | Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal |
Dependent item | netapp.nodes.controller.over_temperature[{#NODENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#NODENAME}: Version has changed | {#NODENAME} version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2) and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0 |
Info | Manual close: Yes |
| {#NODENAME}: Node state is abnormal | The state of the node is different from up: |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up") |
Average | |
| {#NODENAME}: Node has been restarted | Uptime is less than 10 minutes. |
last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m |
Info | Manual close: Yes |
| {#NODENAME}: Node has over temperature | The hardware shuts down if the temperature exceeds critical thresholds(item's value is "over"). |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ethernet ports discovery | HTTP agent | netapp.ports.ether.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ETHPORTNAME}: State | The operational state of the port. Possible values: up, down. |
Dependent item | netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down | Something is wrong with the ethernet port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FC ports discovery | HTTP agent | netapp.ports.fc.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FCPORTNAME}: Description | A description of the FC port. |
Dependent item | netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| {#FCPORTNAME}: State | The operational state of the FC port. Possible values: startup - The port is booting up. link_not_connected - The port has finished initialization, but a link with the fabric is not established. online - The port is initialized and a link with the fabric has been established. link_disconnected - The link was present at one point on this port but is currently not established. offlined_by_user - The port is administratively disabled. offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors. node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible. |
Dependent item | netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online" | Something is wrong with the FC port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disks discovery | HTTP agent | netapp.disks.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DISKNAME}: State | The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing |
Dependent item | netapp.disk.state[{#NODENAME},{#DISKNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present" | Something is wrong with the disk. |
(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Chassis discovery | HTTP agent | netapp.chassis.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ID}: State | The chassis state: ok, error. |
Dependent item | netapp.chassis.state[{#ID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#ID}: Chassis has something errors | Something is wrong with the chassis. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FRUs discovery | Dependent item | netapp.frus.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FRUID}: State | The FRU state: ok, error. |
Dependent item | netapp.chassis.fru.state[{#CHASSISID},{#FRUID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FRUID}: FRU of the chassis "{#ID}" state is error | Something is wrong with the FRU. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| SVMs discovery | HTTP agent | netapp.svms.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#SVMNAME}: State | SVM state: starting, running, stopping, stopped, deleting. |
Dependent item | netapp.svm.state[{#SVMNAME}] Preprocessing
|
| {#SVMNAME}: Comment | The comment for the SVM. |
Dependent item | netapp.svm.comment[{#SVMNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#SVMNAME}: SVM state is abnormal | Something is wrong with the SVM. |
(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| LUNs discovery | HTTP agent | netapp.luns.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#LUNNAME}: State | The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error. |
Dependent item | netapp.lun.status.state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Container state | The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available. |
Dependent item | netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space size | The total provisioned size of the LUN. |
Dependent item | netapp.lun.space.size[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space used | The amount of space consumed by the main data stream of the LUN. |
Dependent item | netapp.lun.space.used[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state | Normal states for a LUN are online and offline. Other states indicate errors. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state | LUNs are only available when their containers are available. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Volumes discovery | HTTP agent | netapp.volumes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VOLUMENAME}: Comment | A comment for the volume. |
Dependent item | netapp.volume.comment[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: State | Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
Dependent item | netapp.volume.state[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Type | Type of the volume. rw - read-write volume. dp - data-protection volume. ls - load-sharing dp volume. |
Dependent item | netapp.volume.type[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: SVM name | The volume belongs this SVM. |
Dependent item | netapp.volume.svm_name[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Space size | Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes. |
Dependent item | netapp.volume.space_size[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Available size | The available space, in bytes. |
Dependent item | netapp.volume.space_available[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Used size | The virtual space used (includes volume reserves) before storage efficiency, in bytes. |
Dependent item | netapp.volume.space_used[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.volume.statistics.latency.other[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.volume.statistics.latency.read[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.volume.statistics.latency.write[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.volume.statistics.latency.total[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency raw, other | The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, read | The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, write | The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, total | The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#VOLUMENAME}: Volume state is abnormal | A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online") |
Average | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
For Zabbix version: 6.2 and higher
The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
This template was tested on:
See Zabbix template operation for basic instructions.
1. Create a host for AFF A700 with cluster management IP as the Zabbix agent interface.
2. Link the template to the host.
3. Customize macro values if needed.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$HTTP.AGENT.TIMEOUT} | The HTTP agent timeout to wait for a response from AFF700. |
3s |
| {$PASSWORD} | AFF700 user password. |
`` |
| {$URL} | AFF700 cluster URL address. |
`` |
| {$USERNAME} | AFF700 user name. |
`` |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Chassis discovery | - |
HTTP_AGENT | netapp.chassis.discovery Preprocessing: - JAVASCRIPT: |
| Disks discovery | - |
HTTP_AGENT | netapp.disks.discovery Preprocessing: - JAVASCRIPT: |
| Ethernet ports discovery | - |
HTTP_AGENT | netapp.ports.ether.discovery Preprocessing: - JAVASCRIPT: |
| FC ports discovery | - |
HTTP_AGENT | netapp.ports.fc.discovery Preprocessing: - JAVASCRIPT: |
| FRUs discovery | - |
DEPENDENT | netapp.frus.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| LUNs discovery | - |
HTTP_AGENT | netapp.luns.discovery Preprocessing: - JAVASCRIPT: |
| Nodes discovery | - |
HTTP_AGENT | netapp.nodes.discovery Preprocessing: - JAVASCRIPT: |
| SVMs discovery | - |
HTTP_AGENT | netapp.svms.discovery Preprocessing: - JAVASCRIPT: |
| Volumes discovery | - |
HTTP_AGENT | netapp.volumes.discovery Preprocessing: - JAVASCRIPT: |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| General | Cluster software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
DEPENDENT | netapp.cluster.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster name | The name of the cluster. |
DEPENDENT | netapp.cluster.name Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster location | The location of the cluster. |
DEPENDENT | netapp.cluster.location Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster status | The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data. |
DEPENDENT | netapp.cluster.status Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.throughput.other.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.read.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.write.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.iops.other.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.read.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.write.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
CALCULATED | netapp.cluster.statistics.latency.other Expression: (last(//netapp.cluster.statistics.latency_raw.other) - last(//netapp.cluster.statistics.latency_raw.other,#2)) / (last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) + (last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) = 0) ) * 0.001 |
| General | Cluster latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.read Expression: (last(//netapp.cluster.statistics.latency_raw.read) - last(//netapp.cluster.statistics.latency_raw.read,#2)) / ( last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) + (last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) = 0) ) * 0.001 |
| General | Cluster latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.write Expression: (last(//netapp.cluster.statistics.latency_raw.write) - last(//netapp.cluster.statistics.latency_raw.write,#2)) / ( last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) + (last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) = 0) ) * 0.001 |
| General | Cluster latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.total Expression: (last(//netapp.cluster.statistics.latency_raw.total) - last(//netapp.cluster.statistics.latency_raw.total,#2)) / ( last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) + (last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) = 0) ) * 0.001 |
| General | {#NODENAME}: Software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
DEPENDENT | netapp.node.version[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Location | The location of the node. |
DEPENDENT | netapp.nodes.location[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: State | State of the node: up - Node is up and operational. booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
DEPENDENT | netapp.nodes.state[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Membership | Possible values: available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created. joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node. member - Nodes that are members have successfully joined the cluster. |
DEPENDENT | netapp.nodes.membership[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Uptime | The total time, in seconds, that the node has been up. |
DEPENDENT | netapp.nodes.uptime[{#NODENAME}] Preprocessing: - JSONPATH: |
| General | {#NODENAME}: Controller over temperature | Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal |
DEPENDENT | netapp.nodes.controller.over_temperature[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#ETHPORTNAME}: State | The operational state of the port. Possible values: up, down. |
DEPENDENT | netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FCPORTNAME}: Description | A description of the FC port. |
DEPENDENT | netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FCPORTNAME}: State | The operational state of the FC port. Possible values: startup - The port is booting up. link_not_connected - The port has finished initialization, but a link with the fabric is not established. online - The port is initialized and a link with the fabric has been established. link_disconnected - The link was present at one point on this port but is currently not established. offlined_by_user - The port is administratively disabled. offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors. node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible. |
DEPENDENT | netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#DISKNAME}: State | The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing |
DEPENDENT | netapp.disk.state[{#NODENAME},{#DISKNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#ID}: State | The chassis state: ok, error. |
DEPENDENT | netapp.chassis.state[{#ID}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FRUID}: State | The FRU state: ok, error. |
DEPENDENT | netapp.chassis.fru.state[{#CHASSISID},{#FRUID}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#SVMNAME}: State | SVM state: starting, running, stopping, stopped, deleting. |
DEPENDENT | netapp.svm.state[{#SVMNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#SVMNAME}: Comment | The comment for the SVM. |
DEPENDENT | netapp.svm.comment[{#SVMNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: State | The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error. |
DEPENDENT | netapp.lun.status.state[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Container state | The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available. |
DEPENDENT | netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Space size | The total provisioned size of the LUN. |
DEPENDENT | netapp.lun.space.size[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Space used | The amount of space consumed by the main data stream of the LUN. |
DEPENDENT | netapp.lun.space.used[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Comment | A comment for the volume. |
DEPENDENT | netapp.volume.comment[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: State | Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
DEPENDENT | netapp.volume.state[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Type | Type of the volume. rw - read-write volume. dp - data-protection volume. ls - load-sharing dp volume. |
DEPENDENT | netapp.volume.type[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: SVM name | The volume belongs this SVM. |
DEPENDENT | netapp.volume.svm_name[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Space size | Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes. |
DEPENDENT | netapp.volume.space_size[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Available size | The available space, in bytes. |
DEPENDENT | netapp.volume.space_available[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Used size | The virtual space used (includes volume reserves) before storage efficiency, in bytes. |
DEPENDENT | netapp.volume.space_used[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Volume throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
CALCULATED | netapp.volume.statistics.latency.other[{#VOLUMENAME}] Expression: (last(//netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}],#2)) / ( last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}],#2) + (last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}],#2) = 0) ) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
CALCULATED | netapp.volume.statistics.latency.read[{#VOLUMENAME}] Expression: (last(//netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}],#2)) / ( last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}],#2) + (last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}],#2) = 0)) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
CALCULATED | netapp.volume.statistics.latency.write[{#VOLUMENAME}] Expression: (last(//netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}],#2)) / ( last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}],#2) + (last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}],#2) = 0) ) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
CALCULATED | netapp.volume.statistics.latency.total[{#VOLUMENAME}] Expression: (last(//netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}],#2)) / ( last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}],#2) + (last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}],#2) = 0) ) * 0.001 |
| Zabbix raw items | Get cluster | - |
HTTP_AGENT | netapp.cluster.get |
| Zabbix raw items | Get nodes | - |
HTTP_AGENT | netapp.nodes.get |
| Zabbix raw items | Get disks | - |
HTTP_AGENT | netapp.disks.get |
| Zabbix raw items | Get volumes | - |
HTTP_AGENT | netapp.volumes.get |
| Zabbix raw items | Get ethernet ports | - |
HTTP_AGENT | netapp.ports.eth.get |
| Zabbix raw items | Get FC ports | - |
HTTP_AGENT | netapp.ports.fc.get |
| Zabbix raw items | Get SVMs | - |
HTTP_AGENT | netapp.svms.get |
| Zabbix raw items | Get LUNs | - |
HTTP_AGENT | netapp.luns.get |
| Zabbix raw items | Get chassis | - |
HTTP_AGENT | netapp.chassis.get |
| Zabbix raw items | Get FRUs | - |
HTTP_AGENT | netapp.frus.get Preprocessing: - JAVASCRIPT: |
| Zabbix raw items | Cluster latency raw, other | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.latency_raw.other Preprocessing: - JSONPATH: |
| Zabbix raw items | Cluster latency raw, read | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.read Preprocessing: - JSONPATH: |
| Zabbix raw items | Cluster latency raw, write | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.write Preprocessing: - JSONPATH: |
| Zabbix raw items | Cluster latency raw, total | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.total Preprocessing: - JSONPATH: |
| Zabbix raw items | Cluster IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.iops_raw.other Preprocessing: - JSONPATH: |
| Zabbix raw items | Cluster IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.read Preprocessing: - JSONPATH: |
| Zabbix raw items | Cluster IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.write Preprocessing: - JSONPATH: |
| Zabbix raw items | Cluster IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.total Preprocessing: - JSONPATH: |
| Zabbix raw items | {#VOLUMENAME}: Volume latency raw, other | The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix raw items | {#VOLUMENAME}: Volume latency raw, read | The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix raw items | {#VOLUMENAME}: Volume latency raw, write | The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix raw items | {#VOLUMENAME}: Volume latency raw, total | The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix raw items | {#VOLUMENAME}: Volume IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix raw items | {#VOLUMENAME}: Volume IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix raw items | {#VOLUMENAME}: Volume IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix raw items | {#VOLUMENAME}: Volume IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Version has changed | RESOURCE version has changed. Ack to close. |
last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2) and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0 |
INFO | Manual close: YES |
| Cluster status is abnormal | Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data. |
(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok") |
AVERAGE | |
| {#NODENAME}: Version has changed | {#NODENAME} version has changed. Ack to close. |
last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2) and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0 |
INFO | Manual close: YES |
| {#NODENAME}: Node state is abnormal | The state of the node is different from up: booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up") |
AVERAGE | |
| {#NODENAME}: Node has been restarted | Uptime is less than 10 minutes. |
last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m |
INFO | Manual close: YES |
| {#NODENAME}: Node has over temperature | The hardware shuts down if the temperature exceeds critical thresholds(item's value is "over"). |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal") |
AVERAGE | |
| {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down | Something is wrong with the ethernet port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="up") |
AVERAGE | Manual close: YES |
| {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online" | Something is wrong with the FC port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])="online") |
AVERAGE | Manual close: YES |
| {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present" | Something is wrong with the disk. |
(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])="present") |
AVERAGE | Manual close: YES |
| {#ID}: Chassis has something errors | Something is wrong with the chassis. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="ok") |
AVERAGE | Manual close: YES |
| {#FRUID}: FRU of the chassis "{#ID}" state is error | Something is wrong with the FRU. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="ok") |
AVERAGE | Manual close: YES |
| {#SVMNAME}: SVM state is abnormal | Something is wrong with the SVM. |
(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])="running") |
AVERAGE | Manual close: YES |
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state | Normal states for a LUN are online and offline. Other states indicate errors. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])="online") |
AVERAGE | Manual close: YES |
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state | LUNs are only available when their containers are available. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])="online") |
AVERAGE | Manual close: YES |
| {#VOLUMENAME}: Volume state is abnormal | A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])="online") |
AVERAGE | Manual close: YES |
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.
The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
1. Create a host for AFF A700 with cluster management IP as the Zabbix agent interface.
2. Link the template to the host.
3. Customize macro values if needed.
| Name | Description | Default |
|---|---|---|
| {$URL} | AFF700 cluster URL address. |
|
| {$USERNAME} | AFF700 user name. |
|
| {$PASSWORD} | AFF700 user password. |
|
| {$HTTP.AGENT.TIMEOUT} | The HTTP agent timeout to wait for a response from AFF700. |
3s |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| NetApp AFF A700: Get cluster | HTTP agent | netapp.cluster.get | |
| NetApp AFF A700: Get nodes | HTTP agent | netapp.nodes.get | |
| NetApp AFF A700: Get disks | HTTP agent | netapp.disks.get | |
| NetApp AFF A700: Get volumes | HTTP agent | netapp.volumes.get | |
| NetApp AFF A700: Get ethernet ports | HTTP agent | netapp.ports.eth.get | |
| NetApp AFF A700: Get FC ports | HTTP agent | netapp.ports.fc.get | |
| NetApp AFF A700: Get SVMs | HTTP agent | netapp.svms.get | |
| NetApp AFF A700: Get LUNs | HTTP agent | netapp.luns.get | |
| NetApp AFF A700: Get chassis | HTTP agent | netapp.chassis.get | |
| NetApp AFF A700: Get FRUs | HTTP agent | netapp.frus.get Preprocessing
|
|
| NetApp AFF A700: Cluster software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.cluster.version Preprocessing
|
| NetApp AFF A700: Cluster name | The name of the cluster. |
Dependent item | netapp.cluster.name Preprocessing
|
| NetApp AFF A700: Cluster location | The location of the cluster. |
Dependent item | netapp.cluster.location Preprocessing
|
| NetApp AFF A700: Cluster status | The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data. |
Dependent item | netapp.cluster.status Preprocessing
|
| NetApp AFF A700: Cluster throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.throughput.other.rate Preprocessing
|
| NetApp AFF A700: Cluster throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.read.rate Preprocessing
|
| NetApp AFF A700: Cluster throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.write.rate Preprocessing
|
| NetApp AFF A700: Cluster throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.throughput.total.rate Preprocessing
|
| NetApp AFF A700: Cluster IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops.other.rate Preprocessing
|
| NetApp AFF A700: Cluster IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops.read.rate Preprocessing
|
| NetApp AFF A700: Cluster IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops.write.rate Preprocessing
|
| NetApp AFF A700: Cluster IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops.total.rate Preprocessing
|
| NetApp AFF A700: Cluster latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.cluster.statistics.latency.other |
| NetApp AFF A700: Cluster latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.cluster.statistics.latency.read |
| NetApp AFF A700: Cluster latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.cluster.statistics.latency.write |
| NetApp AFF A700: Cluster latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.cluster.statistics.latency.total |
| NetApp AFF A700: Cluster latency raw, other | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.latency_raw.other Preprocessing
|
| NetApp AFF A700: Cluster latency raw, read | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.read Preprocessing
|
| NetApp AFF A700: Cluster latency raw, write | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.write Preprocessing
|
| NetApp AFF A700: Cluster latency raw, total | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.latency_raw.total Preprocessing
|
| NetApp AFF A700: Cluster IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.cluster.statistics.iops_raw.other Preprocessing
|
| NetApp AFF A700: Cluster IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.read Preprocessing
|
| NetApp AFF A700: Cluster IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.write Preprocessing
|
| NetApp AFF A700: Cluster IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.cluster.statistics.iops_raw.total Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NetApp AFF A700: Version has changed | The NetApp AFF A700 version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2) and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0 |
Info | Manual close: Yes |
| NetApp AFF A700: Cluster status is abnormal | Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data. |
(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nodes discovery | HTTP agent | netapp.nodes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#NODENAME}: Software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
Dependent item | netapp.node.version[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Location | The location of the node. |
Dependent item | netapp.nodes.location[{#NODENAME}] Preprocessing
|
| {#NODENAME}: State | State of the node: up - Node is up and operational. booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
Dependent item | netapp.nodes.state[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Membership | Possible values: available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created. joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node. member - Nodes that are members have successfully joined the cluster. |
Dependent item | netapp.nodes.membership[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Uptime | The total time, in seconds, that the node has been up. |
Dependent item | netapp.nodes.uptime[{#NODENAME}] Preprocessing
|
| {#NODENAME}: Controller over temperature | Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal |
Dependent item | netapp.nodes.controller.over_temperature[{#NODENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#NODENAME}: Version has changed | {#NODENAME} version has changed. Acknowledge to close the problem manually. |
last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2) and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0 |
Info | Manual close: Yes |
| {#NODENAME}: Node state is abnormal | The state of the node is different from up: |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up") |
Average | |
| {#NODENAME}: Node has been restarted | Uptime is less than 10 minutes. |
last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m |
Info | Manual close: Yes |
| {#NODENAME}: Node has over temperature | The hardware shuts down if the temperature exceeds critical thresholds(item's value is "over"). |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal") |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ethernet ports discovery | HTTP agent | netapp.ports.ether.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ETHPORTNAME}: State | The operational state of the port. Possible values: up, down. |
Dependent item | netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down | Something is wrong with the ethernet port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FC ports discovery | HTTP agent | netapp.ports.fc.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FCPORTNAME}: Description | A description of the FC port. |
Dependent item | netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| {#FCPORTNAME}: State | The operational state of the FC port. Possible values: startup - The port is booting up. link_not_connected - The port has finished initialization, but a link with the fabric is not established. online - The port is initialized and a link with the fabric has been established. link_disconnected - The link was present at one point on this port but is currently not established. offlined_by_user - The port is administratively disabled. offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors. node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible. |
Dependent item | netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online" | Something is wrong with the FC port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Disks discovery | HTTP agent | netapp.disks.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DISKNAME}: State | The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing |
Dependent item | netapp.disk.state[{#NODENAME},{#DISKNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present" | Something is wrong with the disk. |
(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Chassis discovery | HTTP agent | netapp.chassis.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#ID}: State | The chassis state: ok, error. |
Dependent item | netapp.chassis.state[{#ID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#ID}: Chassis has something errors | Something is wrong with the chassis. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FRUs discovery | Dependent item | netapp.frus.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FRUID}: State | The FRU state: ok, error. |
Dependent item | netapp.chassis.fru.state[{#CHASSISID},{#FRUID}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FRUID}: FRU of the chassis "{#ID}" state is error | Something is wrong with the FRU. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| SVMs discovery | HTTP agent | netapp.svms.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#SVMNAME}: State | SVM state: starting, running, stopping, stopped, deleting. |
Dependent item | netapp.svm.state[{#SVMNAME}] Preprocessing
|
| {#SVMNAME}: Comment | The comment for the SVM. |
Dependent item | netapp.svm.comment[{#SVMNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#SVMNAME}: SVM state is abnormal | Something is wrong with the SVM. |
(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| LUNs discovery | HTTP agent | netapp.luns.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#LUNNAME}: State | The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error. |
Dependent item | netapp.lun.status.state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Container state | The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available. |
Dependent item | netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space size | The total provisioned size of the LUN. |
Dependent item | netapp.lun.space.size[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| {#LUNNAME}: Space used | The amount of space consumed by the main data stream of the LUN. |
Dependent item | netapp.lun.space.used[{#SVMNAME},{#LUNNAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state | Normal states for a LUN are online and offline. Other states indicate errors. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state | LUNs are only available when their containers are available. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online") |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Volumes discovery | HTTP agent | netapp.volumes.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#VOLUMENAME}: Comment | A comment for the volume. |
Dependent item | netapp.volume.comment[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: State | Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
Dependent item | netapp.volume.state[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Type | Type of the volume. rw - read-write volume. dp - data-protection volume. ls - load-sharing dp volume. |
Dependent item | netapp.volume.type[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: SVM name | The volume belongs this SVM. |
Dependent item | netapp.volume.svm_name[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Space size | Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes. |
Dependent item | netapp.volume.space_size[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Available size | The available space, in bytes. |
Dependent item | netapp.volume.space_available[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Used size | The virtual space used (includes volume reserves) before storage efficiency, in bytes. |
Dependent item | netapp.volume.space_used[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Calculated | netapp.volume.statistics.latency.other[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
Calculated | netapp.volume.statistics.latency.read[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
Calculated | netapp.volume.statistics.latency.write[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Calculated | netapp.volume.statistics.latency.total[{#VOLUMENAME}] |
| {#VOLUMENAME}: Volume latency raw, other | The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, read | The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, write | The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume latency raw, total | The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
Dependent item | netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}] Preprocessing
|
| {#VOLUMENAME}: Volume IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
Dependent item | netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#VOLUMENAME}: Volume state is abnormal | A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online") |
Average | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
For Zabbix version: 5.4 and higher
The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
This template was tested on:
See Zabbix template operation for basic instructions.
1. Create a host for AFF A700 with cluster management IP as the Zabbix agent interface.
2. Link the template to the host.
3. Customize macro values if needed.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$HTTP.AGENT.TIMEOUT} | The HTTP agent timeout to wait for a response from AFF700. |
3s |
| {$PASSWORD} | AFF700 user password. |
`` |
| {$URL} | AFF700 cluster URL address. |
`` |
| {$USERNAME} | AFF700 user name. |
`` |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nodes discovery | - |
HTTP_AGENT | netapp.nodes.discovery Preprocessing: - JAVASCRIPT: |
| Ethernet ports discovery | - |
HTTP_AGENT | netapp.ports.ether.discovery Preprocessing: - JAVASCRIPT: |
| FC ports discovery | - |
HTTP_AGENT | netapp.ports.fc.discovery Preprocessing: - JAVASCRIPT: |
| Disks discovery | - |
HTTP_AGENT | netapp.disks.discovery Preprocessing: - JAVASCRIPT: |
| Chassis discovery | - |
HTTP_AGENT | netapp.chassis.discovery Preprocessing: - JAVASCRIPT: |
| FRUs discovery | - |
DEPENDENT | netapp.frus.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| SVMs discovery | - |
HTTP_AGENT | netapp.svms.discovery Preprocessing: - JAVASCRIPT: |
| LUNs discovery | - |
HTTP_AGENT | netapp.luns.discovery Preprocessing: - JAVASCRIPT: |
| Volumes discovery | - |
HTTP_AGENT | netapp.volumes.discovery Preprocessing: - JAVASCRIPT: |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| General | Cluster software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
DEPENDENT | netapp.cluster.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster name | The name of the cluster. |
DEPENDENT | netapp.cluster.name Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster location | The location of the cluster. |
DEPENDENT | netapp.cluster.location Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster status | The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data. |
DEPENDENT | netapp.cluster.status Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.throughput.other.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.read.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.write.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.iops.other.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.read.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.write.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
CALCULATED | netapp.cluster.statistics.latency.other Expression: (last(//netapp.cluster.statistics.latency_raw.other) - last(//netapp.cluster.statistics.latency_raw.other,#2)) / (last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) + (last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) = 0) ) * 0.001 |
| General | Cluster latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.read Expression: (last(//netapp.cluster.statistics.latency_raw.read) - last(//netapp.cluster.statistics.latency_raw.read,#2)) / ( last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) + (last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) = 0) ) * 0.001 |
| General | Cluster latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.write Expression: (last(//netapp.cluster.statistics.latency_raw.write) - last(//netapp.cluster.statistics.latency_raw.write,#2)) / ( last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) + (last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) = 0) ) * 0.001 |
| General | Cluster latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.total Expression: (last(//netapp.cluster.statistics.latency_raw.total) - last(//netapp.cluster.statistics.latency_raw.total,#2)) / ( last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) + (last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) = 0) ) * 0.001 |
| General | {#NODENAME}: Software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
DEPENDENT | netapp.node.version[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Location | The location of the node. |
DEPENDENT | netapp.nodes.location[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: State | State of the node: up - Node is up and operational. booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
DEPENDENT | netapp.nodes.state[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Membership | Possible values: available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created. joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node. member - Nodes that are members have successfully joined the cluster. |
DEPENDENT | netapp.nodes.membership[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Uptime | The total time, in seconds, that the node has been up. |
DEPENDENT | netapp.nodes.uptime[{#NODENAME}] Preprocessing: - JSONPATH: |
| General | {#NODENAME}: Controller over temperature | Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal |
DEPENDENT | netapp.nodes.controller.over_temperature[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#ETHPORTNAME}: State | The operational state of the port. Possible values: up, down. |
DEPENDENT | netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FCPORTNAME}: Description | A description of the FC port. |
DEPENDENT | netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FCPORTNAME}: State | The operational state of the FC port. Possible values: startup - The port is booting up. link_not_connected - The port has finished initialization, but a link with the fabric is not established. online - The port is initialized and a link with the fabric has been established. link_disconnected - The link was present at one point on this port but is currently not established. offlined_by_user - The port is administratively disabled. offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors. node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible. |
DEPENDENT | netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#DISKNAME}: State | The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing |
DEPENDENT | netapp.disk.state[{#NODENAME},{#DISKNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#ID}: State | The chassis state: ok, error. |
DEPENDENT | netapp.chassis.state[{#ID}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FRUID}: State | The FRU state: ok, error. |
DEPENDENT | netapp.chassis.fru.state[{#CHASSISID},{#FRUID}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#SVMNAME}: State | SVM state: starting, running, stopping, stopped, deleting. |
DEPENDENT | netapp.svm.state[{#SVMNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#SVMNAME}: Comment | The comment for the SVM. |
DEPENDENT | netapp.svm.comment[{#SVMNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: State | The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error. |
DEPENDENT | netapp.lun.status.state[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Container state | The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available. |
DEPENDENT | netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Space size | The total provisioned size of the LUN. |
DEPENDENT | netapp.lun.space.size[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Space used | The amount of space consumed by the main data stream of the LUN. |
DEPENDENT | netapp.lun.space.used[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Comment | A comment for the volume. |
DEPENDENT | netapp.volume.comment[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: State | Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
DEPENDENT | netapp.volume.state[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Type | Type of the volume. rw - read-write volume. dp - data-protection volume. ls - load-sharing dp volume. |
DEPENDENT | netapp.volume.type[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: SVM name | The volume belongs this SVM. |
DEPENDENT | netapp.volume.svm_name[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Space size | Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes. |
DEPENDENT | netapp.volume.space_size[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Available size | The available space, in bytes. |
DEPENDENT | netapp.volume.space_available[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Used size | The virtual space used (includes volume reserves) before storage efficiency, in bytes. |
DEPENDENT | netapp.volume.space_used[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Volume throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
CALCULATED | netapp.volume.statistics.latency.other[{#VOLUMENAME}] Expression: (last(//netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}],#2)) / ( last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}],#2) + (last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}],#2) = 0) ) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
CALCULATED | netapp.volume.statistics.latency.read[{#VOLUMENAME}] Expression: (last(//netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}],#2)) / ( last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}],#2) + (last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}],#2) = 0)) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
CALCULATED | netapp.volume.statistics.latency.write[{#VOLUMENAME}] Expression: (last(//netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}],#2)) / ( last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}],#2) + (last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}],#2) = 0) ) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
CALCULATED | netapp.volume.statistics.latency.total[{#VOLUMENAME}] Expression: (last(//netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}],#2)) / ( last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}],#2) + (last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}],#2) = 0) ) * 0.001 |
| Zabbix_raw_items | Get cluster | - |
HTTP_AGENT | netapp.cluster.get |
| Zabbix_raw_items | Get nodes | - |
HTTP_AGENT | netapp.nodes.get |
| Zabbix_raw_items | Get disks | - |
HTTP_AGENT | netapp.disks.get |
| Zabbix_raw_items | Get volumes | - |
HTTP_AGENT | netapp.volumes.get |
| Zabbix_raw_items | Get ethernet ports | - |
HTTP_AGENT | netapp.ports.eth.get |
| Zabbix_raw_items | Get FC ports | - |
HTTP_AGENT | netapp.ports.fc.get |
| Zabbix_raw_items | Get SVMs | - |
HTTP_AGENT | netapp.svms.get |
| Zabbix_raw_items | Get LUNs | - |
HTTP_AGENT | netapp.luns.get |
| Zabbix_raw_items | Get chassis | - |
HTTP_AGENT | netapp.chassis.get |
| Zabbix_raw_items | Get FRUs | - |
HTTP_AGENT | netapp.frus.get Preprocessing: - JAVASCRIPT: |
| Zabbix_raw_items | Cluster latency raw, other | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.latency_raw.other Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster latency raw, read | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.read Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster latency raw, write | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.write Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster latency raw, total | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.total Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.iops_raw.other Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.read Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.write Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.total Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume latency raw, other | The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume latency raw, read | The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume latency raw, write | The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume latency raw, total | The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Version has changed (new version: {ITEM.VALUE}) | RESOURCE version has changed. Ack to close. |
last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2) and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0 |
INFO | Manual close: YES |
| Cluster status is abnormal | Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data. |
(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok") |
AVERAGE | |
| {#NODENAME}: Version has changed (new version: {ITEM.VALUE}) | {#NODENAME} version has changed. Ack to close. |
last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2) and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0 |
INFO | Manual close: YES |
| {#NODENAME}: Node state is abnormal | The state of the node is different from up: booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up") |
AVERAGE | |
| {#NODENAME}: Node has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m |
INFO | Manual close: YES |
| {#NODENAME}: Node has over temperature | The hardware shuts down if the temperature exceeds critical thresholds(item's value is "over"). |
(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal") |
AVERAGE | |
| {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down | Something is wrong with the ethernet port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="up") |
AVERAGE | Manual close: YES |
| {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online" | Something is wrong with the FC port. |
(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])="online") |
AVERAGE | Manual close: YES |
| {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present" | Something is wrong with the disk. |
(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])="present") |
AVERAGE | Manual close: YES |
| {#ID}: Chassis has something errors | Something is wrong with the chassis. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="ok") |
AVERAGE | Manual close: YES |
| {#FRUID}: FRU of the chassis "{#ID}" state is error | Something is wrong with the FRU. |
(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="ok") |
AVERAGE | Manual close: YES |
| {#SVMNAME}: SVM state is abnormal | Something is wrong with the SVM. |
(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])="running") |
AVERAGE | Manual close: YES |
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state | Normal states for a LUN are online and offline. Other states indicate errors. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])="online") |
AVERAGE | Manual close: YES |
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state | LUNs are only available when their containers are available. |
(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])="online") |
AVERAGE | Manual close: YES |
| {#VOLUMENAME}: Volume state is abnormal | A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online")Recovery expression: (last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])="online") |
AVERAGE | Manual close: YES |
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.
For Zabbix version: 5.0 and higher
The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
This template was tested on:
See Zabbix template operation for basic instructions.
1. Create a host for AFF A700 with cluster management IP as the Zabbix agent interface.
2. Link the template to the host.
3. Customize macro values if needed.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$HTTP.AGENT.TIMEOUT} | The HTTP agent timeout to wait for a response from AFF700. |
3s |
| {$PASSWORD} | AFF700 user password. |
`` |
| {$URL} | AFF700 cluster URL address. |
`` |
| {$USERNAME} | AFF700 user name. |
`` |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nodes discovery | - |
HTTP_AGENT | netapp.nodes.discovery Preprocessing: - JAVASCRIPT: |
| Ethernet ports discovery | - |
HTTP_AGENT | netapp.ports.ether.discovery Preprocessing: - JAVASCRIPT: |
| FC ports discovery | - |
HTTP_AGENT | netapp.ports.fc.discovery Preprocessing: - JAVASCRIPT: |
| Disks discovery | - |
HTTP_AGENT | netapp.disks.discovery Preprocessing: - JAVASCRIPT: |
| Chassis discovery | - |
HTTP_AGENT | netapp.chassis.discovery Preprocessing: - JAVASCRIPT: |
| FRUs discovery | - |
DEPENDENT | netapp.frus.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| SVMs discovery | - |
HTTP_AGENT | netapp.svms.discovery Preprocessing: - JAVASCRIPT: |
| LUNs discovery | - |
HTTP_AGENT | netapp.luns.discovery Preprocessing: - JAVASCRIPT: |
| Volumes discovery | - |
HTTP_AGENT | netapp.volumes.discovery Preprocessing: - JAVASCRIPT: |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| General | Cluster software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
DEPENDENT | netapp.cluster.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster name | The name of the cluster. |
DEPENDENT | netapp.cluster.name Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster location | The location of the cluster. |
DEPENDENT | netapp.cluster.location Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster status | The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data. |
DEPENDENT | netapp.cluster.status Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Cluster throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.throughput.other.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.read.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.write.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.throughput.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.iops.other.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.read.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.write.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | Cluster latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
CALCULATED | netapp.cluster.statistics.latency.other Expression: (last(netapp.cluster.statistics.latency_raw.other) - prev(netapp.cluster.statistics.latency_raw.other)) / (last(netapp.cluster.statistics.iops_raw.other) - prev(netapp.cluster.statistics.iops_raw.other) + (last(netapp.cluster.statistics.iops_raw.other) - prev(netapp.cluster.statistics.iops_raw.other) = 0) ) * 0.001 |
| General | Cluster latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.read Expression: (last(netapp.cluster.statistics.latency_raw.read) - prev(netapp.cluster.statistics.latency_raw.read)) / ( last(netapp.cluster.statistics.iops_raw.read) - prev(netapp.cluster.statistics.iops_raw.read) + (last(netapp.cluster.statistics.iops_raw.read) - prev(netapp.cluster.statistics.iops_raw.read) = 0) ) * 0.001 |
| General | Cluster latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.write Expression: (last(netapp.cluster.statistics.latency_raw.write) - prev(netapp.cluster.statistics.latency_raw.write)) / ( last(netapp.cluster.statistics.iops_raw.write) - prev(netapp.cluster.statistics.iops_raw.write) + (last(netapp.cluster.statistics.iops_raw.write) - prev(netapp.cluster.statistics.iops_raw.write) = 0) ) * 0.001 |
| General | Cluster latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
CALCULATED | netapp.cluster.statistics.latency.total Expression: (last(netapp.cluster.statistics.latency_raw.total) - prev(netapp.cluster.statistics.latency_raw.total)) / ( last(netapp.cluster.statistics.iops_raw.total) - prev(netapp.cluster.statistics.iops_raw.total) + (last(netapp.cluster.statistics.iops_raw.total) - prev(netapp.cluster.statistics.iops_raw.total) = 0) ) * 0.001 |
| General | {#NODENAME}: Software version | This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes. |
DEPENDENT | netapp.node.version[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Location | The location of the node. |
DEPENDENT | netapp.nodes.location[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: State | State of the node: up - Node is up and operational. booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
DEPENDENT | netapp.nodes.state[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Membership | Possible values: available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created. joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node. member - Nodes that are members have successfully joined the cluster. |
DEPENDENT | netapp.nodes.membership[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#NODENAME}: Uptime | The total time, in seconds, that the node has been up. |
DEPENDENT | netapp.nodes.uptime[{#NODENAME}] Preprocessing: - JSONPATH: |
| General | {#NODENAME}: Controller over temperature | Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal |
DEPENDENT | netapp.nodes.controller.over_temperature[{#NODENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#ETHPORTNAME}: State | The operational state of the port. Possible values: up, down. |
DEPENDENT | netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FCPORTNAME}: Description | A description of the FC port. |
DEPENDENT | netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FCPORTNAME}: State | The operational state of the FC port. Possible values: startup - The port is booting up. link_not_connected - The port has finished initialization, but a link with the fabric is not established. online - The port is initialized and a link with the fabric has been established. link_disconnected - The link was present at one point on this port but is currently not established. offlined_by_user - The port is administratively disabled. offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors. node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible. |
DEPENDENT | netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#DISKNAME}: State | The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing |
DEPENDENT | netapp.disk.state[{#NODENAME},{#DISKNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#ID}: State | The chassis state: ok, error. |
DEPENDENT | netapp.chassis.state[{#ID}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#FRUID}: State | The FRU state: ok, error. |
DEPENDENT | netapp.chassis.fru.state[{#CHASSISID},{#FRUID}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#SVMNAME}: State | SVM state: starting, running, stopping, stopped, deleting. |
DEPENDENT | netapp.svm.state[{#SVMNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#SVMNAME}: Comment | The comment for the SVM. |
DEPENDENT | netapp.svm.comment[{#SVMNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: State | The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error. |
DEPENDENT | netapp.lun.status.state[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Container state | The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available. |
DEPENDENT | netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Space size | The total provisioned size of the LUN. |
DEPENDENT | netapp.lun.space.size[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#LUNNAME}: Space used | The amount of space consumed by the main data stream of the LUN. |
DEPENDENT | netapp.lun.space.used[{#SVMNAME},{#LUNNAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Comment | A comment for the volume. |
DEPENDENT | netapp.volume.comment[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: State | Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
DEPENDENT | netapp.volume.state[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Type | Type of the volume. rw - read-write volume. dp - data-protection volume. ls - load-sharing dp volume. |
DEPENDENT | netapp.volume.type[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: SVM name | The volume belongs this SVM. |
DEPENDENT | netapp.volume.svm_name[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Space size | Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes. |
DEPENDENT | netapp.volume.space_size[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Available size | The available space, in bytes. |
DEPENDENT | netapp.volume.space_available[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Used size | The virtual space used (includes volume reserves) before storage efficiency, in bytes. |
DEPENDENT | netapp.volume.space_used[{#VOLUMENAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | {#VOLUMENAME}: Volume throughput, other rate | Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, read rate | Throughput bytes observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, write rate | Throughput bytes observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume throughput, total rate | Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, other rate | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, read rate | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, write rate | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume IOPS, total rate | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| General | {#VOLUMENAME}: Volume latency, other | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
CALCULATED | netapp.volume.statistics.latency.other[{#VOLUMENAME}] Expression: (last(netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}]) - prev(netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}])) / ( last(netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) + (last(netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) = 0) ) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, read | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations. |
CALCULATED | netapp.volume.statistics.latency.read[{#VOLUMENAME}] Expression: (last(netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}]) - prev(netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}])) / ( last(netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) + (last(netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) = 0)) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, write | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations. |
CALCULATED | netapp.volume.statistics.latency.write[{#VOLUMENAME}] Expression: (last(netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}]) - prev(netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}])) / ( last(netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) + (last(netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) = 0) ) * 0.001 |
| General | {#VOLUMENAME}: Volume latency, total | The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
CALCULATED | netapp.volume.statistics.latency.total[{#VOLUMENAME}] Expression: (last(netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}]) - prev(netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}])) / ( last(netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) + (last(netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) = 0) ) * 0.001 |
| Zabbix_raw_items | Get cluster | - |
HTTP_AGENT | netapp.cluster.get |
| Zabbix_raw_items | Get nodes | - |
HTTP_AGENT | netapp.nodes.get |
| Zabbix_raw_items | Get disks | - |
HTTP_AGENT | netapp.disks.get |
| Zabbix_raw_items | Get volumes | - |
HTTP_AGENT | netapp.volumes.get |
| Zabbix_raw_items | Get ethernet ports | - |
HTTP_AGENT | netapp.ports.eth.get |
| Zabbix_raw_items | Get FC ports | - |
HTTP_AGENT | netapp.ports.fc.get |
| Zabbix_raw_items | Get SVMs | - |
HTTP_AGENT | netapp.svms.get |
| Zabbix_raw_items | Get LUNs | - |
HTTP_AGENT | netapp.luns.get |
| Zabbix_raw_items | Get chassis | - |
HTTP_AGENT | netapp.chassis.get |
| Zabbix_raw_items | Get FRUs | - |
HTTP_AGENT | netapp.frus.get Preprocessing: - JAVASCRIPT: |
| Zabbix_raw_items | Cluster latency raw, other | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.latency_raw.other Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster latency raw, read | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.read Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster latency raw, write | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.write Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster latency raw, total | The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.latency_raw.total Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.cluster.statistics.iops_raw.other Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.read Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.write Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Cluster IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.cluster.statistics.iops_raw.total Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume latency raw, other | The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume latency raw, read | The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume latency raw, write | The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume latency raw, total | The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume IOPS raw, other | The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
DEPENDENT | netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume IOPS raw, read | The number of I/O operations observed at the storage object. Performance metric for read I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume IOPS raw, write | The number of I/O operations observed at the storage object. Performance metric for write I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | {#VOLUMENAME}: Volume IOPS raw, total | The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations. |
DEPENDENT | netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}] Preprocessing: - JSONPATH: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Version has changed (new version: {ITEM.VALUE}) | RESOURCE version has changed. Ack to close. |
{TEMPLATE_NAME:netapp.cluster.version.diff()}=1 and {TEMPLATE_NAME:netapp.cluster.version.strlen()}>0 |
INFO | Manual close: YES |
| Cluster status is abnormal | Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data. |
({TEMPLATE_NAME:netapp.cluster.status.last()}<>"ok") |
AVERAGE | |
| {#NODENAME}: Version has changed (new version: {ITEM.VALUE}) | {#NODENAME} version has changed. Ack to close. |
{TEMPLATE_NAME:netapp.node.version[{#NODENAME}].diff()}=1 and {TEMPLATE_NAME:netapp.node.version[{#NODENAME}].strlen()}>0 |
INFO | Manual close: YES |
| {#NODENAME}: Node state is abnormal | The state of the node is different from up: booting - Node is booting up. down - Node has stopped or is dumping core. taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback. waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks. degraded - Node has one or more critical services offline. unknown - Node or its HA partner cannot be contacted and there is no information on the node's state. |
({TEMPLATE_NAME:netapp.nodes.state[{#NODENAME}].last()}<>"up") |
AVERAGE | |
| {#NODENAME}: Node has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:netapp.nodes.uptime[{#NODENAME}].last()}<10m |
INFO | Manual close: YES |
| {#NODENAME}: Node has over temperature | The hardware shuts down if the temperature exceeds critical thresholds(item's value is "over"). |
({TEMPLATE_NAME:netapp.nodes.controller.over_temperature[{#NODENAME}].last()}<>"normal") |
AVERAGE | |
| {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down | Something is wrong with the ethernet port. |
({TEMPLATE_NAME:netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}].last()}="down")Recovery expression: ({TEMPLATE_NAME:netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}].last()}="up") |
AVERAGE | Manual close: YES |
| {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online" | Something is wrong with the FC port. |
({TEMPLATE_NAME:netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}].last()}<>"online")Recovery expression: ({TEMPLATE_NAME:netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}].last()}="online") |
AVERAGE | Manual close: YES |
| {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present" | Something is wrong with the disk. |
({TEMPLATE_NAME:netapp.disk.state[{#NODENAME},{#DISKNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.disk.state[{#NODENAME},{#DISKNAME}].last()}<>"present")Recovery expression: ({TEMPLATE_NAME:netapp.disk.state[{#NODENAME},{#DISKNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.disk.state[{#NODENAME},{#DISKNAME}].last()}="present") |
AVERAGE | Manual close: YES |
| {#ID}: Chassis has something errors | Something is wrong with the chassis. |
({TEMPLATE_NAME:netapp.chassis.state[{#ID}].diff()}=1 and {TEMPLATE_NAME:netapp.chassis.state[{#ID}].last()}="error")Recovery expression: ({TEMPLATE_NAME:netapp.chassis.state[{#ID}].diff()}=1 and {TEMPLATE_NAME:netapp.chassis.state[{#ID}].last()}="ok") |
AVERAGE | Manual close: YES |
| {#FRUID}: FRU of the chassis "{#ID}" state is error | Something is wrong with the FRU. |
({TEMPLATE_NAME:netapp.chassis.fru.state[{#CHASSISID},{#FRUID}].diff()}=1 and {TEMPLATE_NAME:netapp.chassis.fru.state[{#CHASSISID},{#FRUID}].last()}="error")Recovery expression: ({TEMPLATE_NAME:netapp.chassis.fru.state[{#CHASSISID},{#FRUID}].diff()}=1 and {TEMPLATE_NAME:netapp.chassis.fru.state[{#CHASSISID},{#FRUID}].last()}="ok") |
AVERAGE | Manual close: YES |
| {#SVMNAME}: SVM state is abnormal | Something is wrong with the SVM. |
({TEMPLATE_NAME:netapp.svm.state[{#SVMNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.svm.state[{#SVMNAME}].last()}<>"running")Recovery expression: ({TEMPLATE_NAME:netapp.svm.state[{#SVMNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.svm.state[{#SVMNAME}].last()}="running") |
AVERAGE | Manual close: YES |
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state | Normal states for a LUN are online and offline. Other states indicate errors. |
({TEMPLATE_NAME:netapp.lun.status.state[{#SVMNAME},{#LUNNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.lun.status.state[{#SVMNAME},{#LUNNAME}].last()}<>"online")Recovery expression: ({TEMPLATE_NAME:netapp.lun.status.state[{#SVMNAME},{#LUNNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.lun.status.state[{#SVMNAME},{#LUNNAME}].last()}="online") |
AVERAGE | Manual close: YES |
| {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state | LUNs are only available when their containers are available. |
({TEMPLATE_NAME:netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}].last()}<>"online")Recovery expression: ({TEMPLATE_NAME:netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}].diff()}=1 and {TEMPLATE_NAME:netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}].last()}="online") |
AVERAGE | Manual close: YES |
| {#VOLUMENAME}: Volume state is abnormal | A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The 'mixed' state applies to FlexGroup volumes only and cannot be specified as a target state. An 'error' state implies that the volume is not in a state to serve data. |
({TEMPLATE_NAME:netapp.volume.state[{#VOLUMENAME}].diff()}=1 and {TEMPLATE_NAME:netapp.volume.state[{#VOLUMENAME}].last()}<>"online")Recovery expression: ({TEMPLATE_NAME:netapp.volume.state[{#VOLUMENAME}].diff()}=1 and {TEMPLATE_NAME:netapp.volume.state[{#VOLUMENAME}].last()}="online") |
AVERAGE | Manual close: YES |
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.
| Link | Source | Compatibility | Type, Technology | Created Updated | Rating |
|---|---|---|---|---|---|
| SNMP NetApp cDot For Netapp Ontape 9.5 and later.Discovery rules:AggregatesEnclosuresLIFsNodesSnapMirror (New)VolumesBased on "NETAPP ONTAP 9.1" edited by "zabbiJ". template_netapp_ontap_9.5 |
GitHub Community Templates |
5.0+ |
| ||
| NETAPP_FAS_ONTAP_9.1 Don´t hesitate to tell me how improve this template.Best regard. template_netapp_ontap_9.1 |
GitHub Community Templates |
5.0+ |
| ||
| Module Netapp OS It´s based on template "NETAPP ONTAB 9.5" from eric_at_2037, but with some improvements.I tested with Ontap 9.5 to Ontap 9.7.Discovery rules:Same like other template!Improvements:SnapMirror with custom multiplier(original template gave wrong results)Volumes now with iNodes discovery and triggerssome ... template_netapp_ontap_=_9.5 |
GitHub Community Templates |
5.0+ |
|