Proxmox 온도 모니터링 추가

세민·2023년 6월 29일
0

Proxmox

목록 보기
2/4
post-thumbnail

Proxmox Node 온도 모니터링 추가

Proxmox에는 따로 Node의 온도 모니터링을 할수있는 기능이 없어서 직접 추가 해보았다.


Step1.

dependencies 설치

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

wget http://archive.ubuntu.com/ubuntu/pool/universe/h/hddtemp/hddtemp_0.3-beta15-53_amd64.deb

sudo apt install ./hddtemp_0.3-beta15-53_amd64.deb

Step2.

온도 command의 결과값을 proxmox에서 쓸수있도록 api에서 추가해주기

Edit: /usr/share/perl5/PVE/API2/Nodes.pm

$dinfo 변수를 찾아 그 밑에 코드 추가

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

Step3.

프론트에서 렌더링 부분에 모니터링하고자 하는것을 추가

Edit: /usr/share/pve-manager/js/pvemanagerlib.js

pveversion을 찾으면 아래와 같은 부분이 나오는데

{
  itemId: 'version',
  colspan: 2,
  printBar: false,
  title: gettext('PVE Manager Version'),
  textField: 'pveversion',
  value: ''
},

이 밑에 다음과 같은 내용을 추가해준다.

{
  itemId: 'CPUtemperature',
  colspan: 2,
  printBar: false,
  title: gettext('CPU Temperature'),
  textField: 'CPUtemperature',
  renderer: function(value){
    const dieTemp = Array.from(value.matchAll(/Core \d+:.*?\+([\d\.]+)?/g), m=>m[1]);
    return dieTemp.map((element, index) => {
      const line = `[Core ${index+1}: ${element}℃]`;
      return (index + 1) % 2 == 0 ? line + '<br>' : line;
    });
  }
},
{
  itemId: 'GPUtemperature',
  colspan: 2,
  printBar: false,
  title: gettext('GPU Temperature'),
  textField: 'GPUtemperature',
  renderer: function(value) {
    const temp = value.match(/temp1:.*?\+([\d\.]+)?/);
    const gpuTemp = temp !== null && temp.length > 0 ? temp[1] : "Unavailable ";
    return `GPU: ${gpuTemp}`;
  }
},

그리고 나서 height: 300이라고 되어있는 부분들을 찾아 다음과 같이 수정해준다.

height: 420

Step4.

모든 수정사항을 저장한후 다음과 같은 명령어를 실행하고 Proxmox에 재접속하여 Node의 Summary탭을 들어가면 변경사항이 반영되어 있을것이다.

systemctl restart pveproxy

profile
Junior Developer

0개의 댓글