Posted by Kyle Gleed, 30 May 2012
I recently received a call from a co-worker having problems getting his hosts to comply with a host profile he had created. He mentioned that when he first created the host profile everything was compliant, but after changing the Syslog.global.logDir attribute all the hosts became non-compliant. He noted that despite the host profile compliance failure, the hosts were logging to the shared datastore – so everything was working, it was just that the host profile compliance check was incorrectly failing on the Syslog.global.logDir attribute.
In troubleshooting we found the problem was the syntax used for setting the Syslog.global.logDir attribute. If you set the attribute by selecting the host and choosing “Configuration -> Advanced Settings -> Syslog -> global” it shows the syntax as “[datastoreName]/logdir” (note the forward slash (/) before the directory name):
This was the syntax he initially used to set the Syslog.global.logDir attribute in the host profile editor. However, what we found is that the host profile compliance checker doesn’t like the slash (/). Through trial and error we discovered that in order for the host profile to properly recognize that the Syslog.global.logDir value is set correctly we had to replace the forward slash (/) with a space:
Once we replaced the slash (/) with a space and ran another check all the hosts fell into compliance.
I verified this is a known issue so it should be fixed in a future patch. Until then, remember when using host profiles to set the Syslog.global.logDir attribute replace the forward slash (/) with an empty space when specifying the directory name.
Also, remember anytime you configure your hosts to log to a common datastore make sure you also set the Syslog.global.logDirUnique to true so that the hosts will each log to a separate sub-directory.
For notification on future posts follow me on twitter @VMware ESXi