Skip to main content
[ PIER ]

Beszel

Monitorización ligera de servidores sin la complejidad de Prometheus.

Service #monitoring#server#docker#alerts#metrics

Beszel es un stack mínimo y moderno de monitorización de servidores — un contenedor hub más agentes diminutos en cada servidor que quieras observar. Construido sobre SQLite + PocketBase, envía una UI web pulida, stats de Docker, alertas vía email/SMS/Telegram/Discord/Slack/Gotify y una huella de recursos sub-50 MB. La respuesta a "solo quiero gráficos de CPU del servidor y alertas" sin levantar Prometheus + Grafana + Alertmanager.

Desplegar con Pier

  1. 1 Abre el panel de Pier y haz clic en Add service.
  2. 2 Elige Beszel en la lista de plantillas.
  3. 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
  4. 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.

¿Qué es Beszel?

Beszel es un sistema ligero, moderno, basado en web, de monitorización de servidores construido por Henry Gressmann. Existe para llenar el vacío entre “voy a hacer SSH y correr htop” y “voy a desplegar Prometheus + Grafana

  • Alertmanager + node_exporter + Loki + cAdvisor + Pushgateway”.

La arquitectura tiene dos piezas — un hub (la UI web más una base de datos SQLite, empaquetada como una app PocketBase) y un agente (un binario Go diminuto o contenedor corriendo en cada servidor que quieras monitorear). El hub inicia conexiones salientes a los agentes (así que sin agujeros de firewall entrantes en el lado monitoreado), raspa métricas cada minuto, las guarda y renderiza el dashboard.

Obtienes CPU, memoria, disk I/O, throughput de red, carga del sistema, uptime, stats por-contenedor Docker, alertas a cada plataforma de chat común, páginas de status públicas — todo desde un binario hub de 50 MB más agentes de 10 MB.

Cómo lo despliega Pier

Pier usa la imagen oficial henrygd/beszel. Puerto por defecto — 8090 (UI web, detrás de Traefik). El volumen de datos monta en /app/data — base de datos SQLite más archivos de la app PocketBase.

El setup inicial crea el usuario admin vía el prompt de UI web. Desde ahí, agrega servidores desde Settings → Servers, corre el one-liner de instalación del agente impreso en cada host remoto, y las métricas empiezan a fluir.

Para monitorear el host de Pier mismo, despliega el agente en network_mode: host junto con Pier (en esta plantilla el hub auto-descubre el daemon Docker local para stats de contenedores).

Cuándo NO usar Beszel

Si ya corres Prometheus / Grafana / Alertmanager para métricas de aplicación, agregar Beszel solo para métricas de host puede ser redundante — node_exporter cubre el mismo terreno dentro de ese stack. Si necesitas granularidad sub-segundo para debugging de rendimiento, Netdata está construido específicamente para eso. Si solo te importa si URLs públicas responden, Uptime Kuma es la herramienta correcta. Beszel alcanza un sweet spot específico — “tengo un puñado de servidores y quiero un dashboard simple más alertas”.

Características clave

Huella diminuta

Contenedor hub ~50 MB RAM, agentes ~10 MB cada uno. Corre cómodamente junto a todo lo demás en un VPS de $5 — sin host dedicado de monitorización requerido.

Arquitectura hub + agentes

Un hub web agrega métricas de muchos servidores remotos. Cada remoto corre el agente beszel-agent diminuto y reporta vía WireGuard, Tailscale, o conexión SSH-tunneled plana.

Stats Docker integrados

CPU por contenedor, memoria, red y disk I/O para cada contenedor Docker corriendo — sin exporter separado.

Alertas a toda plataforma de chat

Email, SMS (vía Twilio), Telegram, Discord, Slack, Gotify, ntfy, webhook. Threshold + duración + cooldown configurables por métrica.

Backed por SQLite (PocketBase)

Todo el hub es un binario más un archivo SQLite. Backups triviales; sin migraciones que manejar; restaurar es una copia.

Páginas de status públicas

Comparte una página de status read-only para un servicio o flota — porcentajes de uptime, gráficos de las últimas 24 h, sin auth requerida.

Casos de uso

Monitorización de flota pequeña multi-VPS

Corres 3-30 servidores a través de proveedores — Hetzner, Vultr, OVH, máquinas dedicadas. Beszel los agrega todos en un dashboard.

Dashboards de homelab

