54 lines
1.7 KiB
Markdown
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`
|