Proxmox - Monitorando temperatura de dispositivos
Sobre
Olá! Visitante, reunimos aqui, informações sobre a ferramenta de Virtualização Proxmox Virtual Environment, neste tutorial, iremos ver uma maneira opcional (opt-in) e não oficial de exibir as informações de temperaturas obtidas através dos sensores existentes por padrão no hardware. Lembrando que este vídeo tem cunho educativo e apenas deve ser executado os comandos abaixo caso tenha total confiança no processo e faça em homologação.
Vídeo
Script de Instalação
Neste link é o github do desenvolvedor que disponibilizou o script para a instalação.
https://github.com/Meliox/PVE-mods
Sensores
Por padrão ao instalar o pacote lm-sensors, o mesmo pode trazer alguns módulos básicos.
apt-get install lm-sensors
Sendo possível fazer uma detecção com o comando
sensors-detect
Para ativar tanto os sensores detectados como outros, os mesmos devem ser carregados em /etc/modules, como no exemplo
nano /etc/modules
# Generated by sensors-detect on Fri Jan 31 00:40:03 2025 # Chip drivers drivetemp coretemp jc42
| Nota: Verifique a existência do modulo drivetemp neste arquivo para que possa ser possível obter as informações de temperaturas dos discos mecânicos (HDD) |
Para carregar os módulos faça:
/etc/init.d/kmod start
Script para aplicar no Reboot
Segue o Script desenvolvido pelo Projeto Root para aplicar a cada reboot a modificação, use e modifique ao seu gosto.
nano /bin/ajustes.sh
Cole este conteúdo abaixo e salve o arquivo.
#!/bin/bash
# Definindo os caminhos de origem e destino
SOURCE_NODES="/root/ajustes/Nodes.pm"
DEST_NODES="/usr/share/perl5/PVE/API2/Nodes.pm"
SOURCE_PVEJS="/root/ajustes/pvemanagerlib.js"
DEST_PVEJS="/usr/share/pve-manager/js/pvemanagerlib.js"
# Copiando e sobrescrevendo o arquivo Nodes.pm
if [ -f "$SOURCE_NODES" ]; then
echo "Sobrescrevendo $DEST_NODES com o arquivo $SOURCE_NODES"
cp -f "$SOURCE_NODES" "$DEST_NODES"
else
echo "Erro: $SOURCE_NODES não encontrado!"
fi
# Copiando e sobrescrevendo o arquivo pvemanagerlib.js
if [ -f "$SOURCE_PVEJS" ]; then
echo "Sobrescrevendo $DEST_PVEJS com o arquivo $SOURCE_PVEJS"
cp -f "$SOURCE_PVEJS" "$DEST_PVEJS"
else
echo "Erro: $SOURCE_PVEJS não encontrado!"
fi
systemctl restart pveproxy.service
echo "Processo de cópia concluído!"
echo "Reiniciado o PVE Proxy."
Após sair e salvar (CTRL+X), ajuste as permissões
chmod +x /bin/ajustes.sh
Para aplicar sempre que o servidor reiniciar coloque no crontab.
crontab -e
Coloque abaixo dos comentários a linha @reboot /bin/ajustes.sh
#... # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command @reboot /bin/ajustes.sh
Monitorar apenas o CPU
Para ativar os sensores de temperatura do CPU (Core) devem ser carregados em /etc/modules, como no exemplo
nano /etc/modules
coretemp
Sair e Salvar
| Nota: Verifique a existência do modulo coretemp neste arquivo para que possa ser possível obter as informações de temperaturas do CPU |
Para carregar os módulos faça:
/etc/init.d/kmod start
Edite o arquivo Nodes.pm
nano /usr/share/perl5/PVE/API2/Nodes.pm
Localizar com as teclas ctrl + w my $dinfo = df('/', 1); e coloque acima da linha encontrada:
$res->{thermalstate} = `sensors`;
Sair e Salvar
Edite o arquivo pvemanagerlib.js
nano /usr/share/pve-manager/js/pvemanagerlib.js
Localizar com as teclas ctrl + w itemId: 'version', e coloque o trecho abaixo abaixo de 'cpus'
{
itemId: 'thermal',
colspan: 2,
printBar: false,
title: gettext('CPU TEMP'),
textField: 'thermalstate',
renderer:function(value){
const c0 = value.match(/Core 0.*?\+([\d\.]+)Â/)[1];
const c1 = value.match(/Core 1.*?\+([\d\.]+)Â/)[1];
const c2 = value.match(/Core 2.*?\+([\d\.]+)Â/)[1];
const c3 = value.match(/Core 3.*?\+([\d\.]+)Â/)[1];
return `Core 0: ${c0} ℃ | Core 1: ${c1} ℃ | Core 2: ${c2} ℃ | Core 3: ${c3} ℃`
}
},
Sair e Salvar
Reinicie o serviço pveproxy
systemctl restart pveproxy.service