Where to run the smart proxy


Hi all:

I’m a newcomer to ManageIQ,and I’m trying to use ManageIQ to manage VMware and Openstack.After reading the docs,I still don’t quite understand the Smart Proxy:

Where should the SmartProxy be run ? on ManageIQ server,or host in cluster,or inside the VM ?


SmartProxy is a role on the ManageIQ appliance, you can enable it using Configuration/Configure from the menus.

Note…VMware Smart State Analysis requires the VMware VDDK to be installed locally on the ManageIQ appliance.

Read : http://manageiq.org/documentation/getting-started/ for all the information required to get this done, very easy…just download it from VMware, install it, enable the role and your off!



Hi @jhardy

Thanks for your reply.

I have successfully installed VDDK on my ManageIQ appliance,but when i analysis a vm on Exsi,error occurred:

No eligible proxies for VM :[[HDS_Datastore] BootFromTemplateMNGIQ/BootFromTemplateMNGIQ.vmx] - [Provide credentials for this VM's Host to perform SmartState Analysis], aborting job

and I saw some text that describes SmartProxy in Quick Start Guide:


The SmartProxy can be configured to reside on the CloudForms Management Engine Appliance or on an ESX server version. The
SmartProxy can be deployed from the CloudForms Management Engine Appliance, and provides visibility to the VMFS storage.
Each storage location must have a SmartProxy with visibility to it. The SmartProxy acts on behalf of the CloudForms Management
Engine Appliance. If the SmartProxy is not embedded in the CloudForms Management Engine server, it communicates with the
CloudForms Management Engine Appliance over HTTPS (SSL) on standard port 443.

It seems that smartproxy is not necessary to be deployed on Exsi host,right?

When I analysis VMs in OpenStack,error occurred too:

No root filesystem found.

Is there something wrong with my smart proxy ?
When I do a SmartState Analysis,what will the proxy do actually?

Thanks a lot.


@jhardy Sorry,forgot to say, SmartState Analysis on VM based on Cirros Image is ok, Users and Groups info will be show successfully. Failed on ubuntu or centos.

Thanks a lot.


No, it does not need to be installed on ESXi. Using the embedded SmartProxy should be sufficient. However, you do need to add the credentials for the Host in the application, for VMware, as per the error message. If you haven’t already, go to Infrastructure -> Hosts and find your Host. Then go to Configuration -> Edit and enter the credentials for that Host. These credentials are passed to the VDDK. /cc @gmccullough and @rpo, please keep me honest here :slight_smile:

For OpenStack, I’m not sure…@rpo might be able to give you more info.


Hi @Fryguy

Thanks for your reply.

I edited the credentials info of esxi host and it’s Authentication Status is Valid.

But when I analysis a vm on it,different error occurred.

a) when vm’s disk placed on local storage:

Unable to mount filesystem. Reason:[undefined method `+’ for nil:NilClass] for VM:[[datastore1 (1)] pxetest/pxetest.vmx]

b) when vm’s disk placed on shared storage:

Unable to mount filesystem. Reason:[undefined method `+’ for nil:NilClass] for VM:[[HDS_Datastore] pxetest/pxetest.vmx]

Thanks a lot.


@rpo Would you please investigate and respond


It’s hard to determine what’s happening with the given information. Could you set the loglevel to debug, rerun, and provide the evm.log and vim.log files? They should be in the /var/www/miq/vmdb/log directory.


There is too much content in the log files,so I deleted evm.log and vim.log and then restart my ManageIQ service. :blush:

There is nothing new contend going into vim.log file,so I upload another changing file named development.log,hope it’s useful.

Embarrassed to say I don’t know how to upload log file in this forum… :sweat:

I upload them to google driver:

a) evm.log:

b) development.log:

Thanks a lot.


It looks like it’s failing because LD_LIBRARY_PATH isn’t set in your environment. I guess it’s normally set in the run environment of the appliance. Are you running in an appliance, or from source in another environment?


Hi @rpo ,Sorry for late reply.

We are not running in an appliance,we build the environment from source.

a) OS Info:

[root@manageiq196 ~]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)

b) ManageIQ Version Info:

[root@manageiq196 ~]# cat /home/miqbuilder/manageiq-botvinnik/vmdb/VERSION

Thanks a lot.


Hi @rpo @chessbyte,could you give me some hints please? :blush:


For now, try setting LD_LIBRARY_PATH to something reasonable in the environment in which the application is executed. However, I’m not sure why this should be necessary. Are you starting the application via rake evm:start?


Yes,I started the application as follows:

[root@manageiq196 vmdb]# pwd
[root@manageiq196 vmdb]#
[root@manageiq196 vmdb]# bin/rake evm:start

Is there any other way to start the application?

Thanks a lot.


@rpo LD_LIBRARY_PATH isn’t set by default and grepping the main application’s codebase (latest master), it doesn’t seem to be set anywhere.

So if @wuyw is running the latest code locally (eg not on the appliance) it makes sense that this variable isn’t set. Since the line in question is…


… this would blow up if LD_LIBRARY_PATH is not set.

@wuyw I’d try setting that variable to an empty string before launching the server with:


In general I’m thinking this probably could be addressed with a my_env[“LD_LIBRARY_PATH”].to_s.


@mmorsi @rpo

Great! It worked!

What I did:

[root@manageiq196 vmdb]# pwd
[root@manageiq196 vmdb]#
[root@manageiq196 vmdb]# export LD_LIBRARY_PATH=""
[root@manageiq196 vmdb]#
[root@manageiq196 vmdb]# bin/rake evm:start

Thanks you very much!

I will try to do smartstate analysis on vm reside in openstack and show the result,wish me luck. :stuck_out_tongue_winking_eye:


No luck… :disappointed_relieved:

I did smartstate analysis on three vms reside in openstack:

a) Ubuntu 14.04.2 LTS

No root filesystem found.

b) CentOS 6.6

No root filesystem found.

c) cirros

Process completed successfully

If any log file is needed,please let me know.

Thanks a lot.