Wiki
Clone wikicheck_netapp / Home
This NetApp Nagios check is written in Python and it needs http://pythonhosted.org/nagiosplugin ; please install that library ; in my case I've installed the library in '/home/anaconda/lib/python2.7/site-packages/nagiosplugin-1.3.dev0-py2.7.egg' , find a way that suits for you ; a good overview of the library is http://pythonhosted.org/nagiosplugin/tutorial/
Afterwards install the 'check_netapp.py' Nagios check in the management host connected by two Ethernet cables 'netapp01' and 'netapp02' to your NetApp ; in my case I've a E5400 with 2*60 disks and I've placed the 'check_netapp.py' Nagios check in '/opt/nagios/'
Then add in 'management_host:/etc/sudoers' the line :
%nagios ALL=(ALL) NOPASSWD: /opt/nagios/check_netapp.py --netapp01 netapp01 --netapp02 netapp02
Create the NRPE conf 'management_host:/etc/nagios/nrpe.cfg.d/check_netapp01_netapp02.cfg' and reload NRPE :
command[check_netapp01_netapp02]=/usr/bin/sudo /opt/nagios/check_netapp.py --netapp01 netapp01 --netapp02 netapp02
A 'Not OK' output will be ( I've introduced some 'Degraded' strings in SMclioutput.txt to simulate a 'Not OK' output ):
#!bash # ./check_netapp.py --SMclioutput ./SMclioutput.txt OFFLINESTATUS WARNING - NetApp Status is NOT Optimal according to ./SMclioutput.txt | BatteriesNotOK=0;@1:100 DrawersNotOK=0;@1:100 ESMcardsNotOK=0;@1:100 PowerSuppliesNotOK=0;@1:100 SFPNotOK=1;@1:100 TempsNotOK=0;@1:100 VolumesNotOK=1;@1:100
While an 'OK' output will be :
#!bash # /opt/nagios/check_netapp.py --netapp01 netapp01 --netapp02 netapp02 ONLINESTATUS OK - NetApp Status ( netapp01, netapp02 ) is Optimal. | BatteriesNotOK=0;@1:100 DrawersNotOK=0;@1:100 ESMcardsNotOK=0;@1:100 PowerSuppliesNotOK=0;@1:100 SFPNotOK=0;@1:100 TempsNotOK=0;@1:100 VolumesNotOK=0;@1:100 running : /usr/bin/SMcli netapp01 netapp02 -c "show storageArray profile;" (check_netapp.py:111)
A super verbose 'OK' output is ( but don't run it as your regular output level ):
#!bash # /opt/nagios/check_netapp.py --netapp01 netapp01 --netapp02 netapp02 -vvv ONLINESTATUS OK - NetApp Status ( netapp01, netapp02 ) is Optimal. running : /usr/bin/SMcli netapp01 netapp02 -c "show storageArray profile;" (check_netapp.py:111) line # 872 : Volume status: Optimal (check_netapp.py:45) line # 918 : Volume status: Optimal (check_netapp.py:45) line # 964 : Volume status: Optimal (check_netapp.py:45) line # 1010 : Volume status: Optimal (check_netapp.py:45) line # 1056 : Volume status: Optimal (check_netapp.py:45) line # 1102 : Volume status: Optimal (check_netapp.py:45) line # 1148 : Volume status: Optimal (check_netapp.py:45) line # 1194 : Volume status: Optimal (check_netapp.py:45) line # 1240 : Volume status: Optimal (check_netapp.py:45) line # 1286 : Volume status: Optimal (check_netapp.py:45) line # 1332 : Volume status: Optimal (check_netapp.py:45) line # 1378 : Volume status: Optimal (check_netapp.py:45) line # 1424 : Volume status: Optimal (check_netapp.py:45) line # 1470 : Volume status: Optimal (check_netapp.py:45) line # 1516 : Volume status: Optimal (check_netapp.py:45) line # 1562 : Volume status: Optimal (check_netapp.py:45) line # 1608 : Volume status: Optimal (check_netapp.py:45) line # 1654 : Volume status: Optimal (check_netapp.py:45) line # 1700 : Volume status: Optimal (check_netapp.py:45) line # 1746 : Volume status: Optimal (check_netapp.py:45) line # 1792 : Volume status: Optimal (check_netapp.py:45) line # 1838 : Volume status: Optimal (check_netapp.py:45) line # 1884 : Volume status: Optimal (check_netapp.py:45) line # 1930 : Volume status: Optimal (check_netapp.py:45) line # 2250 : Link status: Up (check_netapp.py:45) line # 2261 : Link status: Down (check_netapp.py:45) line # 2300 : Link status: Up (check_netapp.py:45) line # 2317 : Link status: Up (check_netapp.py:45) line # 2334 : Link status: Down (check_netapp.py:45) line # 2351 : Link status: Down (check_netapp.py:45) line # 2471 : Link status: Up (check_netapp.py:45) line # 2482 : Link status: Down (check_netapp.py:45) line # 2521 : Link status: Up (check_netapp.py:45) line # 2538 : Link status: Up (check_netapp.py:45) line # 2555 : Link status: Down (check_netapp.py:45) line # 2572 : Link status: Down (check_netapp.py:45) line # 7545 : ESM card status: Optimal (check_netapp.py:45) line # 7560 : ESM card status: Optimal (check_netapp.py:45) line # 7617 : Power supply status: Optimal (check_netapp.py:45) line # 7625 : Power supply status: Optimal (check_netapp.py:45) line # 7638 : Drawer status: Optimal (check_netapp.py:45) line # 7647 : Drawer status: Optimal (check_netapp.py:45) line # 7656 : Drawer status: Optimal (check_netapp.py:45) line # 7665 : Drawer status: Optimal (check_netapp.py:45) line # 7674 : Drawer status: Optimal (check_netapp.py:45) line # 7688 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7692 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7696 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7700 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7704 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7708 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7712 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7716 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7720 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7724 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7728 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7732 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7736 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7740 : Temperature sensor status: Optimal (check_netapp.py:45) line # 7763 : Battery status: Optimal (check_netapp.py:45) line # 7776 : Battery status: Optimal (check_netapp.py:45) line # 7831 : Power supply status: Optimal (check_netapp.py:45) line # 7839 : Power supply status: Optimal (check_netapp.py:45) line # 7852 : SFP status: Optimal (check_netapp.py:45) line # 7868 : SFP status: Optimal (check_netapp.py:45) line # 7884 : SFP status: Optimal (check_netapp.py:45) line # 7900 : SFP status: Optimal (check_netapp.py:45) line # 7916 : SFP status: Optimal (check_netapp.py:45) line # 7932 : SFP status: Optimal (check_netapp.py:45) line # 7948 : SFP status: Optimal (check_netapp.py:45) line # 7964 : SFP status: Optimal (check_netapp.py:45) line # 7985 : Drawer status: Optimal (check_netapp.py:45) line # 7994 : Drawer status: Optimal (check_netapp.py:45) line # 8003 : Drawer status: Optimal (check_netapp.py:45) line # 8012 : Drawer status: Optimal (check_netapp.py:45) line # 8021 : Drawer status: Optimal (check_netapp.py:45) line # 8035 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8039 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8043 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8047 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8051 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8055 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8059 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8063 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8067 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8071 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8075 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8079 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8083 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8087 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8091 : Temperature sensor status: Optimal (check_netapp.py:45) line # 8095 : Temperature sensor status: Optimal (check_netapp.py:45) | BatteriesNotOK=0;@1:100 DrawersNotOK=0;@1:100 ESMcardsNotOK=0;@1:100 PowerSuppliesNotOK=0;@1:100 SFPNotOK=0;@1:100 TempsNotOK=0;@1:100 VolumesNotOK=0;@1:100
Eventually configure your Nagios server to regularly invoke 'check_netapp01_netapp02' ; in my case :
define service{ use generic-service ; Name of service template to use host_name management_host service_description Check NetApp E5400 is_volatile 0 check_period 24x7 max_check_attempts 9 retry_check_interval 5 contact_groups admins notification_interval 0 notification_period 24x7 notification_options n check_command check_nrpe!check_netapp01_netapp02!-t 120 check_interval 60 }
Outcome in the Nagios Web interface will be like this
Updated