分类
未分类

proxmox 7.0 添加CPU Nvme HDD温度监控

需要安装sensors和hddtemp并修改两个文件:

apt-update && apt-get install lm-sensors hddtemp -y

修改文件前请备份,改完重启服务后需要清理缓存,如果白屏或者菊花,请仔细检查配置文件。

1.第一个文件: 修改一处

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

在364行附近 可以直接搜索my $dinfo = df(‘/’, 1);

在其后添加:

$res->{CPUtemperature} = sensors;
$res->{Nvmetemperature} = sensors;
$res->{HDDtemperature} = hddtemp /dev/sda;

2.第二个文件:修改二处

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

在34827行左右 可以直接搜索 textField: ‘pveversion’,

在其后添加:

  {
            itemId: 'version',
            colspan: 2,
            printBar: false,
            title: gettext('PVE Manager Version'),
            textField: 'pveversion',
            value: '',
        },
#add=======================================================
        {
            itemId: 'CPUtemperature',
            colspan: 2,
            printBar: false,
            title: gettext('CPU Temperature'),
            textField: 'CPUtemperature',
            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 `Core0: ${c0}℃ | Core1: ${c1}℃ | Core2: ${c2}℃ | Core3: ${c3}℃ `
                                        }
        },
        {
            itemId: 'Nvmetemperature',
            colspan: 2,
            printBar: false,
            title: gettext('Nvme Temperature'),
            textField: 'Nvmetemperature',
            renderer: function(value){
                const nvme = value.match(/Composite.*?\+([\d\.]+)?/)[1];

                return `Nvme: ${nvme}℃ `
                                        }
        },
        {
            itemId: 'HDDtemperature',
            colspan: 2,
            printBar: false,
            title: gettext('HDD Temperature'),
            textField: 'HDDtemperature',
            renderer: function(value) {
                value = value.replace(/Â/g, '');
                return value.replace(/\n/g, '<br>')
            }
        },
#end=======================================================
        {
            itemId: 'repositoryStatus',
            colspan: 2,
            printBar: false,
            title: gettext('Repository Status'),
            setValue: function(value) { // for binding below
                this.updateValue(value);
            },
            bind: {
                value: '{repoStatusMessage}',
            },
        },

在34719行附近 可以直接搜索return fmt(gettext(‘No Proxmox VE repository enabled!’)

修改height : 400 (*需按情况修改,每多一行数据增加25)

                    return fmt(gettext('No Proxmox VE repository enabled!'), 'exclamation-circle critical');
                }

                return Proxmox.Utils.unknownText;
            },
        },
    },
#edit=================================
    height: 400,
#edit=================================
    bodyPadding: '15 5 15 5',

    layout: {
        type: 'table',
        columns: 2,
        tableAttrs: {
            style: {
                width: '100%',

3.重启服务

systemctl restart pveproxy

4.清理浏览器缓存后可以看到效果

height:375效果:

height:400效果:

发表评论

邮箱地址不会被公开。 必填项已用*标注