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
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
Hi,
we are using this script: 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.
+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:
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
Thanks for your answers, i will give that a try!
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.
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 /tmp/netapp-cdot-nagios ;
install -m755 /tmp/netapp-cdot-nagios/check_cdot_*.pl /usr/lib64/nagios/plugins ;
rm -rf /tmp/netapp-cdot-nagios ;
Thank you. Worked like a charm. I went with sdk-9.7.
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
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:
"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.
@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:
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$"
}
}
}