Monitoring NetApp Devices

The NetApp Manageability SDK (NMSDK) provides resources to develop applications that monitor and manage NetApp storage systems. NMSDK provides SDK Core API libraries in C and C++, Java, Perl, C#, VB.NET, PowerShell, Python, and Ruby.

This page explains how to setup the monitoring of a NetApp device by using the SNMP protocol and the opensource plugin check-netapp-ng.pl.

Software

Source code

check-netapp-ng.pl

Note that you need to manually edit the perl script (at line 15) by replacing the path '/path/to/nagios/libexec' by the correct one for your nagios installation, usually '/usr/lib/nagios/plugins' or '/usr/lib64/nagios/plugins'.

Plugin usage

check-netapp-ng.pl

-H = Ip/Dns Name of the Filer -w = Warning Value

-C = SNMP Community -c = Critical Value

-T = Check type --vol = Volume Name

-e = vol exclude from snap check

TEMP - Temperature

FAN - Fan Fail

PS - Power Supply Fail

CPULOAD - CPU Load (-w -c)

NVRAM - NVram Battery Status

DISKUSED - Vol Usage Percentage (-w -c --vol)

SNAPSHOT - Snapshot Config (-e volname,volname2,volname3)

SHELF - Shelf Health

NDMPSESSIONS - Number of ndmp sessions (-w -c)

GLOBALSTATUS - Global Status of the filer

FAILEDDISK - Number of failed disks

UPTIME - only show's uptime

CACHEAGE - Cache Age

Nagios Configuration

NETAPP_CACHE_AGE - Cache Age

check_snmp_netapp_cache-age

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T CACHEAGE

Note: This check seems to be broken.

I've found the message 'CRIT: CACHEAGE 518%' in a nagios log!

NETAPP_CPU - CPU Load

check_snmp_netapp_cpu

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T CPULOAD \

-w $ARG1$ -c $ARG2$

Example

/usr/lib/nagios/plugins/check-netapp-ng.pl -H 10.0.0.1 -C public --T CPULOAD w 80 -c 90

NETAPP_DISK_USED - Volume Usage Percentage

check_snmp_netapp_disk-used

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T DISKUSED \

-w $ARG1$ -c $ARG2$ --vol $ARG3$

Example - NETAPP_DISK_USED_VOL0

/usr/lib/nagios/plugins/check-netapp-ng.pl -H 10.0.0.1 -C public -T DISKUSED -w 1 -c 2 --vol /vol/vol0/

WARN: DISKUSED 93% | /vol/backups/=147603032k

NETAPP_DISKS_STATUS - Number of failed disks

check_snmp_netapp_disks_status

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T FAILEDDISK

NETAPP_FAN_STATUS - FAN Status

check_snmp_netapp_fan

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T FAN

NETAPP_GLOBAL_STATUS - Global status of the filer

check_snmp_netapp_global-status

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T GLOBALSTATUS

NETAPP_NDMP_SESSIONS_NUMBER - Number of ndmp sessions

check_snmp_netapp_ndmp-sessions

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T NDMPSESSIONS \

-w $ARG1$ -c $ARG2$

Note

NDMP, or Network Data Management Protocol, is is a protocol invented by the NetApp and

EMC NetWorker (formerly Legato NetWorker) companies, meant to transport data between network attached storage (NAS) devices and backup devices. This removes the need for transporting the data through the backup server itself, thus enhancing speed and removing load from the backup server.

Most contemporary commercial, multi-platform backup software support this protocol.

NETAPP_NVRAM_BATTERY_STATUS - NVram Battery Status

check_snmp_netapp_nvram_battery_status

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T NVRAM

NETAPP_POWER_SUPPLY_STATUS - Power Supply Status

check_snmp_netapp_power-supply

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T PS

NETAPP_SHEL_HEALTH - Shelf Health

check_snmp_netapp_shelf-health

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T SHELF

NETAPP_TEMPERATURE - Temperature

check_snmp_netapp_temperature

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T TEMP

NETAPP_UPTIME - Uptime

check_snmp_netapp_uptime

$USER1$/check-netapp-ng.pl -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -T UPTIME