The vmax probe is not able to monitor the configured EMC VMAX storage systems. The error logged in the vmax.log file is similar to the following:
2015-11-28 21:11:40,718 [CommandPoolExecutor_0_13408] ERROR Error while processing 'symcfg list -v -dir all -out xml'
com.bt.probes.exception.CommandException: Command symcfg list -v -dir all -out xml error
2015-11-28 21:11:40,719 [CommandPoolExecutor_0_13408] INFO PERF: DONE: Pass-000 Run Command: symcfg list -v -dir all -out xml {Seconds=0.001}
2015-11-28 21:11:40,719 [CommandPoolExecutor_0_13408] INFO PERF: Memory Status: Max=455 CurrentAllocated=256 Free=196 Used=60 MB
2015-11-28 21:11:40,719 [Thread-13395] INFO PERF: DONE: ----- Pass-000 Run CommandGroup: test {Seconds=0.870}
2015-11-28 21:11:40,719 [Thread-13395] INFO Found 0 arrays
The vmax probe uses EMC API commands to talk to the vmax servers called Solutions Enabler CLI. If these commands do not work, then the probe will not be able to collect the metrics from the devices.
The Nimsoft VMAX Monitoring Solution Enabler Setup document cnvNimsoftVMAXSESetupv12.pdf (attached to the KB) provides instructions for configuring the EMC Solutions Enabler, which allows you to run commands remotely, including from a host that does not have a physical connection to a Symmetrix VMAX.
When setting up the client environment, the following System environment variables must be set:
SYMCLI_CONNECT = SYMAPI_SERVER
SYMCLI_CONNECT_TYPE = REMOTE
If these are missing/incorrect, the EMC API commands will not work.
DX UIM 20.4.x / 23.4.x
Vmax probe any version
Client side for the EMC Solutions Enabler:
Install Solutions Enabler if it is not already installed.
Edit the netcnfg file by creating a line or uncommenting the existing line as follows:
Service_name - TCPIP Server_node_name Server_IP_Address port_number
Note: The default port is 2707.
For example, if your server name is EMC123 and the IP address is ###.##.##.##, this line would be:
SYMAPI_SERVER - TCPIP EMC123 ###.##.##.## 2707
Define the System environment variables as follows, by right-clicking on My Computer -> Advanced tab -> Environment Variable -> New (under System variables):
SYMCLI_CONNECT = SYMAPI_SERVER
SYMCLI_CONNECT_TYPE = REMOTE
If the Nimsoft Robot Watcher Service "logon as" user is not Local System or a user with administrator privileges, the EMC API commands may not work.
Following an initial installation of EMC Solutions Enabler, most SYMCLI commands can only be run as a root user on UNIX systems and by an administrator on Windows systems.
To allow other users to execute these commands (for example symcfg discover), you must grant them write access to the following directories and their contents:
<SYMAPI_HOME>/config
<SYMAPI_HOME>/db
Similarly, non-root users on UNIX and non-administrators on Windows must be authorized to explicitly (using stordaemon) or implicitly (using ordinary commands) make use of the Solutions Enabler daemons. This is done by adding an entry for a specific user in the file <SYMAPI_HOME>/config/daemon_users.
For example:
# Allow user 'jones' to make use of the storapid daemon:
jones storapid
# A ‘*’ character at the end of a name can be used
# as a simple wildcard. The following allows user 'jones'
# to make use of any of the Solutions Enabler daemons:
jones stor*
The <SYMAPI_HOME>/config/README.daemon_users file installed with Solutions Enabler provides additional information on this topic. See http://www.emclink.org/collateral/TechnicalDocument/docu43568.pdf for further information.
IMPORTANT:
Note that IF the Solutions Enabler is installed on the same machine as that of the probe, you MUST enter "localhost" in the "Solution Enablers Service Field" of the probe.
From the vmax probe help doc:
===========================
Solutions Enabler Service Name
Enter the name of the Solutions Enabler Service Name. Enter localhost for locally connected VMAX systems.
vmax (EMC VMAX Storage Systems Monitoring) Release Notes
Symptoms encountered when this has not been configured as described above include:
a) empty *.xml file output from running the symcfg command from the probe
b) errors in the vmax log - example below.
Note that the host parameter at the end of the command should show localhost.XML NOT the host/FQDN, e.g.,
'/opt/nimsoft/probes/storage/vmax/data/<hostname>.<example>.com.controllers.xml'
2016-10-10 15:51:47,605 [CommandPoolExecutor_0_26] ERROR Error output while running command
'symcfg list -v -dir all -out xml' '/opt/nimsoft/probes/storage/vmax/data/<hostname>.<example>.com.controllers.xml' 2016-10-10 15:51:47,605 [CommandPoolExecutor_0_26] ERROR 2016-10-10 15:51:47,606 [CommandPoolExecutor_0_26] ERROR Error while processing 'symcfg list -v -dir all -out xml' com.bt.probes.exception.CommandException: Error output while running command 'symcfg list -v -dir all -out xml'
'/opt/nimsoft/probes/storage/vmax/data/<hostname>.<example>.com.controllers.xml
at com.bt.probes.storage.vmax.VmaxCommandValidator.validate(VmaxCommandValidator.java:47) at com.bt.probes.command.Command.processResult(Command.java:268) at com.bt.probes.command.Connection.processResults(Connection.java:320) at com.bt.probes.command.Connection.runACommandWithTwoPasses(Connection.java:304) at com.bt.probes.command.Connection.access$200(Connection.java:34) at com.bt.probes.command.Connection$CommandRunnable.run(Connection.java:280) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Once localhost is added, the symcfg command when run should show something like:
2015-12-03 10:13:39,795 [CommandPoolExecutor_0_23742] INFO Running command symcfg list -v -dir all -out xml CLI Dir
D:\Program Files\EMC\SYMCLI\bin data dir D:\Nimsoft\probes\storage\vmax\data
D:\Nimsoft\probes\storage\vmax\data\localhost.controllers.xml