arbitrage-engine/docs/OPS_CONNECTIONS.md

148 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 运维连接手册Cloud SQL + GCE
本手册记录本项目当前线上环境的关键连接信息。
目标:后续只看这一个文档,就能快速连上数据库和服务器。
## 0. 固定信息
- GCP Project ID: `gen-lang-client-0835616737`
- Cloud SQL instance connection name: `gen-lang-client-0835616737:asia-northeast1:arb-db`
- Cloud SQL DB: `arb_engine`
- DB user: `arb`
- DB password (当前): `arb_engine_2026`
- 线上 VM: `instance-20260221-064508`
- Zone: `asia-northeast1-b`
- 线上项目目录: `/home/fzq1228/Projects/arbitrage-engine`
## 1. 本机连接 Cloud SQL
### 1.1 启动 Proxy本机
开一个终端窗口常驻运行:
```bash
cloud-sql-proxy gen-lang-client-0835616737:asia-northeast1:arb-db --port 9470
```
如果系统找不到命令,用完整路径:
```bash
/opt/homebrew/share/google-cloud-sdk/bin/cloud-sql-proxy \
gen-lang-client-0835616737:asia-northeast1:arb-db \
--port 9470
```
### 1.2 测试 DB 连通性
```bash
PGPASSWORD=arb_engine_2026 psql -h 127.0.0.1 -p 9470 -U arb -d arb_engine -c "SELECT 1;"
```
进入交互式 SQL
```bash
PGPASSWORD=arb_engine_2026 psql -h 127.0.0.1 -p 9470 -U arb -d arb_engine
```
### 1.3 Proxy 常见修复
如果报错类似 `server closed the connection unexpectedly``connection refused`
```bash
pkill -f "cloud-sql-proxy gen-lang-client-0835616737:asia-northeast1:arb-db --port 9470" || true
cloud-sql-proxy gen-lang-client-0835616737:asia-northeast1:arb-db --port 9470
```
## 2. 连接线上服务器GCE
### 2.1 先确认账号和项目
```bash
gcloud auth list --filter=status:ACTIVE --format='value(account)'
gcloud config get-value project
```
如需切换项目:
```bash
gcloud config set project gen-lang-client-0835616737
```
### 2.2 查看实例
```bash
gcloud compute instances list --format='table(name,zone,status,networkInterfaces[0].networkIP,networkInterfaces[0].accessConfigs[0].natIP)'
```
### 2.3 SSH推荐 IAP
注意:该实例直连 22 端口可能失败,推荐固定用 IAP
```bash
gcloud compute ssh instance-20260221-064508 \
--zone asia-northeast1-b \
--project gen-lang-client-0835616737 \
--tunnel-through-iap
```
快速连通性测试:
```bash
gcloud compute ssh instance-20260221-064508 \
--zone asia-northeast1-b \
--project gen-lang-client-0835616737 \
--tunnel-through-iap \
--command "hostname; whoami; uptime; pwd"
```
## 3. 线上项目目录与运行状态
### 3.1 项目目录
- Repo root: `/home/fzq1228/Projects/arbitrage-engine`
- Backend: `/home/fzq1228/Projects/arbitrage-engine/backend`
- Frontend: `/home/fzq1228/Projects/arbitrage-engine/frontend`
### 3.2 当前运行形态(关键)
- 运行用户:`fzq1228`
- 进程管理:`pm2`PM2 God Daemon 在跑)
- 关键进程:
- `python3 signal_engine.py`
- `python3 paper_monitor.py`
- `uvicorn main:app --host 0.0.0.0 --port 4332`
- `next start -p 4333`
进程核对命令:
```bash
ps -ef | egrep -i 'signal_engine|paper_monitor|uvicorn|next start|PM2' | grep -v egrep
```
## 4. 常用线上操作命令
进入项目目录:
```bash
cd /home/fzq1228/Projects/arbitrage-engine
```
查看分支和最近提交(避免 safe.directory 报错):
```bash
sudo git -c safe.directory=/home/fzq1228/Projects/arbitrage-engine -C /home/fzq1228/Projects/arbitrage-engine rev-parse --abbrev-ref HEAD
sudo git -c safe.directory=/home/fzq1228/Projects/arbitrage-engine -C /home/fzq1228/Projects/arbitrage-engine log --oneline -1
```
## 5. 快速故障排查
- DB 报 `connection refused`
- Proxy 没开或者端口不是 `9470`
- DB 报 `server closed the connection unexpectedly`
- 通常是旧 Proxy 假活着,重启 Proxy。
- SSH 报 `Connection closed by ... port 22`
- 改用 `--tunnel-through-iap`
- 能 SSH 但找不到项目目录
- 当前在线项目目录固定是 `/home/fzq1228/Projects/arbitrage-engine`,不要只在 `~/` 下面找。