# How to monitor a rescent Netapp?

**URL:** <https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978>\
**Category:** Service Monitoring\
**Created:** [July 14, 2020, 7:43am UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978 "2020-07-14T07:43:14Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![unic](https://community.icinga.com/user_avatar/community.icinga.com/unic/32/200_2.png) [@unic](https://community.icinga.com/u/unic)\
**Post date:** [July 14, 2020, 7:43am UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/1 "2020-07-14T07:43:14Z")

</div>

Hello,

we want to monitor a Netapp, but most checks i found are not working very well with newer ontap versions. Anyone has a tip for a good, working checkplugin?

Best Regards,  
Rafael

---

<div class="post-metadata">

**Author:** ![stevie-sy](https://community.icinga.com/letter_avatar_proxy/v4/letter/s/898d66/32.png) [@stevie-sy](https://community.icinga.com/u/stevie-sy)\
**Post date:** [July 21, 2020, 2:23pm UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/2 "2020-07-21T14:23:14Z")

</div>

Hi,

we are using this script: [https://github.com/aleex42/netapp-cdot-nagios](https://github.com/aleex42/netapp-cdot-nagios) to monitor our NetApp . But for running this, you have to install the netapp-manageability-sdk. You should get this from the netapp website with your customer account.

---

<div class="post-metadata">

**Author:** ![log1c](https://community.icinga.com/user_avatar/community.icinga.com/log1c/32/2071_2.png) [@log1c](https://community.icinga.com/u/log1c)\
**Post date:** [July 22, 2020, 6:19am UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/3 "2020-07-22T06:19:55Z")

</div>

> [@stevie-sy](#):
>
> [https://github.com/aleex42/netapp-cdot-nagios](https://github.com/aleex42/netapp-cdot-nagios)

+1 for these scripts!  
They work really well.

As Stevie said, simply “install” (meaning unpack) the most recent netapp managability sdk to `/usr/lib/netapp-manageability-sdk` (default in the scripts).  
You will probalby need to install some missing perl libraries as well.

Another check I implement is for the autosupport status.  
I do this with a simple SNMP check, as I haven’t found a script for this using the API:

```auto
AUTOSUPPORTSTATUS (has to be "1") (autosupportStatus and autosupportStatusMessage) (ok (1),smtpFailure (2),postFailure (3)smtpPostFailure (4),unknown (5))
(Description: An indication of the current status of auto support on the appliance. Describes the success or failure of most recent attempts to send auto supports.)
./check_snmp -H <hostaddress> -o .1.3.6.1.4.1.789.1.2.7.1.0 -o .1.3.6.1.4.1.789.1.2.7.2.0 -C <community> -P 1 --label AUTOSUPPORTSTATUS -c 1

```

---

<div class="post-metadata">

**Author:** ![unic](https://community.icinga.com/user_avatar/community.icinga.com/unic/32/200_2.png) [@unic](https://community.icinga.com/u/unic)\
**Post date:** [July 23, 2020, 1:43pm UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/4 "2020-07-23T13:43:54Z")

</div>

Thanks for your answers, i will give that a try!

---

<div class="post-metadata">

**Author:** ![mvrgotix](https://community.icinga.com/user_avatar/community.icinga.com/mvrgotix/32/2278_2.png) [@mvrgotix](https://community.icinga.com/u/mvrgotix)\
**Post date:** [August 20, 2020, 1:17pm UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/5 "2020-08-20T13:17:22Z")

</div>

> [@log1c](#):
>
> is for the autosupport status

Hi all,  
I would like to try these scripts today, but I am still strugling with SDK installation process. Is it indeed enough to unpack the zip to /usr/lib/ `netapp-manageability-sdk` and install missing perl libraries or more needs to be done?

I have the netapp-manageability-sdk-9.7.zip.

---

<div class="post-metadata">

**Author:** ![stevie-sy](https://community.icinga.com/letter_avatar_proxy/v4/letter/s/898d66/32.png) [@stevie-sy](https://community.icinga.com/u/stevie-sy)\
**Post date:** [August 20, 2020, 1:33pm UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/6 "2020-08-20T13:33:21Z")

</div>

yes you have only unzip this in the directory.

this is our “installation process” on CentOS (code snippset from our automation tool):

> cd /tmp;  
> unzip netapp-manageability-sdk-9.5.zip  
> mkdir -p /usr/lib/netapp-manageability-sdk/lib/perl && cp -r netapp-manageability-sdk-9.5/lib/perl/\* “$\_”  
> rm -rf /tmp/netapp-manageability-sdk-9.5\*
> 
> git clone [https://github.com/aleex42/netapp-cdot-nagios.git](https://github.com/aleex42/netapp-cdot-nagios.git) /tmp/netapp-cdot-nagios ;  
> install -m755 /tmp/netapp-cdot-nagios/check\_cdot\_\*.pl /usr/lib64/nagios/plugins ;  
> rm -rf /tmp/netapp-cdot-nagios ;

---

<div class="post-metadata">

**Author:** ![mvrgotix](https://community.icinga.com/user_avatar/community.icinga.com/mvrgotix/32/2278_2.png) [@mvrgotix](https://community.icinga.com/u/mvrgotix)\
**Post date:** [August 20, 2020, 3:07pm UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/7 "2020-08-20T15:07:38Z")

</div>

Thank you. Worked like a charm. I went with sdk-9.7.

---

<div class="post-metadata">

**Author:** ![mvrgotix](https://community.icinga.com/user_avatar/community.icinga.com/mvrgotix/32/2278_2.png) [@mvrgotix](https://community.icinga.com/u/mvrgotix)\
**Post date:** [August 21, 2020, 12:36pm UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/8 "2020-08-21T12:36:39Z")

</div>

Hi Stevie,

Have you by any chance find exact Vartiable name that needs to go into services.conf for check\_cdot\_… commands for hostname, username and password?

```
// NetApp Checks
apply Service "netapp_volumes" {
  check_command = "netapp_cdot_nagios_volume"
  vars.netapp_hostname = "hostname"
  vars.netapp_username = "username"
  vars.netapp_password = "password"

  assign where "netapp" in host.groups
}

```

Thank you  
Marko

---

<div class="post-metadata">

**Author:** ![log1c](https://community.icinga.com/user_avatar/community.icinga.com/log1c/32/2071_2.png) [@log1c](https://community.icinga.com/u/log1c)\
**Post date:** [August 21, 2020, 12:58pm UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/9 "2020-08-21T12:58:56Z")

</div>

hostname would be the hosts fqdn or address.  
The easiest way would be to define the command with the `--hostname` argument set to `$address$`, so that it simply will use the address of the host the check is bound to.

Here is an example configuration (in json format) from one of the check commands:

```auto
"netapp_cdot_aggr_status": {
            "arguments": {
                "--aggr": {
                    "repeat_key": false,
                    "required": false,
                    "value": "$netapp_aggr_name$"
                },
                "--critical": {
                    "repeat_key": false,
                    "required": true,
                    "value": "$netapp_aggr_size_crit$"
                },
                "--exclude": {
                    "repeat_key": true,
                    "required": false,
                    "value": "$netapp_cdot_excludes$"
                },
                "--hostname": {
                    "repeat_key": false,
                    "required": true,
                    "value": "$address$"
                },
                "--password": {
                    "repeat_key": false,
                    "required": true,
                    "value": "$netapp_password$"
                },
                "--username": {
                    "repeat_key": false,
                    "required": true,
                    "value": "$netapp_user$"
                },
                "--warning": {
                    "repeat_key": false,
                    "required": true,
                    "value": "$netapp_aggr_size_warn$"
                }
            }

```

I then add the fields `$netapp_user$` and `$netapp_password$` to the host template for NetApps, so that I can define the credentials at the host object.

---

<div class="post-metadata">

**Author:** ![stevie-sy](https://community.icinga.com/letter_avatar_proxy/v4/letter/s/898d66/32.png) [@stevie-sy](https://community.icinga.com/u/stevie-sy)\
**Post date:** [August 26, 2020, 6:20am UTC](https://community.icinga.com/t/how-to-monitor-a-rescent-netapp/4978/10 "2020-08-26T06:20:50Z")

</div>

@log1c gave you already an answer.  
I would like to give you a small note on this:,It doesn’t matter how you call the vars 😉 Of course, meaningful names are good 🙂  
It’s a thing how you define the check command, because there is no standard defintions deliverd with the ITL. So in such cases only the correct parameter are important for you. Which these are you’ll find with “–help”. The programmer of the scripts inlcuded this one.

This is an example how we defined the command in the director:

 ![image](https://community.icinga.com/uploads/default/original/2X/2/280c37f0426090d1c54ebcebcdf62e94668d382a.png)  
 ![image](https://community.icinga.com/uploads/default/original/2X/a/a9153feb728cc4179084e73c21ae468359cfd791.png)  
 ![image](https://community.icinga.com/uploads/default/original/2X/f/fef11d261ed18575d923dbe2aeb69de47f294111.png)

if the director is rendering this definition, it looks like following:

```
object CheckCommand "netapp_cdot_nagios_disk" {
import "plugin-check-command"
import "netapp-cdot-nagios-common"

command = ["/usr/lib64/nagios/plugins/check_cdot_disk.pl"]
arguments += {
    "--critical" = "$netapp_cdot_nagios_disk_warning$"
    "--disks" = "$netapp_cdot_nagios_disk_size_warning$"
    "--warning" = "$netapp_cdot_nagios_disk_warning$"
    "-P" = {
        set_if = "$netapp_cdot_nagios_disk_perf$"
    }
}

```

}
