Glances is a free and open source software aimed at monitoring and collecting operating system statistics. This cross-platform system monitoring tool is written in the Python programming language and based on the curses terminal control library. It uses psutil (a cross-platform process and system utilities module) to collect data from the system.
Glances can run on almost any platform, including GNU/Linux, FreeBSD, Windows, OS X. Remote monitoring could be done via terminal or web interface. One of the main Glances’ objectives is to display “a maximum of information in a minimum of space”. For example, all main data can be represented in a classical 80x24 terminal. Naturally, depending on the terminal size this tool will adjust display of information dynamically.
An XML-RPC server and RESTFUL/JSON are basis for Glances API and can be used by another client software. This monitoring tool comes with a dedicated Grafana dashboard. It is also possible to export all system statistics into CSV file or to StatsD, OpenTSDB, InfluxDB, RabbitMQ servers.
Glances can work in a client/server mode for remote monitoring. In this case, limits are set by the server side, otherwise you can set:
- the bind address and listening TCP port in server mode;
- the TCP port of the server in client mode.
Among the interesting features Glances provides is the manual threshold settings for color codes. The monitoring tool offers four color statuses that indicate the bottleneck in the system: green - everything works fine, blue - needs attention, violet - alert/warning, and red - critical. The thresholds are stored in configuration file and default values can be customized for user’s needs. This is very useful if you want to create different views for management of a big number of servers.
Glances features:
- The quicklook plugin offers general overview of CPU and memory (virtual and swap).
- Processes list: active, sleeping, top, etc., including data on CPU/memory usages, names and location of apps.
- CPU data (system core programs, user related apps, and idle programs).
- The average CPU load for the last 1/5/15 minutes.
- Memory information: RAM, swap, free memory etc.
- Network interface: network download/upload rates of network connections.
- Disk I/O related information on speed.
- Currently mounted devices disk usages.
- Sensors information (using lm-sensors, hddtemp and batinfo).
- Status of Raid controller, if it is detected.
- Docker containers monitoring (via Docker API).
Interested in more?
Glances is a Python-based resources-friendly system monitoring tool. Using it a system administrator can monitor CPU, memory, load average, network interfaces, disk I/O, processes list, file system spaces utilization, etc. The concept of client/server mode, API, and threshold settings allow you to have a customized central point that collects and displays system data. You can get more information on the Glances website.