proxmox ve6面板增加显示cpu温度

前言

  前段时间将运行一年多的NAS升了波级,新需求需要装windows,用百度网盘下载 ,N3150完全无法满足,在OMV中的虚拟机装个windows一卡一卡的,太卡了,于是淘宝京东咸鱼一波操作,完美升级到I7。CPU都升级到I7了,在装OMV就显得浪费了,于是PVE走一波,在PVE里安装OMV做NAS用,在装个windows当下载机,在装个centos折腾用。


  PVE装好了,发现无法显示CPU温度,于是一顿狂搜索,发现只有pve5的,经过一一比对,发现操作方式差不多,想想还是记录下来。


一.安装 lm-sensors


apt-get install lm-sensors


 安装完成后可以运行 sensors 就能显示温度啦!

image.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.pm和pvemanagerlib.js。


Nodes.pm


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

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


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

image.png


pvemanagerlib.js


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

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

image.png


第二处修改


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

         }

       }

image.png


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


systemctl restart pveproxy


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


image.png

  • 评论列表:
  •  King_Tam
     发布于 2020-12-18 14:32:39  回复
  • 謝謝你的分享,我的PVE 6.3 可以正確識別到CPU溫度在面板.

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。