You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 KiB

NetApp AFF A700 by HTTP

Overview

The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.

Requirements

Zabbix version: 7.0 and higher.

Tested versions

This template has been tested on:

  • NetApp AFF A700 9.7

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

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.

Macros used

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

Items

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

  • JavaScript: The text is too long. Please see the template.

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

  • JSON Path: $.version.full

  • Discard unchanged with heartbeat: 6h

NetApp AFF A700: Cluster name

The name of the cluster.

Dependent item netapp.cluster.name

Preprocessing

  • JSON Path: $.name

  • Discard unchanged with heartbeat: 6h

NetApp AFF A700: Cluster location

The location of the cluster.

Dependent item netapp.cluster.location

Preprocessing

  • JSON Path: $.location

  • Discard unchanged with heartbeat: 6h

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

  • JSON Path: $.statistics.status

  • Discard unchanged with heartbeat: 6h

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

  • JSON Path: $.statistics.throughput_raw.other

  • Change per second
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

  • JSON Path: $.statistics.throughput_raw.read

  • Change per second
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

  • JSON Path: $.statistics.throughput_raw.write

  • Change per second
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

  • JSON Path: $.statistics.throughput_raw.total

  • Change per second
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

  • JSON Path: $.statistics.iops_raw.other

  • Change per second
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

  • JSON Path: $.statistics.iops_raw.read

  • Change per second
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

  • JSON Path: $.statistics.iops_raw.write

  • Change per second
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

  • JSON Path: $.statistics.iops_raw.total

  • Change per second
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

  • JSON Path: $.statistics.latency_raw.other

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

  • JSON Path: $.statistics.latency_raw.read

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

  • JSON Path: $.statistics.latency_raw.write

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

  • JSON Path: $.statistics.latency_raw.total

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

  • JSON Path: $.statistics.iops_raw.other

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

  • JSON Path: $.statistics.iops_raw.read

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

  • JSON Path: $.statistics.iops_raw.write

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

  • JSON Path: $.statistics.iops_raw.total

Triggers

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

LLD rule Nodes discovery

Name Description Type Key and additional info
Nodes discovery HTTP agent netapp.nodes.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Item prototypes for Nodes discovery

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

  • JSON Path: $.records[?(@.name=='{#NODENAME}')].version.full.first()

  • Discard unchanged with heartbeat: 6h

