After publishing my recent article on the new the vSphere Health capability which takes advantage of VMware's Customer Experience Improvement Program (CEIP), I had a couple of folks reach out asking how their customers could check whether CEIP is enabled for a given vCenter Server and if not, how to enable it using Automation. For one of these customers, they had over 25+ vCenter Server, so they were not interested in doing this by hand and nor should they.
For those interested in the vSphere UI, the CEIP settings is configured in the Administration menu under the Deployment section as shown in the screenshot below.
We can also manage the CEIP settings programmatically using vSphere API and this is controlled by an Advanced vCenter Server setting called VirtualCenter.DataCollector.ConsentData. The value of this property is actually a JSON payload as you can see in the screenshot below and when updating this property, we need to update both the change version as well as whether we want CEIP enabled or disabled for a given vCenter Server.
To demonstrate the use of this API, I have created a small CEIP PowerCLI Module called vCenterCEIP.psm1 which includes two pretty self-explanatory functions:
Below is an example of using both the Get and Set function for managing your vCenter CEIP settings.
g barton says
Are any of these health checks available for the vCenter to pipe them to vROPS or some other solution, even to a VAMI dashboard? We are not allowed to connect our vCenters to internet or enable CEIP. Would be great to get these checks without the need to send usage data.
William Lam says
afaik, these Health Checks are currently only within vSphere UI and I've already explained how this works in the previous article. Also, to be clear, the way these Health Check works is to look at YOUR specific env and the way it does that is via CEIP data, so if you're not going to enable that, then this won't work 🙂