PVE显示CPU温度

1.安装lm-sensors
a. lm-sensors(Linux-monitoring sensors,Linux监控传感器)是是一款免费的Linux开源软件工具,提供监控温度,电压,湿度和风扇的工具和驱动程序。它也可以检测机箱入侵。
apt-get install lm-sensors

b. 安装完成后,可以运行命令“sensors-detect”来探测哪些传感器可用并加载相关的内核模块。通常全部默认yes即可,最后提示时候按回车完成!

c. 之后执行命令“sensors”即可显示出系统运行的温度状态和风扇转速等信息:

Adapter: ISA adapter
Package id 0:+43.0°C(high = +76.0°C, crit = +86.0°C)
Core 0:+35.0°C(high = +76.0°C, crit = +86.0°C)
Core 1:+34.0°C(high = +76.0°C, crit = +86.0°C)
Core 2:+42.0°C(high = +76.0°C, crit = +86.0°C)
Core 3:+38.0°C(high = +76.0°C, crit = +86.0°C)
Core 4:+43.0°C(high = +76.0°C, crit = +86.0°C)

//注意此处需记录下设备名称,如:Package id 0, Core 0等。

2.编辑修改文件
PVE使用Node.js来实现基于WebUI的管理,修改此文件的目的就是让其能定期执行sensors命令,并将结果输出Web页面上。具体的修改方法如下:

2.1. Nodes.pm

vi /usr/share/perl5/PVE/API2/Nodes.pm

//定位: my $dinfo = df(‘/’, 1); # output is bytes
//在定位之上插入一行

$res->{thermalstate} = `sensors`;

2.2.pvemanagerlib.js

vi  /usr/share/pve-manager/js/pvemanagerlib.js

//定位1:
showLog: function(button, event, rec) {

//在定位下方Ext.creat(‘Ext.window.Windows
height: 400改为420

//定位2:
alias: ‘widget.pveNodeStatus’,

//在定位下方
height: 300改为320

//定位3:
gettext(‘PVE Manager Version

//在定位下方value后添加:

,
{
itemId: ‘thermal’,
colspan: 2,
printBar: false,
title: gettext(‘uTemperatue’),
textField: ‘thermalstate’,
renderer:function(value){
const c0 = value.match(/temp1.*?\+([\d\.]+)?/)[1];
return `Core: ${c0} | ${c1}`
}
}

//注意:“const”开头的常量名称和数量是由前文所说的“sensors”命令的输出结果决定的,对于不同的CPU类型其内容会有所不同,在本文中是我自己的名称来设定的。对于其他类型的CPU,可能没有Package的名称,或者会有(多个Socket)。

3.重启PVE的Web管理服务
systemctl restart pveproxy

43.jpg
33.jpg
54.jpg