check_promise_vtrak

Last update: March 11, 2019

This plugin was created to monitor a Promise Vtrak storage device. It monitors the physical drives and the chassis itself (power supplies, fans, etc). Several attached enclosures are supported. The plugin is more or less a merge between check_promise_chassis.pl by Barry O'Donovan and check_ibm_ts_tape.pl by myself, although it is completely rewritten from scratch and many additional checks have been added.

End of life warning

EOL

As I don't have any Promise Vtrak devices around to test further development, this plugin is end of life. Use as is.

Download

Download check_promise_vtrak.pl

check_promise_vtrak.pl

1672 downloads so far...

Download plugin and save it in your Nagios/Monitoring plugin folder (usually /usr/lib/nagios/plugins, depends on your distribution). Afterwards adjust the permissions (usually chmod 755).

Community contributions welcome on GitHub repo.

Compatibility matrix

The plugin was successfully tested on the following models:

  • Promise Vtrak E310
  • Promise Vtrak E830f (use -m M610)
  • Promise Vtrak E610
  • Promise Vtrak M610
  • Promise VessRaid 1840i

If you have successfully tested the plugin on a model not mentioned here, please let me know.

Version history / Changelog

2007XXXX Created check_promise_chassis.pl (bod)
20140626 Fork/rewrite for multiple Vtrak models (ck)
20140627 Added enclosure check type (ck)
20140701 Extended disk check with different subchecks (ck)
20140701 Added ps check type (ck)
20140701 Added fan check type (ck)
20140702 Added ctrl check type (ck)
20140702 Merged disk and diskonline checks (ck)
20140703 Added spare check type (ck)

Requirements

  • Perl
  • SNMP on the Vtrak device enabled and v1/v2c community name is known

Definition of the parameters

Parameter Description
-H* Hostname or IP address of the Promise Vtrak Head
-p SNMP Port (defaults to 161)
-C SNMP community name (defaults to public)
-m* Model of the Vtrak. Currently supported: E310x, E610x, M610x
-t* Type to check. See below for valid types.
--h Show help/usage

* mandatory parameter

Definition of the check types

Type Description
ctrl Check status of all controllers
disk Check status of all physical disks
enclosure Check status of all enclosures
fan Check status of all fans (blowers)
info Show basic information of the Vtrak
ps Check status of all power supplies
spare Check the status of all spare disks

Usage / running the plugin on the command line

Usage:

./check_promise_vtrak.pl -H host [-p port] [-C community] -m model -t checktype

Example 1 - General informaiton:

./check_promise_vtrak.pl -H myvtrak -C public -m E310s -t info
Promise Technology,Inc. VTrak E610s - S/N: RCXXXXXXXXX - Firmware: 3.36.0000.02 - Uptime: 76 days, 04:59:49.17

Example 2 - Disk check:

./check_promise_vtrak.pl -H myvtrak -C public -m E310s -t disk
DISK WARNING - 1 DISK WARNINGS ( 1 disk(s) unconfigured )

Example 3 - Enclosure check:

./check_promise_vtrak.pl -H myvtrak -C public -m E310s -t enclosure
ENCLOSURE OK - 1 enclosure(s) attached

Example 4 - Power supplies check:

./check_promise_vtrak.pl -H myvtrak -C public -m E310s -t ps
POWER SUPPLY OK - 2 power supplies attached

Command definition

Command definition in Nagios, Icinga 1.x, Shinken, Naemon

# check_promise_vtrak command definition
define command{
  command_name check_promise_vtrak
  command_line $USER1$/check_promise_vtrak.pl -H $HOSTADDRESS$ -C $ARG1$ -m $ARG2$ -t $ARG3$
}

Command definition in Icinga 2.x

object CheckCommand "check_promise_vtrak" {
  import "plugin-check-command"
  command = [ PluginContribDir + "/check_promise_vtrak.pl" ]

   arguments = {
      "-H" = {
        value = "$vtrak_address$"
      }

      "-p" = {
        value = "$vtrak_snmp_port$"
      }

      "-C" = {
        value = "$vtrak_snmp_community$"
      }

      "-m" = {
        value = "$vtrak_model$"
      }

      "-t" = {
        value = "$vtrak_checktype$"
      }
  }

  vars.vtrak_address = "$address$"
  vars.vtrak_snmp_port = "161"
  vars.vtrak_snmp_community = "public"
}

Service definition

Service definition in Nagios, Icinga 1.x, Shinken, Naemon

# check vtrak disks
define service{
  use generic-service
  host_name myvtrak
  service_description Vtrak Disk
  check_command check_promise_vtrak!public!E610s!disk
}

Service object definition Icinga 2.x

object Service "Vtrak Disk" {
  import "generic-service"
  host_name = "myvtrak"
  check_command = "check_promise_vtrak"
  vars.vtrak_model = "E610s"
  vars.vtrak_checktype = "disk"
}