Panel único para tu flota de servidores caseros — NAS, máquinas Proxmox, Raspberry Pis, OPNsense, Synology.

Páginas SLA / status

Página pública "¿está X arriba?" para clientes sin pagar StatusPage / Atlassian.

Salud de host Docker

Uso de recursos por contenedor a lo largo del tiempo — encuentra la memoria que se fuga o el worker descontrolado.

Reemplazando stacks pesados para ops pequeñas

Prometheus + Grafana + Alertmanager + node_exporter es overkill para "quiero saber si mi servidor se está muriendo". Beszel cubre 90% de monitorización de equipo pequeño con 5% de superficie operativa.

Ejemplos de código

Instalar agente en servidor remoto (one-liner) bash
curl -sL https://get.beszel.dev | sh -s -- \
  --hub https://beszel.example.com \
  --token <token-del-hub-ui>
Docker compose agente (alternativa) yaml
services:
  beszel-agent:
    image: henrygd/beszel-agent:latest
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    environment:
      LISTEN: 45876
      KEY: "tu-clave-publica"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data:/var/lib/beszel-agent
Config de alerta Discord webhook (en UI) text
Alerta - CPU
Threshold - > 90%
Por - 5 minutos
Canal - Discord
Webhook URL - https://discord.com/api/webhooks/...
Respaldar datos del hub bash
docker stop pier-beszel
tar czf beszel-backup-$(date +%Y%m%d).tgz /opt/pier/data/beszel
docker start pier-beszel

Comparativa

vs Prometheus + Grafana + Alertmanager El stack cloud-native estándar — potente, complejo, pesado en recursos. Beszel es la respuesta más simple para flotas pequeñas donde no necesitas PromQL o 30 dashboards.
vs Netdata Netdata es monitorización por-host en tiempo real con granularidad de segundo. Beszel es monitorización multi-host agregada con granularidad de minuto. Usa ambos para diferentes goals.
vs Uptime Kuma Uptime Kuma monitorea endpoints desde fuera (HTTP/HTTPS/TCP/ping). Beszel monitorea servidores desde dentro (CPU, RAM, stats Docker). Empareja — Kuma para "¿es alcanzable la URL?", Beszel para "¿está sano el host?".
vs Zabbix Zabbix es monitorización empresarial pesada. Beszel es monitorización ligera para homelab/equipos pequeños. Mundos diferentes; elige por tamaño de equipo.

Preguntas frecuentes

¿Cómo autentican los agentes?
Cada agente tiene una clave pública registrada en el hub. El hub inicia conexiones a agentes vía túneles WireGuard o SSH — sin puertos entrantes requeridos en el agente.
¿Qué métricas recolecta Beszel?
CPU, memoria, swap, espacio de disco, disk I/O, throughput de red por interfaz, carga del sistema, uptime, más CPU/memoria/red/IO por contenedor Docker. Métricas custom vía shell exec están en la roadmap.
¿Política de retención?
Granularidad de 1 minuto por 1 día, 10 minutos por 1 semana, hora por 30 días, día para siempre. Configurable en settings del hub.
¿Canales de alerta soportados?
Email (SMTP), Discord, Slack, Telegram, Gotify, ntfy, Twilio SMS, webhook genérico. Múltiples canales por alerta.
¿Multi-usuario / RBAC?
PocketBase auth respalda Beszel — usuarios básicos + viewers read-only. Sin permisos granulares por-servidor aún; todos con login ven todos los hosts.
¿Cómo es diferente de PRTG / Nagios?
UI moderna, binario de agente sub-1 MB, hub sub-100 MB. PRTG y Nagios son herramientas empresariales de 15 años con modelos operativos muy diferentes.
¿Qué versión despliega Pier?
La imagen oficial henrygd/beszel, por defecto al tag latest. Pin una versión en el selector si necesitas estabilidad entre upgrades.

Servicios relacionados

Desplegar en tu VPS

Beszel es un stack mínimo y moderno de monitorización de servidores — un contenedor hub más agentes diminutos en cada servidor que quieras observar. Construido sobre SQLite + PocketBase, envía una UI web pulida, stats de Docker, alertas vía email/SMS/Telegram/Discord/Slack/Gotify y una huella de recursos sub-50 MB. La respuesta a "solo quiero gráficos de CPU del servidor y alertas" sin levantar Prometheus + Grafana + Alertmanager.

Desplegar este servicio →