Hi all,

I am inspired on cacti evaperf to monitor HP EVA Storage Array and i wrote an ini file for check_wmi_plus plugin. You can use it with Nagios, Shinken, Centreon Engine, Icinga…It’s a free and easy solution to monitor the HP EVA Storage Array

So I suppose check_wmi_plus plugin is installed on your monitoring engine and « Command View EVA » is installed and working on Windows Server.

The WMI Class used :

  • Win32_PerfRawData_EVAPMEXT_HPEVAPhysicalDiskGroup
  • Win32_PerfRawData_EVAPMEXT_HPEVAHostPortStatistics
  • Win32_PerfRawData_EVAPMEXT_HPEVAHostConnection
  • Win32_PerfRawData_EVAPMEXT_HPEVAStorageArray
  • Win32_PerfRawData_EVAPMEXT_HPEVAStorageController

You can test the « HP WMI Storage Providers » service is running

/bin/wmic -U "login"%"password" //Host 'Select Name from Win32_PerfRawData_EVAPMEXT_HPEVAStorageController'

If your wmic command gets you this :

ERROR: Retrieve result data.

Solution :

Stop Winmgmt service
Restart HPWMISTOR service
Start Winmgmt service

So, here my config file ini for check_wmi_plus : checkhpeva.ini

[checkhpeva listphysicaldiskgroup]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAPhysicalDiskGroup
display=Name

[checkhpeva physicaldiskgroup]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAPhysicalDiskGroup where Name="{_arg1}"
display=DriveLatencyus
display=DriveQueueDepth
display=ReadKBPers
display=ReadLatencyus
display=ReadReqPers
display=WriteKBPers
display=WriteLatencyus
display=WriteReqPers
perf=DriveLatencyus||DriveLatencyus
perf=DriveQueueDepth||DriveQueueDepth
perf=ReadKBPers|KB/s|ReadKBPers
perf=ReadLatencyus||ReadLatencyus
perf=ReadReqPers|/s|ReadReqPers
perf=WriteKBPers|KB/s|WriteKBPers
perf=WriteLatencyus||WriteLatencyus
perf=WriteReqPers|/s|WriteReqPers

[checkhpeva listhostportstatistics]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAHostPortStatistics
display=Name|#

[checkhpeva hostportstatistics]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAHostPortStatistics where Name="{_arg1}"
display=AvQueueDepth
display=ReadKBPers
display=ReadLatencyus
display=ReadReqPers
display=WriteKBPers
display=WriteLatencyus
display=WriteReqPers
perf=AvQueueDepth||AvQueueDepth
perf=ReadKBPers|KB/s|KB_Read_From_Cache_Per_Second
perf=ReadLatencyus||ReadLatencyus
perf=ReadReqPers|/s|ReadReqPers
perf=WriteKBPers|KB/s|KB_Write_Per_Second
perf=WriteLatencyus||WriteLatencyus
perf=WriteReqPers|/s|WriteReqPers
[checkhpeva listhostconnection]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAHostConnection
display=Name|#

[checkhpeva hostconnection]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAHostConnection where Name="{_arg1}"
display=QueueDepth
perf=QueueDepth||{Name} Average_Queue_Depth

[checkhpeva liststoragearray]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAStorageArray
display=Name|#

[checkhpeva storagearray]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAStorageArray where Name="{_arg1}"
display=TotalhostKBPers
display=TotalhostReqPers
perf=TotalhostKBPers|KB/s|Total_Host_KB_Per_Second
perf=TotalhostReqPers|/s|Total_Host_Requests_Per_Second

[checkhpeva liststoragecontroller]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAStorageController
display=Name|#

[checkhpeva storagecontroller]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAStorageController where Name="{_arg1}"
display=PercentDataTransferTime
display=PercentProcessorTime
perf=PercentDataTransferTime|%|PercentDataTransferTime
perf=PercentProcessorTime|%|PercentProcessorTime
  [checkhpeva listvirtualdisk]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAVirtualDisk
display=Name|#

[checkhpeva virtualdisk]
query=Select * from Win32_PerfRawData_EVAPMEXT_HPEVAVirtualDisk where Name like "%{_arg1}%"
display=ReadHitKBPers
display=ReadHitLatencyus
display=ReadHitReqPers
display=ReadMissKBPers
display=ReadMissLatencyus
display=ReadMissReqPers
display=WriteKBPers
display=WriteLatencyus
display=WriteReqPers
perf=ReadHitKBPers|KB/s|ReadHitKBPers
perf=ReadHitLatencyus||ReadHitLatencyus
perf=ReadHitReqPers|/s|ReadHitReqPers
perf=ReadMissKBPers|KB/s|ReadMissKBPers
perf=ReadMissLatencyus||ReadMissLatencyus
perf=ReadMissReqPers|/s|ReadMissReqPers
perf=WriteKBPers|KB/s|WriteKBPers
perf=WriteLatencyus||WriteLatencyus
perf=WriteReqPers|/s|WriteReqPers

 

Save checkhpeva.ini file in check_wmi_plus.d directory. FYI, I dont want to be able the test on warn/critical criteria. it is an improvement to do :-)

Create Nagios command :

define command{
  command_name                    check_hpeva_hostconnection
  command_line                    $USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -u "$ARG1$" -p "$ARG2$" -m checkhpeva -s allhostconnection -a $ARG3$
  ;$ARG1$                         Compte
  ;$ARG2$                         Mot de passe
  ;$ARG3$                         physicaldiskgroup
}

define command{
  command_name                    check_hpeva_hostportstatistics
  command_line                    $USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -u "$ARG1$" -p "$ARG2$" -m checkhpeva -s hostportstatistics -a $ARG3$
  ;$ARG1$                         Compte
  ;$ARG2$                         mot de passe
  ;$ARG3$                         hostportstatistics
}

define command{
  command_name                    check_hpeva_physicaldiskgroup
  command_line                    $USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -u "$ARG1$" -p "$ARG2$" -m checkhpeva -s physicaldiskgroup -a $ARG3$
  ;$ARG1$                         Compte
  ;$ARG2$                         Mot de passe
  ;$ARG3$                         physicaldiskgroup
}

define command{
  command_name                    check_hpeva_storagearray
  command_line                    $USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -u "$ARG1$" -p "$ARG2$" -m checkhpeva -s storagearray -a $ARG3$
  ;$ARG1$                         Compte
  ;$ARG2$                         Mot de passe
  ;$ARG3$                         storagearray
}

define command{
  command_name                    check_hpeva_storagecontroller
  command_line                    $USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -u "$ARG1$" -p "$ARG2$" -m checkhpeva -s storagecontroller -a $ARG3$
  ;command_example                        !Administrateur!mdp!exemple
  ;$ARG2$                         Mot de passe
  ;$ARG3$                         storagecontroller
}

define command{
  command_name                    check_hpeva_virtualdisk
  command_line                    $USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -u "$ARG1$" -p "$ARG2$" -m checkhpeva -s virtualdisk -a $ARG3$
  ;$ARG1$                         Compte
  ;$ARG2$                         Mot de passe
  ;$ARG3$                         storagearray
}

Read this PDF here for more informations on wmi counter.

Screenshoot : Create services and you can display graph with pnp4nagios or Centreon