In the past, we have covered quite a number of command-line monitoring tools in Linux. These include vmstat, htop and top command to mention a few. The top command is the most widely used command since it comes preinstalled and gives a real-time performance of the system in addition to displaying the running processes. In this guide, we will pay more attention to an intuitive and user-friendly command-line tool known as glances.
Based in Python, Glances is a free and opensource cross-platform command-line monitoring tool that provides a wealth of information about your system’s performance. You can monitor system metrics such as memory & CPU utilization, network bandwidth, Disk I/O, File systems, and running processes to mention a few.
Glances displays metrics in an intuitive and visually appealing format. It prints out detailed information about metrics such as:
- System’s uptime & IP address ( Private & public )
- Memory utilization ( Main memory , swap , available memory ).
- CPU utilization.
- Disk mount points.
- Disk I/O & read and write speeds.
- CPU load average , date and time
- Running processes including active and sleeping processes.
- Network bandwidth ( Including upload and download rates ).
How to install Glances on Linux distributions
Glances is not installed by default. Let’s see how we can install Glances in major Linux distributions.
On Ubuntu / Debian / Mint
For newer versions of Ubuntu & Debian, simply type:
$ sudo apt install -y glances
For older versions, Add the PPA
$ sudo apt-add-repository ppa:arnaud-hartmann/glances-stable
Next, update the package lists and install glances as shown.
$ sudo apt update $ sudo apt install -y glances
On CentOS 8 / RHEL 8
For CentOS & RHEL, first install the EPEL package:
$ sudo dnf install epel-release
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Thereafter, update the repositories.
$ sudo dnf update
And install glances.
$ sudo dnf install -y glances
Glances is also available as a snap package. Thus, it can be installed across all Linux systems with snap enabled as shown:
$ sudo snap install glances
In addition, since Glances is written in Python, you can also use the pip package manager to install it as shown. But first ensure pip is installed on your system.
$ pip3 install glances
For other installation procedures check out this documentation on GitHub.
Monitor system metrics in Standalone mode (local system)
Launching Glances to monitor your local system (standalone mode) is quite a breeze. Simply run the glances command below without any command options.
Right off the bat, you can see some system metrics starting with the private & public IP addresses at the very top and the uptime at the top right corner of the terminal. Just below that you can view other system metrics such as CPU & memory utilization, network bandwidth rate, running processes, disk volumes etc.
Below is a screenshot from a CentOS 8 system.
To view these statistics on a web browser, use the -w option as shown. This will generate a link as shown which you will copy to your web browser
$ glances -w
This starts glances on port 61208 and render the statistics on the browser as shown.
You can secure the web GUI, by configuring a password to allow authorized users only using the –password flag.
$ glances -w --password
The username , by default, is glances
The next time to try to log in, you will be prompted for a password as shown.
Monitor system metrics in Server mode
The glances command can also be used to monitor a remote host. Just pass the -s option to initialize glances in server mode as seen below.
From the client PC, run the glances command as shown to access the server’s metrics.
$ glances -c server-IP-address
Below is a screenshot of the server metrics from Windows Command prompt shell.
Glances makes it easier to spot and narrow down to an issue through the use of color codes in displaying the system metrics You might be wondering what the are various color-codes imply on the glances , well here’s a breakdown.
- GREEN: OK (everything is fine)
- BLUE: CAREFUL (need attention)
- VIOLET: WARNING (alert)
- RED: CRITICAL (critical)
The thresholds are configured , by default , as
These are not cast in stone and can be further customized in the glances configuration file at the /etc/glances/glances.conf path.
Glances is a handy tool, and in more ways feels like an improved version of top or htop command. It provides dynamic real time system metrics which can be rendered on a web browser & retrieved remotely on command-line.
$ glances -h