Question : Problem: Heat monitoring software.

Hi,
I'm looking for software that I could use to monitor temperature on servers. I would like to find something where I could have a widget of some kind on my desktop to monitor several servers at a central location.
Thanks,
MC

Answer : Problem: Heat monitoring software.

If you're feeling really brave, write one yourself!

I had to do something fairly similar a while back and it was surprisingly simple. All I needed to do was refer to the Win32_TemperatureProbe and MSAcpi_ThermalZoneTemperature classes; you can even do this via VBScript.

MSAcpi_ThermalZoneTemperature will return the current temperature in TENTHS of degrees Kelvin - so, subtract 2732 and divide by 10 to get the temperature in degrees C.

This VBScript will remotely grab temperature readings from the local machine (change LOCALHOST to the name of a remote machine if you wish), and it will pop up a warning dialog if any temperature reading exceeds 60 degrees. Other than that it'll do nothing:

TempWarn = 60
ServerToMonitor="localhost"
Set wbemServices = GetObject("winmgmts:" & "\\" & ServerToMonitor & "\root\wmi")
Set wbemObjectSet = wbemServices.InstancesOf("MSAcpi_ThermalZoneTemperature")
For each Item in wbemObjectSet
  TempInC = (Item.CurrentTemperature - 2732) / 10
  If TempInC > TempWarn  then WScript.Echo ServerToMonitor & " Temperature Warning" & vbcrlf & "---------------------------------------" & vbcrlf & "Sensor: " & Item.InstanceName & vbcrlf & "Warning Threshhold: " & TempWarn & "°C" & vbcrlf & "Current temperature: " & TempInC & "°C"
Next

Just save this to your desktop as .vbs and double-click on it. If your temperatures are too low to trigger the alarm, simply reduce the TempWarn value to 20.

Sorry if it's a bit scrappy on the output!

Obviously, you can have any number of instances of the script added to Task Sheduler, each pointing to a different server, set to run at 10 minute intervals, and it'll do nothing other than generate a popup if the temperature on that box is getting too high.

On most systems the For Each loop might run several times (you could get one reading for CPU temperature, another for the Northbridge temperature and a third for the case temperature for example).
In most cases the highest temperature will be the CPU or Northbridge, so it might be a good idea to google a script that'll output all readings so you can figure out which instance you're bothered about - or, if you're feeling adventurous, set up specific alarm triggers for each sensor seperately.
Random Solutions  
 
programming4us programming4us