Monitoreo multiplataforma con Glances

Glances es una herramienta de monitoreo multiplataforma, que tiene como objetivo presentar una gran cantidad de información a través de la consola o vía interfaz basada en web. La información se adapta dinámicamente en función del tamaño de la interfaz de usuario.

También puede funcionar en modo cliente / servidor. El monitoreo remoto se puede realizar a través de terminal, interfaz web o API (XML-RPC y RESTful). Las estadísticas también se pueden exportar a archivos o bases de datos externas de tiempo y valor.

Está escrito en Python y utiliza diversas bibliotecas para obtener información de su sistema. Se basa en una arquitectura abierta donde los desarrolladores pueden agregar nuevos complementos o exportar módulos.

¿Qué es Glances y cómo funciona?

Al ser multiplataforma puede funcionar en nuestros sistemas favoritos del Ñu y el Pingüino, en sistemas *BSD, Microsoft Windows y macOS. Debemos tener en cuenta que está escrito en Python y que además utiliza la librería psutil, de la cual extrae la información del sistema.

Con esta herramienta podemos monitorear el promedio de carga del equipo, del uso de la memoria, de la CPU, la escritura y lectura en disco, las interfaces de red, los dispositivos montados, el espacio en disco, además de visualizar los principales procesos del sistema.

Configurar umbrales de alerta

Además, tiene como característica principal la capacidad de establecer umbrales de alerta, utilizando un fichero de configuración. En dicho archivo podemos utilizar cuatro opciones que se muestran en diferentes colores: OK (verde), precaución (azul), advertencia (violeta) y crítico (rojo)

Estos umbrales se establecen en niveles de 50, 70 y 90, esto es para precaución, advertencia y crítico, respectivamente. Para ello debemos modificar el fichero ubicado en «/etc/glances/glances.conf»

Instalación de Glances en GNU/Linux

Glances se puede instalar de diferentes maneras. La primera es utiliza el script de instalación facilitado por los creadores de la herramienta. Para ello nos debemos ir a la consola de comandos y ejecutar:

  1. curl -L https://bit.ly/glances | /bin/bash

O bien

  1. wget -O- https://bit.ly/glances | /bin/bash

Otra opción es utilizar la herramienta PIP, de la que ya hemos hablado.

Simplemente escribiendo:

  1. pip install glances

Nota importante: Al usar PIP, debemos tener en cuenta que depende de la distribución que utilicemos debemos cumplir con algunas dependencias, sobre todo con la librería psutil. En sistemas similares a Debian y Ubuntu, debemos tener instalado el paquete “python-dev”; en sistemas RHEL, Centos y similares, debemos instalar el paquete “python-devel”

Si queremos que Glances se encargue de controlar la Wifi, debemos instalar la serie de paquetes «wireless-tools» En caso de querer que monitorice lo máximo que pueda, podemos instalar librerías extras:

  1. pip install 'glances[action,browser,cloud,cpuinfo,docker,export,folders,gpu,graph,ip,raid,snmp,web,wifi]'

Para actualizar Glances debemos utilizar:

  1. pip install --upgrade glances
  2. pip install --upgrade glances[...]

Instalación en Debian, Ubuntu, Linux Mint y similares

En las distribuciones más populares con paquetería DEB, el paquete de Glances ya se encuentra en los repositorios principales. Como es el caso de Linux Mint LMDE, que es el que tengo instalado en mi laptop actualmente.

Su instalación es así de simple:

  1. sudo apt install glances

Podéis ver todo el proceso en este pequeño GIF, creado con la herramienta Peek

Muestra de instalación de Peek en Linux Mint LMDE

Instalación de Glances en RHLE, Centos y ScientificLinux

Para las distribuciones del sombrero rojo debemos habilitar el repositorio EPEL, una vez hecho solo hemos de instalar:

  1. yum -y install glances

Instalación de Glances en FreeBSD

En el sistema del demonio rojo, debemos instalar:

  1. pkg install py27-glances

También podemos instalarlo vía ports:

  1. cd /usr/ports/sysutils/py-glances/
  2. make install clean

Instalación desde las fuentes:

También tenemos la posibilidad de descargar los ficheros fuente y compilarlos:

  1. wget https://github.com/nicolargo/glances/archive/vX.Y.tar.gz -O - | tar xz
  2. cd glances-*
  3. python setup.py install

Existen también tipos de instalación para Docker, macOS, Windows, Android, Chef y Ansible.

Trabajar con Glances

Tras realizar la instalación, solo debemos ejecutar el siguiente comando:

  1. glances

De esta manera veremos la herramienta en funcionamiento:

Glances en funcionamiento

Para salir de ella podemos utilizar ESC, «q» o «Ctrl+C»

Por defecto la herramienta refresca la información cada 1 segundo. Si queremos ampliar el tiempo, podemos utilizar el parámetro “-t

  1. glances -t 2

Glances incorpora diferentes filtros, que se pueden utilizar vía atajos de teclado:

  1. m: Ordenamos los procesos por uso de memoria 
  2. p: Ordenamos los procesos por nombre
  3. c: Se ordenan los procesos por uso de CPU
  4. d: Muestra u oculta los datos I/O de disco
  5. a: Ordena los procesos de forma automática
  6. f: Muestra u oculta información el sistema de ficheros
  7. i: Ordena los procesos por el uso de I/O de disco
  8. s: Muestra u oculta información de los sensores
  9. l: Muestra u oculta información de los registros (logs)
  10. n: Muestra u oculta información de las interfaces de red
  11. x: Elimina los registros en estado “Warning” o “Critical”
  12. h: Muestra u oculta la pantalla de ayuda
  13. q: Salida
  14. w: Elimina los registros en estado “Warning”

Utilizar Glances vía web

Para ver la información que ofrece la herramienta a través de un navegador web, debemos ejecutarla con el parámetro “-w”, para a posteriori ir a nuestro navegador favorito y escribir: http://:61208

Nota: Para que funcione correctamente esta parte, debemos añadir el modulo de Python ‘bottle’

  1. pip install bottle
  2. #o
  3. pip3 install bottle

Una vez hecho esto:

  1. glances -w

Con el resultado:

Glances vía web

Monitorizar sistemas remotos con Glances

Podemos utilizar la herramienta para monitorear sistemas remotos, utilizando el parámetro “-s”, desde el host a controlar:

  1. glances -s

Debemos tener en cuenta que los sistemas remotos deben tener habilitado el puerto 61209, que es el que utiliza la herramienta para comunicarse.

Desde el equipo que usamos como central ejecutamos:

  1. glances -c ip-equipo-remoto

En la imagen podéis ver una muestra del monitoreo de un host remoto, en este caso una RaspberriPi:

Muestra de monitoreo de un host remoto

Y eso es todo por hoy. Espero que el artículo os haya parecido interesante y os pueda servir en algún momento.

Fuentes consultadas

Maketecheasier.com – 3 of the Best System Monitor Tools for Ubuntu
Github.com – Glances
Devops.ionos.com – How to Install Glances System Monitoring Software on CentOS 7