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
Issues
Muchos usuarios han reportado que al acceder a la interfaz web, la página sale en blanco. Resulta que por políticas de 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, 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
Otros registros
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". 
En el Issue #2330, el creador nos sugiere que, como ningún sistema es igual y no tiene los mismos valores, entonces subirlos:
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.
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 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Í.
Bash Script
Para instalar glances use el siguiente loop (tested en Ubuntu 22.04/24.04):
#!/usr/bin/env bash
# Install Glances With the following command:
#sudo chmod +x glances_install.sh && sudo ./glances_install.sh
apt install -y glances
systemctl enable glances.service
systemctl stop glances.service
export GLANCES_VERSION=$(glances -V | head -n 1 | awk '{print $2}' | sed 's/^v//')
wget "https://github.com/nicolargo/glances/archive/refs/tags/v${GLANCES_VERSION}.tar.gz"
tar -xzf v${GLANCES_VERSION}.tar.gz
rm v${GLANCES_VERSION}.tar.gz
cp -r glances-${GLANCES_VERSION}/glances/outputs/static/public/ /usr/lib/python3/dist-packages/glances/outputs/static/
rm -rf glances-${GLANCES_VERSION}
sed -i '/ExecStart=\/usr\/bin\/glances -s -B 127.0.0.1/c\ExecStart=\/usr\/bin\/glances -w -B 0.0.0.0 -t 10 -p 61208' /usr/lib/systemd/system/glances.service
systemctl daemon-reload
systemctl start glances.service
Ahora ya podrá acceder por:
http://localhost:61208
http://127.0.0.1:61208
http://tu_IP:61208

Con la tecnología de Blogger.