# 前言 安装好之后PVE之后,果然操作很是舒服,但是却不能监控主机温度,每一次检测服务器CPU温度还得进Shell查询,很麻烦。网上一顿搜索之后,我找到了在PVE控制界面显示温度的模块。

# 安装 lm-sensors

apt-get install lm-sensors

安装完成后输入 sensors ,CPU温度就显示出来了

接下来便是修改PVE Web的的UI

# 修改Web UI

修改Nodes.pm和 pvemanagerlib.js

# 修改Nodes.pm

编辑文件 /usr/share/perl5/PVE/API2/Nodes.pm

找到第304行,在后面添加一行下列代码(不同版本PVE具体行数不同,具体看下图的位置,在命令模式下输入:set num 可以查询行号,直接输入:n(行数) 可以直接跳转到n行)

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

# pvemanagerlib.js

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

找到17995行,修改高度值为320,如下图所示

然后找到18119行,添加如下代码

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

注意18112行上的逗号,这个不能漏掉
然后重启pve服务即可。重启命令

systemctl restart pveproxy

效果如图

这里我写的是读取四个核心的cpu温度,如果你想显示更多cpu核心的温度,也可以自行修改,方法一样。当然,你也可以使用这个方法添加显示其他的变量。

参考文章: http://blog.lovecatcat.com/index.php/archives/5/