Proxmox là nền tảng ảo hóa mã nguồn mở mạnh mẽ, được nhiều người dùng ưa chuộng. Việc giám sát nhiệt độ CPU và NVMe trực tiếp trên dashboard giúp quản trị hệ thống hiệu quả hơn. Bài viết này hướng dẫn chi tiết cách hiển thị thông tin nhiệt độ CPU và NVMe trên Proxmox Dashboard, giúp bạn dễ dàng theo dõi và kiểm soát tình trạng phần cứng máy chủ.
Bạn đang tìm kiếm cách giám sát nhiệt độ phần cứng máy chủ Proxmox một cách hiệu quả? Việc theo dõi nhiệt độ CPU và ổ cứng NVMe là rất quan trọng để đảm bảo hệ thống hoạt động ổn định và tránh các sự cố hư hỏng do quá nhiệt. Bài viết này sẽ cung cấp cho bạn hướng dẫn từng bước để hiển thị thông tin nhiệt độ này ngay trên Proxmox Dashboard, giúp bạn quản lý hệ thống dễ dàng hơn.
Bước 1: Cài đặt lm-sensors
Đầu tiên, bạn cần kết nối SSH vào máy chủ Proxmox của mình. Sau đó, cài đặt gói lm-sensors
bằng lệnh sau:
apt update && apt install lm-sensors -y
Gói lm-sensors
cung cấp các công cụ để theo dõi nhiệt độ phần cứng. Chúng ta sẽ sử dụng lệnh sensors -j
để lấy thông tin nhiệt độ ở định dạng JSON, sau đó xử lý và hiển thị trên Dashboard.
Bước 2: Trích xuất Thông tin Nhiệt độ
Sau khi cài đặt lm-sensors
, chúng ta cần chỉnh sửa file /usr/share/perl5/PVE/API2/Nodes.pm
để lấy thông tin nhiệt độ. Lưu ý: Hãy tạo bản sao lưu của file này trước khi chỉnh sửa để phòng trường hợp xảy ra lỗi.
Tìm dòng chứa đoạn mã $dinfo = df("https://blog.hocexcel.online/", 1);
và thêm dòng sau phía trên nó:
$res->{thermalstate} = `sensors -j`;
Đoạn mã này sẽ thực thi lệnh sensors -j
và lưu kết quả vào biến thermalstate
. Dữ liệu này sẽ được sử dụng ở bước tiếp theo để hiển thị trên Dashboard.
Bước 3: Hiển thị Thông tin trên Proxmox Dashboard
Tiếp theo, chúng ta sẽ chỉnh sửa file /usr/share/pve-manager/js/pvemanagerlib.js
. Nhớ tạo bản sao lưu trước khi thực hiện bất kỳ thay đổi nào.
Tìm cụm từ pveversion
và thêm đoạn mã sau vào phía sau nó:
Hiển thị Nhiệt độ CPU
{
itemId: 'thermal',
colspan: 2,
printBar: false,
title: gettext('CPU Thermal State'),
iconCls: 'fa fa-fw fa-thermometer-half',
textField: 'thermalstate',
renderer: function(value) {
let objValue = JSON.parse(value);
let cores = objValue["coretemp-isa-0000"]; // Thay đổi nếu cần
let items = Object.keys(cores).filter(item => /Core/.test(item));
let str="";
items.forEach((x, idx) => {
str += cores[x][`temp${idx+2}_input`] + ' ';
});
str += '°C';
return str;
}
},
Lưu ý: Đoạn mã cores = objValue["coretemp-isa-0000"];
cần được điều chỉnh cho phù hợp với output của lệnh sensors -j
trên hệ thống của bạn. Hãy kiểm tra kỹ key tương ứng với thông tin nhiệt độ CPU.
Hiển thị Nhiệt độ NVMe
{
itemId: 'nvmeTemperature',
colspan: 2,
printBar: false,
title: gettext('NVMe Temperature'),
iconCls: 'fa fa-fw fa-thermometer-half',
textField: 'thermalstate',
renderer: function(value) {
let objValue = JSON.parse(value);
let nvme1Temperature = objValue["nvme-pci-0100"]; // Thay đổi nếu cần
let nvme2Temperature = objValue["nvme-pci-0200"]; // Thay đổi nếu cần
let nvmeTempStr="";
if (nvme1Temperature && nvme2Temperature) {
nvmeTempStr = `NVMe 1: ${nvme1Temperature['Composite']['temp1_input']} °C | NVMe 2: ${nvme2Temperature['Composite']['temp1_input']} °C`;
}
return nvmeTempStr;
}
}
Tương tự như với CPU, hãy kiểm tra và thay đổi các key nvme-pci-0100
và nvme-pci-0200
cho phù hợp với hệ thống của bạn. Nếu bạn chỉ có một ổ NVMe, hãy bỏ đi phần mã xử lý ổ thứ hai.
Bước 4: Khởi động lại pveproxy
Sau khi hoàn tất các bước trên, hãy khởi động lại dịch vụ pveproxy
và xóa cache trình duyệt để xem kết quả:
systemctl restart pveproxy
Bây giờ, bạn có thể dễ dàng theo dõi nhiệt độ CPU và NVMe trực tiếp trên Proxmox Dashboard, giúp quản lý và vận hành hệ thống hiệu quả hơn.
Tóm lại, việc theo dõi nhiệt độ CPU và NVMe trên Proxmox Dashboard giúp bạn chủ động phát hiện và xử lý các vấn đề liên quan đến nhiệt độ, đảm bảo hệ thống hoạt động ổn định và hiệu quả. Hướng dẫn này cung cấp giải pháp đơn giản và dễ thực hiện, giúp bạn nâng cao khả năng quản trị hệ thống Proxmox.
Discussion about this post