Glances Alternativa top/htop para GNU/Linux, BSD, MacOS y Windows
Glances Alternativa top/htop para GNU/Linux, BSD, MacOS y Windows

Glances: Alternativa a top/htop para GNU/Linux, BSD, MacOS y Windows

Glances es una herramienta de monitorización multiplataforma cuyo objetivo es presentar una gran cantidad de información de monitorización a través de una interfaz basada en curses o en la web. La información se adapta dinámicamente en función del tamaño de la interfaz de usuario.

Interfaz de uso de Glances
Interfaz de uso de Glances

También puede funcionar en modo cliente/servidor. La monitorización remota puede realizarse a través de un terminal, una interfaz web o una API (XML-RPC y RESTful). Las estadísticas también se pueden exportar a archivos o bases de datos externas de tiempo/valor.

Características y funciones de Glances
Características y funciones de Glances

Glances está escrito en Python y utiliza bibliotecas para obtener información de tu sistema. Se basa en una arquitectura abierta en la que los desarrolladores pueden añadir nuevos plugins o módulos de exportación.

Requisitos

  • python>=2.7 o python>=3.4
  • psutil>=5.3.0 (mejor con la última versión)
  • defusedxml (para poder parchear xmlrpc)
  • future (para el soporte de Python 2)

Nota para los usuarios de Python 2.6

Glances ya no soporta Python 2.6. Por favor, actualiza a una versión mínima de Python 2.7/3.4+ o baja a Glances 2.6.2 (última versión con soporte para Python 2.6).

Aviso

La versión 4.0 de Glances ya no es compatible con Python 2.x.

Dependencias opcionales:

  • bernhard (para el módulo de exportación de Riemann)
  • bottle (para el modo de servidor web)
  • cassandra-driver (para el módulo de exportación Cassandra)
  • chevron (para la función de script de acción)
  • couchdb (para el módulo de exportación de CouchDB)
  • docker (para el soporte de monitorización de Docker) .
  • elasticsearch (para el módulo de exportación de Elastic Search)
  • graphitesender (para el módulo de exportación de Graphite)
  • hddtemp (para el soporte de la monitorización de la temperatura de los discos duros)
  • influxdb (para el módulo de exportación InfluxDB versión 1)
  • influxdb-client (para el módulo de exportación InfluxDB versión 2)
  • kafka-python (para el módulo de exportación de Kafka)
  • netifaces (para el plugin de IP)
  • py3nvml (para el plugin de GPU)
  • pika (para el módulo de exportación RabbitMQ/ActiveMQ)
  • potsdb (para el módulo de exportación OpenTSDB)
  • prometheus_client (para el módulo de exportación de Prometheus)
  • py-cpuinfo (para el módulo Quicklook CPU info)
  • pygal (para el módulo de exportación de gráficos)
  • pymdstat (para el soporte de RAID)
  • pysnmp (para el soporte de SNMP)
  • pySMART.smartx (para el soporte de HDD Smart)
  • pyzmq (para el módulo de exportación ZeroMQ)
  • requests (para los módulos de exportación Ports, Cloud y RESTful)
  • scandir (para el plugin Folders)
  • sparklines (para la opción de minigráficos de Quick Plugin)
  • statsd (para el módulo de exportación StatsD)
  • wifi (para el plugin wifi)
  • zeroconf (para el modo autodiscover)

Instalación

Hay varios métodos para probar/instalar Glances en tu sistema. ¡Elige tu arma!

PyPI: La forma estándar

Glances está en PyPI. Al utilizar PyPI, estarás utilizando la última versión estable.

Para instalar Glances, simplemente usa pip:

pip install --user glances

Nota: Se necesitan las cabeceras de Python para instalar psutil, una dependencia de Glances. Por ejemplo, en Debian/Ubuntu es necesario instalar primero el paquete python-dev (python-devel en Fedora/CentOS/RHEL). Para Windows, basta con instalar psutil desde el archivo binario de instalación.

https://github.com/giampaolo/psutil

Nota 2 (para el plugin Wifi): Si quieres usar el plugin Wifi, necesitas instalar el paquete wireless-tools en tu sistema.

También puede instalar las siguientes librerías para poder utilizar características opcionales (como la interfaz web, los módulos de exportación…):

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

Para actualizar Glances a la última versión:

pip install --user --upgrade glances
pip install --user --upgrade glances[…]

Si necesitas instalar Glances en una ubicación de usuario específica, utiliza:

export PYTHONUSERBASE=~/mylocalpath
pip install --user glances

Si eres administrador y quieres instalar Glances para todos los usuarios:

sudo pip install glances

La rama de desarrollo actual también se publica en el índice de paquetes test.pypi.org. Si quieres probar la versión de desarrollo, introduce:

pip install --user -i https://test.pypi.org/simple/ Glances

Script de instalación automática de Glances: la forma más fácil

Para instalar tanto las dependencias como la última versión de Glances lista para producción (también conocida como rama maestra), sólo tienes que introducir la siguiente línea de comandos:

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

O,

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

Nota: Esto sólo es compatible con algunas distribuciones de GNU/Linux y Mac OS X. Si quieres dar soporte a otras distribuciones, por favor contribuye a glancesautoinstall.

https://github.com/nicolargo/glancesautoinstall

Docker: la forma divertida

Los contenedores de Glances están disponibles. ¡Puedes usarlo para monitorizar tu servidor y todos tus otros contenedores!

