Does anyone still use resxtop? VMware/Broadcom must not think so. The instructions for installation don’t include all the steps necessary for sure. The instructions are located here: https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.monitoring.doc/GUID-194D583E-EFDC-44DF-AF3C-625974815766.html This may change as Broadcom updates all the doc pages. But for now it’s correct. The instructions for installation on Ubuntu are:
Installing RESXTOP on Linux systems is a simple process the involves extracting the files from the archive, running and install script, and updating the path.
- Download resxtop from https://code.vmware.com/web/tool/7.0/resxtop. (this isn’t right anymore it’s really here: https://developer.broadcom.com/tools/vmware-vsphere-resxtop/latest)
- Unpack the archive using the linux tar command
tar -xvf resxtop-7.0.0-15992393-lin64.tgz. - Execute the install script by running the linux command
./install.sh. - Update the path by running the linux command
export LD_LIBRARY_PATH=/usr/lib/vmware/resxtop.
Easy enough right? Or “simple” as they put it. Of course you’ll get this error when you follow the instructions:resxtop: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
Right so lets install libncurses (I used the legacy version since resxtop seems to be legacy):apt install libncursesw6
Why version 6 you make ask because you can’t just install libncurses5. The library is binary compatible according to the documentation so…ls -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
ln -s /usr/lib/x86_64-linux-gnu/libncursesw.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
Your paths may vary so make sure they are correct. You may not need libtinfo.so.5 if it already exists so that may error.
And now it works. Maybe the libncurses package maintainers should include this in the install or maybe they don’t for a reason. I’m not interested in why it’s that way. I packed all of this up in a container too because why not. The Dockerfile looks like:
FROM ubuntu
ADD resxtop-8.0.1-21711926-lin64.tgz /resxtop
RUN cp -rf /resxtop/resxtop /usr/bin \
&& mkdir -p /usr/lib/vmware/resxtop \
&& cp -rf /resxtop/lib64/* /usr/lib/vmware/resxtop \
&& apt update \
&& apt install libncursesw6 -y \
&& ln -s /usr/lib/x86_64-linux-gnu/libncursesw.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/vmware/resxtop
I had to copy the files manually instead of running the install.sh file because it needed interactive agreement to the eula. The command to make it run is:sudo docker run -it <image name> /bin/resxtop --server <vcenter> --username <username> --vihost <esxi name in vcenter>
It is probably possible to configure batch mode with some clever mounts into the container but that’s more than I need right now.
Or if you just install it on your machine:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/vmware/resxtopresxtop --server <vcenter> --username <username> --vihost <esxi name in vcenter>