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:
curl -L https://bit.ly/glances | /bin/bash
O bien
wget -O- https://bit.ly/glances | /bin/bash
Otra opción es utilizar la herramienta PIP, de la que ya hemos hablado.
Simplemente escribiendo:
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:
pip install 'glances[action,browser,cloud,cpuinfo,docker,export,folders,gpu,graph,ip,raid,snmp,web,wifi]'
Para actualizar Glances debemos utilizar:
pip install --upgrade glances
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:
sudo apt install glances
Podéis ver todo el proceso en este pequeño GIF, creado con la herramienta Peek
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:
yum -y install glances
Instalación de Glances en FreeBSD
En el sistema del demonio rojo, debemos instalar:
pkg install py27-glances
También podemos instalarlo vía ports:
cd /usr/ports/sysutils/py-glances/
make install clean
Instalación desde las fuentes:
También tenemos la posibilidad de descargar los ficheros fuente y compilarlos:
wget https://github.com/nicolargo/glances/archive/vX.Y.tar.gz -O - | tar xz
cd glances-*
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:
glances
De esta manera veremos la herramienta 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”
glances -t 2
Glances incorpora diferentes filtros, que se pueden utilizar vía atajos de teclado:
m: Ordenamos los procesos por uso de memoria
p: Ordenamos los procesos por nombre
c: Se ordenan los procesos por uso de CPU
d: Muestra u oculta los datos I/O de disco
a: Ordena los procesos de forma automática
f: Muestra u oculta información el sistema de ficheros
i: Ordena los procesos por el uso de I/O de disco
s: Muestra u oculta información de los sensores
l: Muestra u oculta información de los registros (logs)
n: Muestra u oculta información de las interfaces de red
x: Elimina los registros en estado “Warning” o “Critical”
h: Muestra u oculta la pantalla de ayuda
q: Salida
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’
pip install bottle
#o
pip3 install bottle
Una vez hecho esto:
glances -w
Con el resultado:
Monitorizar sistemas remotos con Glances
Podemos utilizar la herramienta para monitorear sistemas remotos, utilizando el parámetro “-s”, desde el host a controlar:
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:
glances -c ip-equipo-remoto
En la imagen podéis ver una muestra del monitoreo de un host remoto, en este caso una RaspberriPi:
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