Header Ads

Glances

Glances es una herramienta multiplataforma de monitoreo de recursos en tiempo real, similar a BpyTop, algo esencial para garantizar un rendimiento óptimo y prevenir problemas de estabilidad en el sistema operativo Linux. Usa la biblioteca psutil para recopilar y presentar una gran cantidad de información de monitoreo en el terminal o la interfaz Web. Y como dato curioso, es web responsive, como se muestra en la imagen del encabezado (la información se adapta dinámicamente según el tamaño de la interfaz de usuario).
Instalación
Glances se puede instalar fácilmente en sistemas Linux mediante el uso del gestor de paquetes de su distribución, aunque el proyecto ofrece muchas maneras de instalarlo. Por ejemplo, vía bash:
curl -L https://bit.ly/glances | /bin/bash
# or
wget -O- https://bit.ly/glances | /bin/bash
Y si usa Ubuntu 22.04 deberá corregirlo. Para esto lo descargamos:
wget https://raw.githubusercontent.com/nicolargo/glancesautoinstall/master/install.sh
Y reemplazamos:
python-pip python-dev
por:
python3-pip python-dev-is-python3
Y tal vez necesite otros reemplazos. Para eliminarlo, ejecute:
sudo pip uninstall glances
sudo rm -rf /usr/local/bin/glances /usr/bin/glances
Este método, como pueden apreciar, presenta problemas en Ubuntu. Sugerimos entonces que, si usa esta distro, simplemente ejecute:
sudo apt install glances
Y se instalará la versión (a la fecha):
glances -V
Glances v3.2.4.2 with PsUtil v5.9.0
Log file: /home/user/.local/share/glances/glances.log
Para eliminarlo:
sudo apt-get purge --auto-remove glances
Para iniciarlo en el terminal, escriba en el terminal  glances y saldrá la siguiente ventana:
Glances Terminal (-s)
Aquí podemos apreciar toda la información que brinda este programa de monitoreo.
Consideramos que es más práctico ejecutar este aplicativo en el navegador, muy útil para sistemas sin escritorio. Para hacerlo, ejecútelo con la opción -w:
glances -w &
Y en el navegador la IP:puerto del servidor. Ejemplo: http://192.168.20.105:61208
Para que refresque cada 10 segundos: http://192.168.20.105:61208/10
Pero si no queremos enredarnos, usaremos el servicio de systemd. Habilitamos el servicio:
sudo systemctl enable glances.service
Editamos el archivo del servicio:
sudo nano /usr/lib/systemd/system/glances.service
Y modificamos la siguiente línea:
[Service]
ExecStart=/usr/bin/glances -s -B 127.0.0.1
por:
ExecStart=/usr/bin/glances -w -B 127.0.0.1 -t 10
Donde -t 10 son los segundos de refresco, -w es para iniciar la interfaz web (ya que -s es para el terminal) y -B es la dirección IP.
Y recargamos y reiniciamos:
sudo systemctl daemon-reload
sudo systemctl restart glances.service
# or
sudo /etc/init.d/glances restart
Y verificamos que esté activo y corriendo:
sudo systemctl status glances.service
● glances.service - Glances
     Loaded: loaded (/lib/systemd/system/glances.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-04-04 11:50:22 -05; 48s ago
       Docs: man:glances(1)
             https://github.com/nicolargo/glances
   Main PID: 593518 (glances)
      Tasks: 2 (limit: 18727)
     Memory: 40.8M
        CPU: 2.480s
     CGroup: /system.slice/glances.service
             └─593518 /usr/bin/python3 /usr/bin/glances -s -B 127.0.0.1 -t 10

abr 04 11:50:22 mst systemd[1]: Started Glances.
Si no pone dirección IP en el archivo del servicio, la dirección de enlace predeterminada es 0.0.0.0 (Glances escuchará en todas las interfaces de red disponibles) y el puerto TCP es 61209. Y, por tanto, el acceso será por http://127.0.0.1:61208/ o por http://0.0.0.0:61208/, o la IP del equipo donde esté instalado.
Para cambiar el puerto, nuevamente edite el archivo del servicio y agregue el puerto:
[Service]
ExecStart=/usr/bin/glances -w -B 127.0.0.1 -t 10 -p 1212
Donde el parámetro -p es el puerto que usará el aplicativo. Ahora puede acceder por http://127.0.0.1:1212/
Nota:
  1. No use http://localhost:61209 porque no es una dirección IP
  2. Asegúrese de abrir el puerto en su firewall
  3. sudo ufw allow 61208/tcp
    sudo ufw reload
    
  4. Verifique que no haya varias instancias de Glance corriendo para evitar el Error: Can not ran Glances Web server ([Errno 98] La dirección ya se está usando)". En ese caso, ejecute:
  5. sudo pkill glances
    
También puede proteger el servidor Glances con password en ~/.config/glances/.. Consulte AQUÍ para mayor información
[passwords]
# Define the passwords list
# Syntax: host=password
# Where: host is the hostname
#        password is the clear password
# Additionally (and optionally) a default password could be defined
localhost=mylocalhostpassword
default=mydefaultpassword
Lo malo
Muchos usuarios han reportado que al acceder a la interfaz web, la página sale en blanco. Resulta que por políticas de Debian (y Ubuntu hace lo que haga Debian) los paquetes no deberían incluir archivos preconstruidos, por esta razón, eliminaron los archivos .js del paquete Glances, lo cual inutiliza la interfaz WEB-UI.
Mientras se soluciona este bug (que tendría que ocurrir un milagro para que suceda en la versión de Ubuntu/Debian), hay dos opciones:
1. Instalarlo vía pip, que puede llegar a ser un poco engorroso para los no familiarizados con el tema, ya que se recomienda crear un entorno virtual:
pip install --user 'glances[action,browser,cloud,cpuinfo,docker,export,folders,gpu,graph,ip,raid,snmp,web,wifi]'
pip install --user --upgrade glances
2. Instalarlo vía apt y descargar el paquete que restablece los archivos .js, eliminados por Debian/Ubuntu (consulte AQUÍ la solución):
wget -c https://github.com/nicolargo/glances/archive/refs/tags/v3.2.7.tar.gz
tar -xzf v3.2.7.tar.gz
sudo cp -r glances-3.2.7/glances/outputs/static/public/ /usr/lib/python3/dist-packages/glances/outputs/static/
Refrescamos la página y ya se puede visualizar:
Glances Web-UI
Bash Script
Resumiendo lo anterior, para instalarlo en Ubuntu (22.04) cree un bash script (glances.sh), dele permisos de ejecución (sudo chmod +x glances.sh) y córralo con privilegios (sudo ./glances.sh). Este es su contenido:
#!/usr/bin/env bash
apt install -y glances
pkill glances &> /dev/null
wget -c https://github.com/nicolargo/glances/archive/refs/tags/v3.2.7.tar.gz
tar -xzf v3.2.7.tar.gz
cp -r glances-3.2.7/glances/outputs/static/public/ /usr/lib/python3/dist-packages/glances/outputs/static/
systemctl enable glances.service
sed -i '/ExecStart=\/usr\/bin\/glances -s -B 127.0.0.1/c\ExecStart=\/usr\/bin\/glances -w -B 127.0.0.1 -t 10' /usr/lib/systemd/system/glances.service
systemctl daemon-reload
systemctl start glances.service
echo "Glances Access: http://127.0.0.1:61208"
Otras cosas inútiles
Glances muestra mucha información esencial, pero hay otras cosas que pueden ser algo "confusas", por llamarlas de alguna manera. Es el caso de extrañas alertas de tipo WARNING (or CRITICAL) on CPU_IOWAIT.
Alerta CPU_IOWAIT en un proxy HPE Proliant G9
Según el Issue #1214, "en un sistema muy rápido, en su mayoría inactivo, escribir en discos giratorios a menudo hace que Glances genere alertas CPU_IOWAIT críticas, simplemente porque escribir en discos giratorios es lento y la CPU no está haciendo nada más en ese momento. Sin embargo, estas alertas en realidad no significan que algo esté mal". 
Mmm. Si no significan nada y no debemos preocuparnos, entonces ¿para qué las muestran?. ¿Tal vez para atormentar a los sysadmins?. Como dice Jorge Pinarello: "Son preguntas que jamás obtendrán respuestas; ¿está claro? Ok Polilla".
En el Issue #2330, el creador nos sugiere que, como ningún sistema es igual y no tiene los mismos valores, entonces subirlos (traducción: para que dejen de joder):
sudo nano /etc/glances/glances.conf
[cpu]
total_careful=65 # subir a 70 o 75
total_warning=75 # subir a 80 o 85
total_critical=85 # subir a 90 o 95
sudo service glances restart
Otra cosa que hace Glances es mostrar la memoria virtual. Y no se asusten si ven algo como esto:
Memoria Virtual (VIRT)
En la imagen anterior vemos como Chrome se traga "1.10T" (TB) en tan solo una sola pestaña, como se muestra en la columna VIRT en un PC que tiene 16 GB RAM con 500 GB de SSD... ¿WTF?
Resulta que, como bien lo explican AQUÍ, la "memoria virtual" aquí no significa "intercambio" o "archivo de paginación" (como en Windows). Aquí significa "espacio de direcciones virtual abstracto", por lo tanto, no corresponde a la asignación de RAM física u otra cosa (también conocido como 'overcommit' en Linux), permaneciendo en su mayoría asignados a una sola página "cero". 
O sea, que esto también es normal, como lo afirma su creador en el Issue #2343. Y si es normal y no debemos preocuparnos, no tengo idea de para qué lo muestra el programa. Supongo que es algo reservado para los sysadmins en modo paranoico o para asustar a aquellos que vienen de Windows o para dar la impresión de mayor rigurosidad y profesionalismo de sus creadores. Yo qué sé...
Y eso fue todo. Esperamos que disfruten este magnífico programa de monitoreo de recursos. Visiten el sitio oficial para más información y consulte la documentación completa AQUÍ.
Con la tecnología de Blogger.