服务器管理
管理 SayClaw 的物理/云服务器,以及服务器上的 Docker 容器。
最后更新:2026-03-09
1. 当前服务器
| 服务器 ID | IP | 说明 | 实例数 |
|---|---|---|---|
| ai-jp-1 | 35.243.76.69 | GCP Japan,运行 One API + PG + MySQL + Admin API | 1(小龙) |
| ai-jp-2 | 34.85.76.114 | GCP Japan,OC 实例集群 | 10 |
| ai-jp-3 | — | OC 实例集群(扩容) | 8 |
2. API
服务器列表
GET /api/v1/servers
服务器详情
GET /api/v1/servers/:id/detail
返回服务器详细信息 + 关联的实例列表。
服务器指标
GET /api/v1/servers/:id/stats
返回最近的 CPU/内存/磁盘/负载指标。
创建服务器
POST /api/v1/servers
Body: { id?, name, host, ssh_port?, ssh_user?, ssh_key_path?, notes? }
更新服务器
PATCH /api/v1/servers/:id
Body: { name?, host?, ssh_port?, notes? }
删除服务器
DELETE /api/v1/servers/:id
3. 容器管理
容器列表
GET /api/v1/servers/:id/containers
返回该服务器上的 Docker 容器列表(通过 SSH 执行 docker ps)。
容器操作
POST /api/v1/servers/:id/containers/:cid/:action
action:start|stop|restart|logs- 通过 SSH 执行
docker <action> <container_id>
4. 服务器指标采集
定时任务 jobServerMetrics(每 5 分钟)自动采集:
| 指标 | 来源 |
|---|---|
| CPU 使用率 | top -bn1 |
| 内存使用率 | free -m |
| 磁盘使用率 | df -h / |
| 系统负载 | uptime |
数据写入 server_metrics 表。
指标查询 API
GET /api/v1/server-metrics/:id?hours=24
5. 数据库
CREATE TABLE servers (
id VARCHAR(36) PRIMARY KEY,
name VARCHAR(100),
host VARCHAR(255) NOT NULL,
ssh_port INT DEFAULT 22,
ssh_user VARCHAR(50) DEFAULT 'root',
ssh_key_path VARCHAR(500),
status VARCHAR(20) DEFAULT 'active',
notes TEXT,
created_at DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)
);
CREATE TABLE server_metrics (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
server_id VARCHAR(36) NOT NULL,
cpu_percent DECIMAL(5,2),
memory_percent DECIMAL(5,2),
disk_percent DECIMAL(5,2),
load_1m DECIMAL(5,2),
created_at DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3),
KEY idx_server_time (server_id, created_at)
);
CREATE TABLE containers (
id VARCHAR(100) PRIMARY KEY,
server_id VARCHAR(36),
name VARCHAR(100),
image VARCHAR(255),
status VARCHAR(50),
ports TEXT,
created_at DATETIME(3)
);