Files
DashDescomplicar/okf/entidades/Integracao-SSH-Metrics.md

54 lines
1.7 KiB
Markdown

---
type: Entity
layer: wiki
tags: [stack, dashdescomplicar, backend, integracao, ssh, metricas]
title: "Integracao-SSH-Metrics"
---
# Integracao-SSH-Metrics
Colector de métricas de servidores via SSH (biblioteca `ssh2`). Recolhe CPU, RAM, disco, load e containers do EasyPanel Server.
## Responsabilidades
- **SSH Connection**: Ligação ao EasyPanel (`5.9.90.70:22`) com password auth
- **Métricas**: Executa comandos remotos para recolher CPU%, RAM%, disco%, load avg, nº containers
- **Parsing**: Extrai valores de output formatado (`CPU:`, `MEM:`, `DISK:`, `LOAD:`, `CONTAINERS:`)
- **Sync**: Sincroniza servidores Hetzner para `tbl_eal_monitoring`
## Stack
- **Library**: `ssh2` 1.17 (Client, exec)
- **Timeout**: 20 segundos por ligação SSH
- **Auth**: Password (não suporta chave privada no container)
## Servidores
| Nome | Host | Porta | Auth | Notas |
|---|---|---|---|---|
| EasyPanel | `5.9.90.70` | 22 | Password | Docker Swarm — 46 serviços |
| CWP Server | `5.9.90.105` | 22 | ❌ Chave ed25519 | NÃO acessível do container |
## Rotas
| Método | Rota | Função |
|---|---|---|
| `POST` | `/api/server-metrics/collect` | Recolher todas as métricas |
| `POST` | `/api/server-metrics/ssh` | Apenas métricas SSH |
| `POST` | `/api/server-metrics/hetzner` | Sync Hetzner → monitoring |
## Localizações
- **Código**: `api/services/server-metrics.ts` (188 linhas), `api/routes/server-metrics.ts` (68 linhas)
- **DB**: `tbl_eal_monitoring`
## Dependências
- **EasyPanel Server**: SSH acesso (`.env`: `EASY_HOST`, `EASY_USER`, `EASY_PASS`)
- **MySQL-Pool**: Armazenamento de métricas
## Fornece a
- **Painel-Monitor**: Métricas SSH exibidas na secção "Infraestrutura"
- **Express-API**: Rota `/api/server-metrics`