Consigue el contenedor Glances:

docker pull nicolargo/glances:<version>

Versiones disponibles en el repositorio Docker Hub:

  • nicolargo/glances:latest para una versión de imagen básica de Debian Glances con dependencias mínimas
  • nicolargo/glances:alpine-latest para una versión básica de la imagen de Glances en Alpine con dependencias mínimas
  • nicolargo/glances:latest-full para una versión completa de la imagen de Debian Glances con todas las dependencias
  • nicolargo/glances:alpine-latest-full para una versión completa de la imagen de Alpine Glances con todas las dependencias

También puedes especificar una versión sustituyendo latest por 3.2.6.3 (por ejemplo).

Ejecuta la última versión del contenedor Glances en modo consola:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it nicolargo/glances:latest-full

Además, si quieres utilizar tu propio archivo glances.conf, puedes crear tu propio Dockerfile:

FROM nicolargo/glances:latest
COPY glances.conf /etc/glances.conf
CMD python -m glances -C /etc/glances.conf $GLANCES_OPT

Alternativamente, puedes especificar algo en la misma línea con las opciones de ejecución de Docker:

docker run -v `pwd`/glances.conf:/etc/glances.conf -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host -it nicolargo/glances:latest-full

Donde pwd/glances.conf es un directorio local que contiene tu archivo glances.conf.

Ejecuta el contenedor en modo servidor web (fíjate en la variable de entorno GLANCES_OPT que establece los parámetros para el comando de glances):

docker run -d --restart="always" -p 61208-61209:61208-61209 -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host nicolargo/glances:latest-full

GNU/Linux

Glances está disponible en muchas distribuciones de Linux, por lo que deberías poder instalarlo con tu gestor de paquetes favorito. Ten en cuenta que cuando utilices este método el paquete del sistema operativo para Glances puede no ser la última versión.

FreeBSD

Para instalar el paquete binario:

# pkg install py38-glances

Para instalar Glances desde ports:

# cd /usr/ports/sysutils/py-glances/
# make install clean

macOS

Si no quieres utilizar el script glancesautoinstall, sigue este procedimiento.

Los usuarios de macOS pueden instalar Glances utilizando Homebrew o MacPorts.

Homebrew

$ brew install glances

MacPorts

$ sudo port install glances

Windows

Instala Python para Windows (Python 2.7.9+ y 3.4+ vienen con pip) y luego ejecuta el siguiente comando:

$ pip install glances

Android

Necesitas un dispositivo rooteado y la aplicación Termux (disponible en Google Play Store).

Inicia Termux en tu dispositivo e ingresa:

$ apt update
$ apt upgrade
$ apt install clang python
$ pip install bottle
$ pip install glances

e iniciar Glances:

$ glances

También puedes ejecutar Glances en modo servidor (-s o -w) para monitorizar remotamente tu dispositivo Android.

Código fuente

Para instalar Glances desde la fuente:

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

Nota: Para instalar psutil se necesitan las cabeceras de Python.

Chef
Un impresionante cookbook Chef está disponible para monitorear tu infraestructura: https://supermarket.chef.io/cookbooks/glances (gracias a Antoine Rouyer)

Puppet
Puedes instalar Glances usando Puppet: https://github.com/rverchere/puppet-glances

Ansible
Hay un rol de Glances Ansible disponible: https://galaxy.ansible.com/zaxos/glances-ansible-role/

Uso de Glances

Para el modo autónomo, basta con ejecutar:

$ glances

Para el modo de servidor web, ejecuta

$ glances -w

e introduce la URL http://<ip>:61208 en tu navegador web favorito.

Para el modo cliente/servidor, ejecuta

$ glances -s

en el lado del servidor, y ejecuta:

$ glances -c <ip>

en el del cliente.

También puedes detectar y mostrar todos los servidores de Glances disponibles en tu red o definidos en el archivo de configuración:

$ glances --browser

También puedes mostrar las estadísticas en bruto en stdout:

$ glances --stdout cpu.user,mem.used,load
cpu.user: 30.7
mem.used: 3278204928
load: {'cpucore': 4, 'min1': 0.21, 'min5': 0.4, 'min15': 0.27}
cpu.user: 3.4
mem.used: 3275251712
load: {'cpucore': 4, 'min1': 0.19, 'min5': 0.39, 'min15': 0.27}
...

o en formato CSV gracias a la opción stdout-csv:

$ glances --stdout-csv now,cpu.user,mem.used,load
now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15
2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04
2018-12-08 22:04:23 CEST,5.4,5949136896,4,1.04,0.99,1.04
...

o en un formato JSON gracias a la opción stdout-json (atributo no soportado en este modo para tener un verdadero objeto JSON en salida):

$ glances --stdout-json cpu,mem
cpu: {"total": 29.0, "user": 24.7, "nice": 0.0, "system": 3.8, "idle": 71.4, "iowait": 0.0, "irq": 0.0, "softirq": 0.0, "steal": 0.0, "guest": 0.0, "guest_nice": 0.0, "time_since_update": 1, "cpucore": 4, "ctx_switches": 0, "interrupts": 0, "soft_interrupts": 0, "syscalls": 0}
mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416}
...

y RTFM, siempre.

Documentación

Para obtener una documentación completa, consulta el sitio web de readthedocs.

https://github.com/nicolargo/glances

My Cart Close (×)

Tu carrito está vacío
Ver tienda