Daemon has to be deployed on every vSphere server. It collects esxtop's statistics to influxdb for further use, for example, in grafana
- Enable remote SSH console on vSphere hosts
- Edit influxdb_server and influxdb_dbname in /bin/esxtop-collect
- Edit metrics_collect lists for each category to include the metrics you wish to collect. Reference CollectableMetrics.md for full list.
- Place daemon and init scripts in /bin and /etc/init.d directories
- Set ohostname to the desired hostname to be reported if you need to override the hostname, leave as None to use system hostname
- chmod 755 /bin/esxtop-collect /etc/init.d/esxtop-collect
- chkconfig esxtop-collect on
- /etc/init.d/esxtop-collect start
Prepare
- Login to remote SSH console on vSphere host
- cd / ; rm /esxtop-collect.tgz ; tar -cz -f /esxtop-collect.tgz /bin/esxtop-collect /etc/init.d/esxtop-collect
- Place esxtop-collect.tgz on a web server
Install
- wget -O - http://.../esxtop-collect.tgz | tar - xz -C /
- chkconfig esxtop-collect on
- /etc/init.d/esxtop-collect start
When pulling the "Group Memory" data if you have VMs with a naming scheme that ends with .[0-9]+ you will not be able to pull metrics. Processes on the host as listed with the process name followed by .$PID, VM names are listed the same except without the .$PID, this makes filtering the host processes from the VMs difficult.
Example:
Host process:
"\\esxhost1\Group Memory(376:init.33332)\Shared MBytes"
VM:
"\\esxhost1\Group Memory(46414637:linuxvm)\Shared MBytes"
VMs named something like linuxbox.12432 will be filtered.