Beszel es una herramienta de monitorización básica y ligera. Es de código abierto y muy fácil de instalar. Nos da dos opciones:
- Instalarla mediante su binario.
- Desplegarla con Docker.
Vamos a cubrir ambas opciones en este post, basándonos en la documentación oficial de la propia herramienta (en inglés).
Requisitos
Para continuar con este post necesitarás:
- Un entorno, ya sea una VM, servidor físico, contenedor LXC o Docker.
- Acceso a internet (que si estás leyendo esto, ya lo tendrás).
- Opcional: Un café a mano.
Instalación
Elige uno de los dos métodos, el que te sea más conveniente, ya que la herramienta no se verá afectada en su funcionalidad.
Binario
Accedemos a nuestro entorno mediante SSH o consola, y ejecutamos lo siguiente:
curl -sL https://get.beszel.dev/hub -o /tmp/install-hub.sh && chmod +x /tmp/install-hub.sh && /tmp/install-hub.sh
Esto nos descargará el script de instalación de la herramienta y lo ejecutará. Tan solo será esperar a que finalice, y tendremos nuestro Beszel funcionando.
Contenedor Docker
Para despliegues con Docker, suelo trabajar directamente con ficheros docker-compose.yaml por comodidad, ya que sirven tanto para entornos de una única instancia, como para despliegues en Swarm.
services:
beszel:
image: henrygd/beszel
container_name: beszel
restart: unless-stopped
ports:
- 8090:8090
volumes:
- ./beszel_data:/beszel_data
Como siempre, os aconsejo adaptarlo a vuestras necesidades, como podría ser agregando un volumen fijado previamente o en NFS, o incluso una red concreta si se quiere incluir ya con Traefik o similares.
Configuración inicial
Una vez hayamos finalizado el proceso de instalación de nuestra preferencia, podremos acceder a nuestro panel de Beszel, donde lo primero que hará será pedirnos crear una cuenta de administrador.

Rellenamos el formulario con los datos deseamos, y nos aparecerá la ventana principal:

Creación de un monitor
Ahora el paso relevante: Monitorear uno de nuestros servidores.
Hay que tener en cuenta que este tipo de sistemas cuentan con dos partes:
- Sistema principal: Donde se vuelca la información y accedemos a ella.
- Agentes: Aplicaciones que se ejecutan individualmente en cada máquina para obtener la información que posteriormente se vuelca en el Sistema principal.
Beszel nos guiará en el proceso de ambos. Para ello vamos a la parte superior derecha, donde encontraremos el botón de + Agregar sistema. Se nos abrirá lo siguiente:

Al igual que el propio Beszel, tendremos dos opciones para desplegar o instalar nuestro agente: Docker o Binario; elegid lo que más os convenga. En mi caso, al tener contenedores LXC, en ellos usaré el binario, y en mis servidores con Docker usaré el contenedor que nos provee. Por esto cubriré ambas opciones:
Instalar Agente con Binario
Desde esta ventana tenemos la opción de agregar un nuevo servicio, indicando:
- Nombre: Alias que queremos poner a nuestro servidor a monitorizar.
- IP o Nombre de Dominio: Dirección de nuestro servidor a monitorear.
- Puerto: Se puede dejar por defecto si no se tiene ya en uso en la máquina anfitriona del agente.
- Clave pública: No manipular.
- Token: No manipular.

Cuando lo tengamos rellenado correctamente, deberemos clicar en el menú seleccionable de abajo izquierda "Copiar comando de Linux", para adaptarlo al sistema operativo del anfitrión del agente. Una vez elegido, en una terminal de nuestro dispositivo a monitorear lo ejecutamos.
Cuando haya finalizado su ejecución, le damos a Agregar sistema abajo derecha, y nos actualizará el panel principal con nuestro servidor:

Instalar Agente con Docker
El proceso mediante Docker también es muy sencillo y similar

Una vez desplegado el contenedor, le damos a Agregar sistema abajo derecha, aparecerá en nuestro listado:

Monitores
En este punto, ya seremos capaces de ver el detalle de la monitorización de nuestro servidor, ya se haya instalado por binario o Docker. Tan solo tendremos que hacer clic sobre el monitor deseado y se nos abrirá una ventana con todo el contenido:

A parte de toda la información de uso de recursos, en la parte inferior de la página, contamos con el listado de contenedores:

Y también de los servicios:

Alertas
Por último, una de las comodidades de Beszel: Alertas.
Nos ayudará a enterarnos cuando un servidor no está en el estado que deseamos, ya sea porque se cae, como porque se empieza a llenar su almacenamiento o supera cierto uso de memoria o CPU, o incluso por temperatura.
Para crear una, vamos al servidor que deseemos, y a la derecha del todo de su registro, hacemos clic sobre el icono de la campana:

Se nos debería abrir un menú lateral donde nos salgan las diversas opciones a configurar:

Dentro de estas opciones elegiremos las que deseemos configurar. En mi caso, como ejemplo, he configurado las siguientes:
- Estado: Avisar si está caído por más de 5 minutos.
- Uso de CPU: Avisar si se excede un 80% de uso por más de 10 minutos seguidos.
- Uso de RAM: Avisar si se excede un 80% de uso por más de 20 minutos seguidos.
- Uso de disco: Avisar si se supera el 70% de la capacidad por más de 10 minutos.
- Temperatura: Avisar si se sobrepasan los 80ºC por más de 10 minutos seguidos.
De forma que el formulario se vería tal que así:

Ahora si vamos a las opciones principales, arriba a al derecha en el icono del engranaje:

Y accedemos al menú de Notificaciones, podremos configurar los diferentes medios para recibir una notificación, como correo electrónico, o webhook.

Con esto tendríamos cubierto que se nos avisase en caso de que el servicio se degrade.
Otros
Además te todo el tema de configuración que hemos visto, centrado más en la parte de la monitorización y alertas, Beszel nos permite customizar un poco la aplicación, y también gestionar múltiples usuarios.
Vista en cuadrícula
La vista en cuadrícula puede resultar más cómoda, como es para mi caso:

Usuarios
Beszel utiliza PocketBase para todo el tema de gestión de los datos. Cuando accedemos a la sección de usuarios, nos deriva a la administración web de PocketBase. Para loguear usaremos el mismo usuario y password que el que se configuró para Beszel:

Una vez dentro, podremos ver nuestro usuario, e incluso agregar nuevos registros si fuese necesario:

Conclusión
En el blog ya hemos visto otros sistemas de monitorización como Uptime Kuma. Hay muchas herramientas diferentes, pero he de reconocer que la sencillez de Beszel y la interfaz que tiene han hecho que sea muy fácil que lo eligiese como mi sistema actual, en combinación con Uptime Kuma para chequear mis API y otros servicios webs.
¡Espero que os haya servido!
Referencias
- Web oficial Beszel: Beszel | Simple, lightweight server monitoring
- Documentación: Getting Started | Beszel
- GitHub repo: GitHub - henrygd/beszel: Lightweight server monitoring hub with historical data, docker stats, and alerts.