arbitrage-engine/docs/OPS_CONNECTIONS.md

145 lines
3.5 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.

# 运维连接手册(本地 PostgreSQL + GCE
本手册记录项目线上关键连接信息:
- 怎么连线上服务器;
- 怎么连服务器本地数据库(当前生产数据源);
- 线上项目目录和常用排查命令。
## 0. 固定信息
- GCP Project ID: `gen-lang-client-0835616737`
- 线上 VM: `instance-20260221-064508`
- Zone: `asia-northeast1-b`
- 线上项目目录: `/home/fzq1228/Projects/arbitrage-engine`
- 线上数据库(服务器本地 PostgreSQL
- Host: `127.0.0.1`
- Port: `5432`
- DB: `arb_engine`
- User: `arb`
- Password: `arb_engine_2026`
## 1. 连接线上服务器GCE
### 1.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
```
### 1.2 SSH推荐 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"
```
## 2. 连接服务器本地数据库(当前生产)
### 2.1 在服务器内直接 psql
```bash
sudo -u fzq1228 bash -lc "export PGPASSWORD=arb_engine_2026; psql -h 127.0.0.1 -U arb -d arb_engine -c 'SELECT now();'"
```
进入交互式:
```bash
sudo -u fzq1228 bash -lc "export PGPASSWORD=arb_engine_2026; psql -h 127.0.0.1 -U arb -d arb_engine"
```
### 2.2 从本机临时连SSH Tunnel
如果需要在本机 SQL 客户端查看:
```bash
# 本机开隧道
gcloud compute ssh instance-20260221-064508 \
--zone asia-northeast1-b \
--project gen-lang-client-0835616737 \
--tunnel-through-iap \
-- -N -L 9432:127.0.0.1:5432
```
新开终端连本地映射端口:
```bash
PGPASSWORD=arb_engine_2026 psql -h 127.0.0.1 -p 9432 -U arb -d arb_engine -c "SELECT 1;"
```
## 3. 线上项目目录与运行状态
- Repo root: `/home/fzq1228/Projects/arbitrage-engine`
- Backend: `/home/fzq1228/Projects/arbitrage-engine/backend`
- Frontend: `/home/fzq1228/Projects/arbitrage-engine/frontend`
- 运行用户:`fzq1228`
- 进程管理:`pm2`
常用检查:
```bash
cd /home/fzq1228/Projects/arbitrage-engine
pm2 list
pm2 logs --lines 100
```
重点进程:
- `signal-engine`
- `paper-monitor`
- `arb-api`
- `agg-collector`
- `market-collector`
- `liq-collector`
- `position-sync`
- `risk-guard`
## 4. 版本同步
查看服务器分支和提交:
```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
```
服务器拉代码:
```bash
cd /home/fzq1228/Projects/arbitrage-engine
git pull origin codex/codex_dev
```
## 5. 常见故障排查
- API 正常但策略不出信号:
-`signal-engine` 日志;
- 检查 `strategies.status='running'`
- 检查 `signal_indicators` 最近 5 分钟是否持续写入。
- 有信号但不开仓:
-`paper_trades` 是否达到 `max_positions`
-`flip_threshold/entry_score` 是否过高;
-`paper_monitor``signal_engine` 日志是否有拒绝原因。
- 数据断流:
- 检查 `agg_trades` 最新 `time_ms`
- 检查 `agg-collector`、`market-collector`、`liq-collector` 进程。