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 комментария
Владимир 2022

а как быть если 2 процессора? или например достаточно вывода не всех ядер а «Package id 0» и «Package id 1»

Alex 2023

График хочу, цифры скучно