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.
Documentation
Download the NMSDK package
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
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