Hace meses que llevo luchando con mi viejo servidor del que no podía obtener temperaturas, aquí describo como hice con mi DELL T110 para obtener la temperatura del procesador y se me reflejase en pandora.
Si has llegado aquí supongo que ya has buscado como obtenerla por wmi y no ha resultado y que no hay ningún bendito lugar en SNMP que refleje la temperatura de la CPU en este y en algunos servidores.
1.- Copia este código y pégalo al final del archivo C:\Program Files\pandora_agent\pandora_agent.conf
# Number processes
module_begin
module_name Temperatura
module_type generic_data
module_exec c:\speedfan\temp.bat | gawk "{print$4}"
module_description Temperatura Procesador
module_min_warning 52
module_max_warning 56
module_min_critical 57
module_max_critical 120
module_end
2.- Instala speedfan pero en c:\speedfan.
3.-Crea un archivo powershell llamado temperatura.ps1 y pega el siguiente contenido dentro de c:\speedfan:
$t = get-date -format yyyyMMdd
$sf = "c:\SpeedFan\SFLog" + "$t" + ".csv"
"echo " + (Get-Content $sf)[-1] | Out-File -Encoding oem temp.bat
4.- Debes habilitar la ejecución en tu sistema de scripts powershell; la recomendada es firmar el script temperatura.ps1 pero hay otra forma menos segura que es habilitar la ejecución de scripts powershell con el siguiente comando:
Set-ExecutionPolicy RemoteSigned
Para finalizar crea una tarea que se ejecute cada 3 minutos ejecutando la tarea powershell, revisa todos los apartados para que se ejecute como administrador, tanto si se inicia sesión como si no etc…
En la tarea (poner a mano porque la tarea no funciona con un copiar y pegar):
en el apartado programa o script C:\speedfan\powershell.exe
en el apartado Argumentos: -command «c:\Speedfan\Temperatura.ps1»
en el apartado iniciar en: c:\speedfan
5.- copiamos el ejecutable powershell.exe que está en c:\windows\system32\windowspowershell\v1.0 dentro de c:\speedfan.
6.- Habilitamos los logs en speedfan EN UN SOLO NÚCLEO de los cores del CPU y finalmente reiniciamos servidor. También podemos reiniciar servicio de pandora.
Explicación, por si algo falla. Cada 3 minutos se debe ejecutar c:\speedfan\Temperatura.ps1 el cuál crea el archivo temp.bat (dentro de c:\speedfan); pandora_agent ejecuta temp.bat el cuál lee la tercera columna del archivo y lo envía al servidor. Tristemente dependemos de que speedfan esté funcionando continuamente para lo cuál también creé una tarea. Espero que les haya servido!!!
Notas: si dentro de c:\speedfan se crean varios logs en nuestros intentos ej SFLog20211202-0001 y SFLog20211202.csv debemos eliminarlos todos cerrar speedfan y volverlo a abrir; esto solo ocurre cuando se ha cerrado speedfan y se ha vuelto a abrir existiendo el log de ese mismo día por lo que crea uno nuevo.