Published 1 minute ago
Abhishek is an author at XDA who covers computing.
He has loved computers since he got the Lenovo G570 in 2012. Abhishek holds a master’s degree in computer applications and began his writing career in 2018. He loves writing how-to articles, listicles, and informational posts on popular operating systems and web services.
He closely follows the Windows Insider program and tests new Insider builds to discover upcoming experimental features and upgrades. His past work includes long-term collaborations with reputed publications like Tom’s Hardware, and Windows Latest.
When not writing anything, he is busy watching new episodes of One Piece or searching for …
Published 1 minute ago
Abhishek is an author at XDA who covers computing.
He has loved computers since he got the Lenovo G570 in 2012. Abhishek holds a master’s degree in computer applications and began his writing career in 2018. He loves writing how-to articles, listicles, and informational posts on popular operating systems and web services.
He closely follows the Windows Insider program and tests new Insider builds to discover upcoming experimental features and upgrades. His past work includes long-term collaborations with reputed publications like Tom’s Hardware, and Windows Latest.
When not writing anything, he is busy watching new episodes of One Piece or searching for something binge-worthy.
Docker is an invaluable tool in a self-hosted setup, and I spend a lot of time managing containers and monitoring their activity. I previously built a Docker Swarm cluster and could monitor the container activity to some extent. However, the one thing that I miss is hardware resource consumption, and there’s no option for it in Portainer. I tried my luck with Uptime Kuma, which is a good way to monitor and get notifications about each container’s status. Sadly, it doesn’t include hardware resources monitoring.
One option is to use Prometheus and Grafana, but that is too overwhelming for my use case. It takes a lot of effort to set up, and I’m not a fan of its excessive resource usage. I found solace in Beszel, which is a lightweight Docker hardware resource monitoring tool. It’s become a must-have for all my machines running Docker, and here are a few reasons for it.
Easy to deploy and set up
Integrates nicely with Docker
My requirements are pretty basic. I only need to monitor container activity and resource usage from a single tool. I also don’t like putting in humongous effort to combine multiple services, adding information, and building dashboards. Fortunately, Beszel fits most of my needs and doesn’t need too much prying to get it right.
The first course of action is to set up a Beszel container that will track the activity of your Docker setup. Once it’s deployed, I must create a new machine, and since I need to monitor a Docker system, I’ll add details for that. There are no confusing options, and I can make it work by adding the hostname, IP address, and port.
Beszel generates a Docker compose file, which I can use to create another agent that will pull accurate data from my setup. You can even generate a Docker run command to do the same. I currently monitor both my Raspberry Pi and an old laptop running multiple containers, including Omni tools and NextCloud, apart from other useful ones.
So, I can get multiple device status monitoring in one tool without doing any sort of complex configuration. I can keep adding as I integrate new machines into my home setup, and they show up just fine on the dashboard.
If I compare it to Uptime Kuma, it’s not as simple as you might think. I need to add individual containers to Uptime Kuma one by one, and then I can monitor their status. It’s an uphill task when you have more than a dozen containers and have to configure them manually just to get a graph of what’s going on.
Lightweight footprint
Doesn’t strain the hardware
There’s no point in picking up a monitoring utility that’s eating up an astonishing amount of system resources. Prometheus and Grafana offer exceptional tracking and monitoring, but it comes at the expense of high memory consumption. I don’t have excessively powerful machines and prefer to keep the overall consumption on the lower side.
Uptime Kuma doesn’t use too much memory, but it can require upwards of 150 MiB to work. Beszel needs only 25–35 MiB for my workload, and that’s the primary reason why I am not looking anywhere else. You might argue that 150 MiB isn’t a big deal on 4GB or more memory systems.
Sadly, the tiny SBCs don’t have that luxury. I have a Pi Zero 2W handling a few containers, and it needs a lightweight tool like Beszel to have adequate free memory for actual tasks.
Seamless monitoring
A visually calm interface
Self-hosted tools rarely look nice, and Beszel is an exception to that notion. It’s got a minimalistic interface where it doesn’t throw everything at you in a single page. Rather, you get a list of machines running the Beszel agent at a glance, and you can toggle between table and grid views. There are buttons to switch to containers, smart devices, and other views.
I can directly click on a machine and view its resource consumption history with live monitoring. The graphs aren’t there for the namesake and register every tiny spike in the overall usage. I appreciate the fact that Beszel shows both the Docker system and the actual system usage. So, I get a good idea of the remaining resources and the minimum amount needed by my Docker containers to function. It also showcases a list of available containers along with status indicators.
This is only half the view, as Beszel has a fully automatic alert system hidden inside a different portal. You can pick a system and resource metric to monitor and build an alert system out of it. For example, if you want Beszel to alert you when the overall CPU consumption of a system crosses 90 percent, you build an alert with the said markers.
After enabling the alert, the Beszel dashboard will show a notification tile whenever one of the concerned systems hits the threshold. It’s a neat way to get alerts at a glance without digging into logs. You can also set up notifications via an SMTP server, but it doesn’t have as many options as Uptime Kuma.
A no-fuss monitoring tool
I hope the devs take a note from Beszel on how to make a tool that’s easy to set up and use. It doesn’t force me to do any kind of heavy lifting and integrates smoothly with Docker and other systems. I like the design choice, and it feels like a modern tool that anyone can use. It hides all the complexity and just gives you a settings panel and multiple live graphs to access.
Beszel is extremely frugal with system resources and doesn’t add extra burden to your already struggling home server setup. Monitoring multiple systems on the same network, along with support for all the popular operating systems, makes it a stellar pick for Docker setups.