No, it doesn't need to be installed directly on the ESX host. Just a VM that can access the vCenter API.
That's the only metrics that have a predefined module.
You can use any other method as long as you can ship the metrics. I'm not that familiar with all the vCenter / vSphere metrics.
Elastic can also ingest Prometheus metrics using metricbeat.