Despite working on wacky experiments all the time, I take my home lab management tasks seriously. As such, monitoring services, add-ons, and tools rank high on my list of mission-critical applications. I rely on Uptime Kuma to track the operational status of my container army, while Beszel keeps an eye on my server nodes. These days, I use Pulse to monitor my Proxmox workstations as well as the LXCs and VMs running on them from a neat dashboard.
Speaking of Proxmox, I also appreciate the extra graphs added to PVE 9, as they let me check the resource contention on my servers. But as someone who has set up system temperature monitoring via Conky widgets (on Linux systems) and Rainmeter plugins (on Windows PCs), I’m not fond of the fact that I can’t monitor the temps of the server nodes on Proxmox. So, one thing led to another, and I ended up trying out some packages and tools to bring temp sensors to my PVE workstations.
Glances was my first choice
After all, it’s a solid monitoring utility
As always, self-hosting yet another monitoring service seemed like the first solution to my temperature-sensing woes. After going through a handful of tools, Glances (not to be confused with Glance, which is an entirely different beast altogether) seemed like a decent option. Rather than providing an icon-based interface, Glances has many similarities to the CLI-heavy aesthetics of btop. But instead of forcing me to check the console at all times, Glances runs as an addon inside a Proxmox LXC and displays all my essential server stats from a web UI – including the temps for each CPU core.
Fortunately, the Proxmox VE Helper-Scripts repository includes a dedicated addon for Glances, so I don’t have to spend hours manually configuring it. Since I needed a pre-existing LXC for the task, I quickly spun up a Debian container by running bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/debian.sh)" within the Shell tab of my Proxmox workstation. After that, all I had to do was run bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/glances.sh)" inside the Console tab of my freshly-created Debian LXC and wait for the script to do its magic.
Soon, the container was up and running, and I used the IP address displayed within the terminal interface to access Glances. The UI was just as neat as I’d imagined it to be, and I could finally keep tabs on the CPU temps. However, I wasn’t satisfied yet…
But I switched to lm-sensors
You'll need to execute a couple of commands
Although Glances is an amazing app for checking my system parameters, I was hoping for something that could display the temps directly in Proxmox rather than a separate dashboard. After reading the docs for lm-sensors, I figured I could try setting up the package on my PVE nodes. To kick things off, I pulled the lm-sensors package by running the apt install lm-sensors command within my node’s Shell interface. After that, I executed sensors-detect to configure the package's kernel modules. I left most settings at their default values, though the tool was only able to pick two sensors: one (or technically two, since I ran the command on my dual-Xeon server) for the CPU, and another for the NVMe SSD housing my virtual guests.
The PVE-mods repo solved my problems
And setting it up was a breeze
So far, I could run the sensor command inside the Proxmox shell to get the temps for my CPU core and storage drive. But what I really wanted was a way to add live temperature readings to my PVE dashboard. I could try editing the /usr/share/perl5/PVE/API2/Nodes.pm config file to display the lm-sensor readings inside Proxmox’s web UI. But my paranoid self wasn’t ready to edit several JSON lines, since a single mistake could result in my server going offline for a few hours.
That’s when I came across the PVE-mods repository by genius developer Meliox, which includes a couple of scripts to enhance Proxmox’s functionality. One of these mods – Node sensor readings view – was precisely what I was looking for. Setting it up was just as painless. I downloaded the script using the wget https://raw.githubusercontent.com/Meliox/PVE-mods/main/pve-mod-gui-sensors.sh command and executed it using bash pve-mod-gui-sensors.sh install. Once the installation was complete, I cleared the browser cache and restarted it. Lo and behold, the temperature readings from both processors and my NVMe drive appeared inside the Proxmox node. Since I’m rocking Proxmox 9, I was a bit apprehensive about the script’s compatibility, but it works incredibly well.
I also followed the process to get the DIMM sensors to read (and display) the RAM temps from the Arch wiki. But I never managed to get it working – and not because of the package compatibility issues between Arch and Debian, mind you. Once I’d installed the i2c-tools package via the apt install i2c-tools command and loaded the right kernel module using modprobe i2c_dev, the tool worked right off the bat.
But I wasn’t sure if the 0x8, 0x44, and 0x48 buses corresponded to the DIMM temp sensors after executing the i2cdetect -y 0 command. Call me paranoid, but I didn’t want to risk breaking the PVE installation. Plus, since I cared more about the CPU and storage temps, Meliox’s script was all I needed for my Proxmox nodes.
