docs(okf): entidades e relacionamentos OKF do DashDescomplicar
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
---
|
||||
type: Entity
|
||||
layer: wiki
|
||||
tags: [stack, dashdescomplicar, backend, integracao, hetzner, api]
|
||||
title: "Integracao-Hetzner"
|
||||
---
|
||||
|
||||
# Integracao-Hetzner
|
||||
|
||||
Integração com Hetzner Cloud API para monitorização de servidores VPS. Sincroniza lista de servidores, recolhe métricas (CPU, disco, rede) e armazena histórico na MySQL do Desk CRM.
|
||||
|
||||
## Responsabilidades
|
||||
|
||||
- **Sync**: Sincronizar lista de servidores da API Hetzner → `tbl_eal_hetzner_servers`
|
||||
- **Métricas**: Recolher CPU%, disk IOPS, network BPS via `/servers/{id}/metrics`
|
||||
- **Dashboard**: Agregar servidores + últimas métricas para o painel Monitor
|
||||
- **Histórico**: Armazenar métricas em `tbl_eal_hetzner_metrics` para gráficos
|
||||
- **Cleanup**: Limpeza de métricas antigas (>30 dias)
|
||||
|
||||
## Stack
|
||||
|
||||
- **API**: `https://api.hetzner.cloud/v1` (Bearer token `HETZNER_TOKEN`)
|
||||
- **DB**: MySQL via `db.ts` (pool)
|
||||
- **Validação**: Tipos TypeScript (sem Zod nesta rota)
|
||||
|
||||
## Rotas
|
||||
|
||||
| Método | Rota | Função |
|
||||
|---|---|---|
|
||||
| `GET` | `/api/hetzner` | Dashboard (servidores + últimas métricas) |
|
||||
| `POST` | `/api/hetzner/sync` | Sincronizar lista de servidores |
|
||||
| `POST` | `/api/hetzner/collect` | Recolher métricas de todos os servidores |
|
||||
| `POST` | `/api/hetzner/collect/:hetzner_id` | Recolher métricas de servidor específico |
|
||||
| `GET` | `/api/hetzner/history/:server_id` | Histórico de métricas para gráficos |
|
||||
| `POST` | `/api/hetzner/cleanup` | Limpar métricas antigas |
|
||||
|
||||
## Servidores Monitorizados
|
||||
|
||||
- **CWP Server** (VM 100): IP `5.9.90.105` — hosting clientes
|
||||
- **EasyPanel** (VM 101): IP `5.9.90.70` — Docker Swarm (46 serviços)
|
||||
- **Gateway** (VM 103): proxy Nginx
|
||||
- **Proxmox Host**: hypervisor físico
|
||||
|
||||
## Localizações
|
||||
|
||||
- **Código**: `api/services/hetzner.ts` (266 linhas), `api/routes/hetzner.ts` (141 linhas)
|
||||
- **DB**: `tbl_eal_hetzner_servers`, `tbl_eal_hetzner_metrics`
|
||||
|
||||
## Dependências
|
||||
|
||||
- **Hetzner Cloud API**: Token `HETZNER_TOKEN` em `.env`
|
||||
- **MySQL-Pool**: Armazenamento de servidores e métricas
|
||||
|
||||
## Fornece a
|
||||
|
||||
- **Painel-Monitor**: Dados de servidores exibidos na secção "Servidores"
|
||||
- **Express-API**: Rota `/api/hetzner`
|
||||
Reference in New Issue
Block a user