Proxmox — температура процессора
Давайте выведем в интерфейс отображение температуры процессора
(за основу взята статья https://www.reddit.com/r/homelab/comments/rhq56e/displaying_cpu_temperature_in_proxmox_summery_in/)
Для это нам потребуется установить пакет lm-sensors для получения данных из командной строки, соединяемся по ssh, далее:
sudo apt update
sudo apt install lm-sensors
сразу проверим, запустив из командной строки:
sudo sensors
Отлично!
Если у вас не выводятся данные о температуре ядер, дальше нет смысла продолжать, в противном случае продолжаем...
редактируем файл /usr/share/perl5/PVE/API2/Nodes.pm, я буду это делать в mcedit, вы можете в nano
sudo mcedit /usr/share/perl5/PVE/API2/Nodes.pm
ищем словосочетание «my $dinfo»
перед той строкой добавляем $res->{thermalstate} = `sensors`;
должно получиться следующее
Теперь готовим область для вывода информации, для этого редактируем файл /usr/share/pve-manager/js/pvemanagerlib.js
sudo mcedit /usr/share/pve-manager/js/pvemanagerlib.js
ищем словосочетание «widget.pveNodeStatus»
меняем:
height: 300 на height: 360
bodyPadding: ’5 15 5 15’ на bodyPadding: ’20 15 20 15’
должно получиться следующее
в том же фале ищем словосочетание «PVE Manager Version»
после этой секции дописываем свою
{
itemId: 'thermal',
colspan: 2,
printBar: false,
title: gettext('CPU Thermal State'),
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];
const c4 = value.match(/Core 4.*?\+([\d\.]+)Â/)[1];
const c5 = value.match(/Core 5.*?\+([\d\.]+)Â/)[1];
return `Core 0: ${c0} ℃ | Core 1: ${c1} ℃ | Core 2: ${c2} ℃ | Core 3: ${c3} ℃ | Core 4: ${c4} ℃ | Core 5: ${c5} ℃`
}
},
должно получиться как-то так:
помните, у меня процессор с 6 ядрами, если у вас меньше, просто сократите количество выводимых данных до нужного количества
осталось перезапустить web-службу
sudo systemctl restart pveproxy
и можно смотреть результат на web-интерфейсе (обновите Ctrl+F5)
а как быть если 2 процессора? или например достаточно вывода не всех ядер а «Package id 0» и «Package id 1»
График хочу, цифры скучно