一.安装 lm-sensors

apt-get install lm-sensors

安装完成后可以运行 sensors 就能显示温度啦
1.png
二.修改面板代码

先备份之后要修改的两个文件

cp /usr/share/perl5/PVE/API2/Nodes.pm /usr/share/perl5/PVE/API2/Nodes.pm.bak
cp /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.bak


修改WebUI

  主要修改两个文件 Nodes.pmpvemanagerlib.js

Nodes.pm

   编辑文件 vi /usr/share/perl5/PVE/API2/Nodes.pm,我一般采用vi

   找到317行,在后面添加一行,防止输入错误,可以直接复制下面的代码

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

2.png

pvemanagerlib.js

  编辑文件 vi /usr/share/pve-manager/js/pvemanagerlib.js

  用搜索找到下图对应的地方修改高度值为420,如下图所示

3.png

第二处修改

4.png

最后增加显示CPU温度的代码

{

  itemId: 'thermal',

  colspan: 2,

  printBar: false,

  title: gettext('CPU温度'),

  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} ℃`

 }

}

5.png

注意红线上的逗号,这个不能漏掉
然后重启pve服务就能看到效果啦,重启服务命令

systemctl restart pveproxy


  效果如下图,如果你的CPU不是四核的,上面代码可以修改成适合自己的啊,主要是正则匹配sensors 命令的输出温度值,也可以采用类似的方法添加你需要监控的一些参数啦。

Last modification:December 29, 2021
If you think my article is useful to you, please feel free to appreciate