16 - FastGPT 运维指南

视频教程BV1Ju4y157gR

视频链接BV1Ju4y157gR
发布日期:2023-10-20
视频时长:12:45
播放量:1.8万
所属合集:FastGPT 教程系列

视频概要

FastGPT 生产环境运维指南,覆盖数据备份、性能优化、日志排查、版本升级、安全加固等运维知识。适合已经部署了FastGPT并需要稳定运行的用户。


知识点清单

A. 数据备份策略

# MongoDB 备份
# 全量备份
docker exec mongo mongodump --out /data/backup/$(date +%Y%m%d)

# 复制备份到宿主机
docker cp mongo:/data/backup/ ./backup/

# 还原备份
docker exec mongo mongorestore /data/backup/20240101/

# PostgreSQL(向量库)备份
docker exec pg pg_dump -U postgres fastgpt > backup_pg.sql

# 还原PostgreSQL备份
docker exec -i pg psql -U postgres fastgpt < backup_pg.sql

B. 自动备份脚本

#!/bin/bash
# auto_backup.sh - 定时备份FastGPT数据

BACKUP_DIR="/data/fastgpt-backup"
DATE=$(date +%Y%m%d_%H%M%S)

# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE

# 备份MongoDB
docker exec mongo mongodump --out /data/backup/$DATE

# 备份PostgreSQL
docker exec pg pg_dump -U postgres fastgpt > $BACKUP_DIR/$DATE/pg_backup.sql

# 备份配置文件
cp /path/to/FastGPT/.env $BACKUP_DIR/$DATE/
cp /path/to/FastGPT/docker-compose.yml $BACKUP_DIR/$DATE/

# 删除7天前的备份
find $BACKUP_DIR -mtime +7 -exec rm -rf {} +

echo "备份完成: $DATE"

# 添加到crontab,每天凌晨3点执行
crontab -e
0 3 * * * /path/to/auto_backup.sh >> /var/log/fastgpt_backup.log 2>&1

C. 性能优化

优化项措施说明
内存限制设置MongoDB内存上限防止内存耗尽
连接池配置数据库连接数避免连接过多
向量索引优化PG索引参数加速检索
CDN加速静态资源CDN分发加快页面加载
日志清理定期清理旧日志释放磁盘空间
# docker-compose.yml 性能优化示例
services:
  mongo:
    command: --wiredTigerCacheSizeGB 1  # 限制MongoDB内存为1GB
    
  fastgpt:
    deploy:
      resources:
        limits:
          memory: 2G  # 限制FastGPT容器内存

D. 日志排查

# 查看FastGPT日志
docker logs fastgpt --tail 100 -f

# 查看MongoDB日志
docker logs mongo --tail 50

# 查看PostgreSQL日志
docker logs pg --tail 50

# 常见错误及解决
# 1. ECONNREFUSED - 数据库连接失败,检查数据库容器是否运行
# 2. ENOMEM - 内存不足,增加服务器内存或优化配置
# 3. 429 Too Many Requests - API调用频率超限
# 4. 500 Internal Server Error - 检查.env配置是否正确

E. 版本升级

# 1. 备份数据(重要!)
./auto_backup.sh

# 2. 拉取最新镜像
docker-compose pull

# 3. 重启服务
docker-compose down
docker-compose up -d

# 4. 检查日志确认正常
docker logs fastgpt --tail 20

F. 安全加固

措施操作重要程度
修改默认密码修改DEFAULT_ROOT_PSW★★★★★
HTTPS配置Nginx反向代理+SSL证书★★★★★
防火墙只开放必要端口(80/443)★★★★★
定期更新及时升级到最新版本★★★★
访问控制限制IP白名单★★★★
API限流配置请求频率限制★★★

Nginx 反向代理配置

server {
    listen 443 ssl;
    server_name fastgpt.your-domain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebSocket支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}


常见问题

问题解答
磁盘满了怎么办?清理Docker旧镜像:docker system prune -a
备份文件太大?压缩后备份:tar -czf backup.tar.gz backup/
数据库性能下降?检查索引是否正常,考虑增加内存
如何监控运行状态?使用宝塔面板监控或部署Prometheus+Grafana
服务自动重启?在docker-compose中添加restart: always

学习建议

  • 运维知识对长期使用FastGPT非常重要,不容忽视
  • 定期备份是最基本的运维习惯,务必配置自动备份
  • 建议配合宝塔面板使用,图形化管理更方便
  • 安全加固在生产环境中必须做,尤其是HTTPS和密码
返回首页