Getting temperature readings from your ESXi host in Observium
It always irked me that I was not able to read the temperature of my ESXi host. Lately I renovated a storage space underneath my stairs and moved all my infrastructure to it. Since there is a lot of equipment in the same place and probably could get really hot unless I calibrate my fans accordingly I decided to give it one more try.
This time I succeeded, and here’s how to do it.
This guide probably works at least partly for LibreNMS too.
Intalling ipmitool
First things first. Make sure that you have ipmitool installed, otherwise install it:
apt-get install ipmitool
Create a user via your IPMI web interface
Verify that you have a user set up with the correct permissions (“User” was enough in my case).
Test the IPMI interface with ipmitool
Then you can test the connection to your IPMI interface with the following command:
ipmitool -H 192.168.1.50 -L USER -U myuser -P mypassword -I lanplus sdr elist full
What this does is to show the sensor of your chassis using the protocol support used by an IPMI v2.0 RMCP+ LAN Interface.
If this does not work, verify that the port of your IPMI API is 623 (UDP). You can also try a different interface from the following list:
Interfaces: open Linux OpenIPMI Interface [default] imb Intel IMB Interface lan IPMI v1.5 LAN Interface lanplus IPMI v2.0 RMCP+ LAN Interface free FreeIPMI IPMI Interface serial-terminal Serial Interface, Terminal Mode serial-basic Serial Interface, Basic Mode usb IPMI USB Interface(OEM Interface for AMI Devices)
Configuring Observium
Navigate to your ESXi server in Observium, click on the settings button, and the “Properties”. Here, go to IPMI and enter the settings used above.
Troubleshooting Observium
In case you still do not get temperature readings in Observium there is one more trick that you can try.
/opt/observium/poller.php -d -h 192.168.1.50 -m ipmi
This command will show you exactly which command Observium is using. Compare the command with your successful attempt from the steps above and attempt to change accordingly.
TLDR;
My mistake was that the IPMI “API interface” does not necessarily listen to the same port as the web interface. In my case it was listening on port 623 (UDP).
What was yours?