Instalamos Glances para monitorear estadísticas de nuestra Raspberry Pi (temperatura, uso, memoria, etc.) y lo integramos en Home Assistant.
¿Qué es Glances?
Glances es un software de monitorización multiplataforma escrito en Python muy ligero que sirve para extraer y/o consultar estadísticas de nuestros sistemas ya sean Windows, GNU/Linux, macOS, etc. Nos permite ver en tiempo real datos relevantes cómo temperatura de cada núcleo, memoria del sistema utilizada, procesos que se están ejecutando, espacio de disco libre, etc.
Puede ejecutarse cómo cliente y nos permite ver los datos desde una interfaz muy simple pero aquí vamos a aprovechar su funcionalidad ‘remota’ para instalarlo en una Raspberry Pi 3 de forma que podamos consultar todas sus estadísticas desde el navegador (la Raspberry no tendremos que conectarla a ningún monitor), pero además usaremos la integración que proporciona Home Assistant para generar gráficas y métricas en nuestro sistema domótico y tener todos los datos centralizados.
Por último, ya que hemos tocado el tema de Home Assistant veremos lo simple que es instalar el add-on oficial de Glances para HASS y extraer datos también de nuestro sistema domótico.
Lista de componentes
- Una Raspberry Pi (o cualquier otro sistema que vayamos a monitorear y que esté soportado por Glances).
- Nuestro ordenador de trabajo con conexión a internet.
- Nuestro sistema domótico con Home Assistant (sólo si queremos conectarlo a este).
- Unos 10~15 minutos de tiempo libre.
Instalación
Vamos a comenzar por conectarnos a la Raspberry mediante SSH, si estamos usando cualquier otro sistema este proceso será distinto y si la Raspberry está conectada a un monitor será innecesario (y sólo tendremos que abrir una terminal) pero en el caso de no estarlo, en ESTA entrada vimos cómo conectarnos vía SSH a nuestra Raspberry para operar en ella de forma remota.
Todo esto desde la consola de Windows mediante ssh [email protected] y ya estaremos delante de la terminal.
La instalación es tremendamente simple en sistemas GNU/Linux, tan sólo consta de un único comando, aunque aquí somos partidarios de hacer el clásico update/upgrade cada vez pero esto no es necesario.
1
2
3
sudo apt update && apt upgrade -y
sudo apt install glances
Esperamos unos minutos y la instalación se completará sola. Ahora lo que vamos a configurar es un crontab para que Glances se ejecute en modo web automáticamente aunque el dispositivo se reinicie. Glances se ejecuta escribiendo únicamente glances en la consola pero de acorde a la documentación podemos añadir flags del tipo -s -w -c para especificar en que modo queremos que se lance, a nosotros nos interesa el comando glances -w que ejecuta Glances en modo web para poder acceder desde la IP 192.168.X.X:61208 dónde 61208 es el puerto por defecto para Glances (si no lo modificamos).
Para crear el crontab escribimos: crontab -e que indica que queremos editar un crontab; el terminal nos pedirá elegir que editor de texto queremos usar, yo uso nano pero es irrelevante. Se nos abrirá un fichero con algunos comentarios en el que vamos a añadir el comando que hemos comentado antes (glances -w) pero con un añadido:
1
@reboot glances -w
@reboot indica que queremos ejecutar este comando tras un reinicio.
Guardamos los cambios (en nano, hacemos ‘Ctrl + X’, escribimos ‘y’ y pulsamos ‘Intro’). Sólo nos queda reiniciar, para lo cual escribimos sudo reboot y listo, perderemos conexión en unos segundos ya que el dispositivo se reiniciará, así que podemos cerrar ya la consola y esperamos un par de minutos a que todo inicie.
Glances desde el navegador
Podemos acceder desde el navegador para ver que todo ha ido bien usando la IP del dispositivo, 192.168.X.X:61208.
Como vereís la interfaz es ridículamente simple; a continuación vamos a ver como conectar esto a Home Assistant para que estos datos podamos tratarlos como entidades en Hass.
Glances en Home Assistant
Conexión
La conexión a HASS es inmediata mediante una integración configurable desde la interfaz; vamos a Configuración > Integraciones > Añadir Integración > Glances y rellenemos los datos, que sólo serán el nombre y la IP del dispositivo:
Automáticamente veremos que se ha añadido una nueva integración con múltiples entidades (el nº variará dependiendo del tipo de dispositivo dónde hemos instalado Glances).
Glances como add-on de Hass
¿Y si queremos instalar Glances para extraer todos estos datos de nuestro propio sistema domótico en lugar de otro dispositivo? Home Assistant con Supervisor cuenta con un add-on oficial para ello. Vamos a Supervisor > Tienda de complementos (add-ons) > Glances > Instalar. Una vez instalado, vamos a su configuración y podemos, si queremos, añadir un usuario/contraseña (username/password) además de añadir el soporte para SSL (ssl) si estamos usando Home Assistant de forma remota con un certificado válido.
Guardamos los cambios e iniciamos el add-on (es posible que necesitemos desmarcar la opción de ‘Modo de protección‘ para que pueda funcionar). En unos segundos estará ejecutándose en modo cliente por lo que si queremos ver los datos, debemos hacer lo mismo que antes; vamos a Configuración > Integraciones > Añadir Integración > Glances y el único cambio es el apartado de ‘Host‘ donde especificaremos ‘localhost‘ en lugar de una IP.
Vista desde la interfaz Lovelace
Cómo en otras entradas, he aprovechado para mostrar los datos de forma más práctica a través de la interfaz de Home Assistant. Para ello estoy usando una integración personalizada para la interfaz llamada mini-graph-card y stack-in-card. Si no sabes cómo instalar integraciones externas, lo trato en ESTA entrada.
La configuración es tal que así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
type: custom:stack-in-card
mode: vertical
cards:
- type: horizontal-stack
title: Raspberry Pi 3B
cards:
- type: custom:mini-graph-card
entities:
- sensor.glances_raspberry_pi_3_cpu_load
line_color: red
line_width: 8
font_size: 75
name: CPU
margin: true
- type: custom:mini-graph-card
entities:
- sensor.glances_raspberry_pi_3_ram_used
line_color: yellow
line_width: 8
font_size: 75
name: RAM
margin: true
- type: custom:mini-graph-card
entities:
- sensor.glances_raspberry_pi_3_used
line_color: green
line_width: 8
font_size: 75
name: Disco
margin: true
Y la tarjeta en la interfaz Lovelace quedará así:
Notas finales
No hemos tratado la forma de definir unas credenciales en la instalación de Glances en la Raspberry Pi pero si queremos especificar un usuario/contraseña, podemos hacerlo mediante ‘flags’ tras la instalación. Antes de configurar el crontab, ejecutamos Glances por primera vez añadiendo (además de la -w), los comandos –password (por defecto no tiene) y –username (por defecto es glances), cómo se especifica en la documentación.
“Los enlaces a productos de Amazon que encuentras en esta página son enlaces de afiliado. Esto significa que si decides realizar una compra a través de estos enlaces, recibiré una pequeña comisión sin ningún costo adicional para ti. Estas comisiones ayudan a mantener y apoyar mi trabajo en este sitio web. ¡Gracias por tu apoyo!”
“PATROCINADO - Prueba los productos de Proton Privacy para proteger tu privacidad y seguridad y estarás contribuyendo al desarrollo de este sitio web sin ningún costo adicional - Proton Mail - Proton Drive - Proton Pass - Proton VPN”