The “Manual SSH” Nightmare Whenever a Server Misbehaves
About a year ago, I was managing a cluster of 10 VPS running microservices. Whenever the system showed signs of sluggishness, I’d tediously open the terminal, SSH into each one, and run htop to check CPU, df -h for disk, and iotop for storage activity. This repetitive process was incredibly time-consuming.
The breaking point came one Sunday evening when a server’s disk hit 100% due to log bloat. Lacking a visual dashboard, I spent over two hours troubleshooting just to identify the hanging application. After that incident, I realized I needed a lightweight, easy-to-install tool that displayed all metrics on a single browser screen.
Why Traditional Commands Like top and htop are Starting to Fall Short
Tools like top or iostat are powerful but reveal weaknesses as the number of servers grows:
- Fragmented Information: You need one command for network and another for RAM. You lack a comprehensive overview.
- Lack of Persistence: The moment you close the SSH window, the data is gone. You can’t tell if the CPU spiked 10 minutes ago.
- Hard to Share: You can’t grant SSH access to every colleague who just needs to check the server status.
Finding the Balance Between Features and Resources
I tried the Prometheus + Grafana combo. It’s professional but too heavy for small projects. Running exporters and the database typically consumes 500MB to over 1GB of RAM—not a small amount for low-spec VPS.
Netdata has a beautiful interface but can feel cluttered with too many tiny charts. I needed something in the middle: lighter than Netdata, more intuitive than htop, and accessible instantly via the web. That’s when I found Glances.
Glances: A Versatile Dashboard for Linux Admins
After six months of production use, I’m genuinely satisfied. Built with Python, Glances aggregates everything from CPU, Load, and RAM to Disk I/O, Network, and Docker containers into a sleek interface.
Step 1: Install Glances with a Single Command
The fastest way is using the auto-install script, which sets up dependencies like bottle (for the web server) and psutil (for system metrics).
curl -L https://bit.ly/glances | /bin/bash
If you prefer using pip for stricter version control:
sudo apt update && sudo apt install python3-pip -y
sudo pip3 install glances[all]
Pro tip: The [all] option installs extra modules to export data to CSV or external databases later.
Step 2: Activate the Web Dashboard
This is the killer feature. Instead of staring at a black terminal, run:
glances -w
Glances will open port 61208. Simply visit http://SERVER-IP:61208. The interface uses green, yellow, and red color codes, making it extremely easy to monitor.
Step 3: Configure Systemd for Stable Background Execution
To ensure the dashboard is always available, even after a reboot, we should create a service.
sudo nano /etc/systemd/system/glancesweb.service
Paste the following content (adjust the User if necessary):
[Unit]
Description=Glances Web Interface
After=network.target
[Service]
ExecStart=/usr/local/bin/glances -w
Restart=always
User=root
[Install]
WantedBy=multi-user.target
Enable the service:
sudo systemctl daemon-reload
sudo systemctl enable --now glancesweb
Practical Tips for Using Glances Effectively
Avoiding “Alert Fatigue”
By default, Glances flags CPU usage in red at 80%. For many data-heavy apps, 90% is normal. If the screen is always red, you’ll start ignoring actual issues.
The fix: Customize the config file at /etc/glances/glances.conf. I usually raise the WARNING threshold for CPU to 90% to reduce noise.
Securing the Web UI: Don’t Leave the Door Open
Exposing port 61208 to the internet without a password is a major risk. Anyone could see exactly what’s running on your server.
I usually apply two layers of protection:
- Set a password directly: Use the command
glances -w --password. - Block with Nginx: Run Glances on localhost and use Nginx as a Reverse Proxy to restrict IP access or add Basic Auth.
# Sample Nginx configuration
location /glances/ {
proxy_pass http://127.0.0.1:61208/;
auth_basic "Login Required";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Monitoring Docker Container Resources
If you use Docker, Glances lists the CPU/RAM usage of each container in detail. You’ll instantly see which container is hogging resources without constantly typing docker stats.
Conclusion
Glances doesn’t completely replace large-scale centralized monitoring systems, but it’s an incredibly effective “first lookout post.” It’s fast, lightweight, and practical. Don’t wait for a server crash to install it. Take 5 minutes to set it up today—it’ll help you sleep better on those weekend nights.