{#NODENAME}: Location

The location of the node.

Dependent item netapp.nodes.location[{#NODENAME}]

Preprocessing

  • JSON Path: $.records[?(@.name=='{#NODENAME}')].location.first()

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: $.records[?(@.name=='{#NODENAME}')].state.first()

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: $.records[?(@.name=='{#NODENAME}')].membership.first()

  • Discard unchanged with heartbeat: 6h

{#NODENAME}: Uptime

The total time, in seconds, that the node has been up.

Dependent item netapp.nodes.uptime[{#NODENAME}]

Preprocessing

  • JSON Path: $.records[?(@.name=='{#NODENAME}')].uptime.first()

{#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

  • JSON Path: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

Trigger prototypes for Nodes discovery

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:
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

LLD rule Ethernet ports discovery

Name Description Type Key and additional info
Ethernet ports discovery HTTP agent netapp.ports.ether.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Item prototypes for Ethernet ports discovery

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

  • JSON Path: $.records[?(@.name=='{#ETHPORTNAME}')].state.first()

  • Discard unchanged with heartbeat: 6h

Trigger prototypes for Ethernet ports discovery

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

LLD rule FC ports discovery

Name Description Type Key and additional info
FC ports discovery HTTP agent netapp.ports.fc.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Item prototypes for FC ports discovery

Name Description Type Key and additional info
{#FCPORTNAME}: Description

A description of the FC port.

Dependent item netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}]

Preprocessing

  • JSON Path: $.records[?(@.name=='{#FCPORTNAME}')].description.first()

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: $.records[?(@.name=='{#FCPORTNAME}')].state.first()

  • Discard unchanged with heartbeat: 6h

Trigger prototypes for FC ports discovery

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

LLD rule Disks discovery

Name Description Type Key and additional info
Disks discovery HTTP agent netapp.disks.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Item prototypes for Disks discovery

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

  • JSON Path: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

Trigger prototypes for Disks discovery

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

LLD rule Chassis discovery

Name Description Type Key and additional info
Chassis discovery HTTP agent netapp.chassis.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Item prototypes for Chassis discovery

Name Description Type Key and additional info
{#ID}: State

The chassis state: ok, error.

Dependent item netapp.chassis.state[{#ID}]

Preprocessing

  • JSON Path: $.records[?(@.id=='{#ID}')].state.first()

  • Discard unchanged with heartbeat: 6h

Trigger prototypes for Chassis discovery

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

LLD rule FRUs discovery

Name Description Type Key and additional info
FRUs discovery Dependent item netapp.frus.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

Item prototypes for FRUs discovery

Name Description Type Key and additional info
{#FRUID}: State

The FRU state: ok, error.

Dependent item netapp.chassis.fru.state[{#CHASSISID},{#FRUID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

Trigger prototypes for FRUs discovery

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

LLD rule SVMs discovery

Name Description Type Key and additional info
SVMs discovery HTTP agent netapp.svms.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Item prototypes for SVMs discovery

Name Description Type Key and additional info
{#SVMNAME}: State

SVM state: starting, running, stopping, stopped, deleting.

Dependent item netapp.svm.state[{#SVMNAME}]

Preprocessing

  • JSON Path: $.records[?(@.name=='{#SVMNAME}')].state.first()

  • Discard unchanged with heartbeat: 6h

{#SVMNAME}: Comment

The comment for the SVM.

Dependent item netapp.svm.comment[{#SVMNAME}]

Preprocessing

  • JSON Path: $.records[?(@.name=='{#SVMNAME}')].comment.first()

  • Discard unchanged with heartbeat: 6h

Trigger prototypes for SVMs discovery

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

LLD rule LUNs discovery

Name Description Type Key and additional info
LUNs discovery HTTP agent netapp.luns.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Item prototypes for LUNs discovery

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

  • JSON Path: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

{#LUNNAME}: Space size

The total provisioned size of the LUN.

Dependent item netapp.lun.space.size[{#SVMNAME},{#LUNNAME}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

Trigger prototypes for LUNs discovery

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

LLD rule Volumes discovery

Name Description Type Key and additional info
Volumes discovery HTTP agent netapp.volumes.discovery

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Item prototypes for Volumes discovery

Name Description Type Key and additional info
{#VOLUMENAME}: Comment

A comment for the volume.

Dependent item netapp.volume.comment[{#VOLUMENAME}]

Preprocessing

  • JSON Path: $.records[?(@.name=='{#VOLUMENAME}')].comment.first()

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: $.records[?(@.name=='{#VOLUMENAME}')].state.first()

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: $.records[?(@.name=='{#VOLUMENAME}')].type.first()

  • Discard unchanged with heartbeat: 6h

{#VOLUMENAME}: SVM name

The volume belongs this SVM.

Dependent item netapp.volume.svm_name[{#VOLUMENAME}]

Preprocessing

  • JSON Path: $.records[?(@.name=='{#VOLUMENAME}')].svm.name.first()

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: $.records[?(@.name=='{#VOLUMENAME}')].space.size.first()

  • Discard unchanged with heartbeat: 6h

{#VOLUMENAME}: Available size

The available space, in bytes.

Dependent item netapp.volume.space_available[{#VOLUMENAME}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 6h

{#VOLUMENAME}: Used size

The virtual space used (includes volume reserves) before storage efficiency, in bytes.

Dependent item netapp.volume.space_used[{#VOLUMENAME}]

Preprocessing

  • JSON Path: $.records[?(@.name=='{#VOLUMENAME}')].space.used.first()

  • Discard unchanged with heartbeat: 6h

{#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

  • JSON Path: The text is too long. Please see the template.

  • Change per second
{#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

  • JSON Path: The text is too long. Please see the template.

  • Change per second
{#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

  • JSON Path: The text is too long. Please see the template.

  • Change per second
{#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

  • JSON Path: The text is too long. Please see the template.

  • Change per second
{#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

  • JSON Path: The text is too long. Please see the template.

  • Change per second
{#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

  • JSON Path: The text is too long. Please see the template.

  • Change per second
{#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

  • JSON Path: The text is too long. Please see the template.

  • Change per second
{#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

  • JSON Path: The text is too long. Please see the template.

  • Change per second
{#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

  • JSON Path: The text is too long. Please see the template.

{#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

  • JSON Path: The text is too long. Please see the template.

{#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

  • JSON Path: The text is too long. Please see the template.

{#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

  • JSON Path: The text is too long. Please see the template.

{#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

  • JSON Path: The text is too long. Please see the template.

{#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

  • JSON Path: The text is too long. Please see the template.

{#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

  • JSON Path: The text is too long. Please see the template.

{#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

  • JSON Path: The text is too long. Please see the template.

Trigger prototypes for Volumes discovery

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

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums