56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
---
|
|
type: Entity
|
|
layer: wiki
|
|
tags: [stack, dashdescomplicar, backend, integracao, beszel, monitorizacao]
|
|
title: "Integracao-Beszel"
|
|
---
|
|
|
|
# Integracao-Beszel
|
|
|
|
Integração com Beszel Hub (PocketBase API) para monitorização de frota de sistemas. Recolhe métricas de CPU, RAM, disco, containers e uptime de múltiplos hosts.
|
|
|
|
## Responsabilidades
|
|
|
|
- **Auth**: Autenticação PocketBase (token JWT com cache)
|
|
- **Fleet Collection**: Recolher métricas de todos os sistemas Beszel
|
|
- **Storage**: Guardar métricas em `tbl_eal_monitoring` (MySQL)
|
|
- **Dashboard**: Agregar total/up/down por sistema
|
|
|
|
## Stack
|
|
|
|
- **API**: PocketBase (`descomplicar-beszel.i7zsqo.easypanel.host`)
|
|
- **Auth**: Email + password → JWT token (cache em memória)
|
|
- **Validação**: Zod 4.3 (`BeszelSystemInfo`, `BeszelSystem`, `BeszelListResponse`)
|
|
- **DB**: MySQL via `db.ts`
|
|
|
|
## Rotas
|
|
|
|
| Método | Rota | Função |
|
|
|---|---|---|
|
|
| `GET` | `/api/beszel` | Fleet data do MySQL |
|
|
| `POST` | `/api/beszel/collect` | Trigger fresh collection |
|
|
|
|
## Sistemas Ignorados
|
|
|
|
- `black`, `hp`, `kriku` — Tor exit nodes que duplicam máquinas reais
|
|
|
|
## Tipos de Dados
|
|
|
|
- `FleetSummary`: total, up, down, systems[]
|
|
- `FleetSystem`: name, host, status, cpu, mem, disk, containers, load, uptime
|
|
|
|
## Localizações
|
|
|
|
- **Código**: `api/services/beszel.ts` (249 linhas), `api/routes/beszel.ts` (37 linhas)
|
|
- **DB**: `tbl_eal_monitoring` (category=beszel)
|
|
|
|
## Dependências
|
|
|
|
- **Beszel Hub**: PocketBase API (`BESZEL_URL`, `BESZEL_EMAIL`, `BESZEL_PASSWORD`)
|
|
- **MySQL-Pool**: Armazenamento de métricas
|
|
|
|
## Fornece a
|
|
|
|
- **Painel-Monitor**: Dados de fleet exibidos na secção "Frota Beszel"
|
|
- **Express-API**: Rota `/api/beszel`
|