视频教程:BV1eM4y1K7oP
视频链接:BV1eM4y1K7oP
发布日期:2023-11-08
视频时长:14:30
播放量:1.5万
所属合集:FastGPT 教程系列
视频概要
FastGPT 运维进阶篇,重点讲解生产环境中的高级运维技巧:容器编排、集群部署、监控告警、故障恢复等。适合需要高可用部署的用户。
知识点清单
A. 高可用架构
生产环境推荐架构:
┌──────────────┐
│ Nginx/SLB │ 负载均衡 + SSL终止
└──────┬───────┘
│
┌────┴────┐
│ │
┌─┴──┐ ┌──┴─┐
│ FG1│ │ FG2│ FastGPT多实例
└─┬──┘ └──┬─┘
│ │
┌─┴────────┴──┐
│ MongoDB RS │ 副本集模式
└──────┬──────┘
│
┌──────┴──────┐
│ PostgreSQL │ 向量数据库
└─────────────┘
B. Docker Swarm / K8s 部署
# docker-compose.prod.yml
c version: '3.8'
services:
fastgpt:
image: fastgpt/fastgpt:latest
deploy:
replicas: 2 # 2个副本
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
resources:
limits:
cpus: '2'
memory: 4G
reservations:
memory: 1G
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
interval: 30s
timeout: 10s
retries: 3
C. 监控告警
| 监控指标 | 阈值 | 告警方式 |
|---|---|---|
| CPU使用率 | > 80% | 邮件/钉钉 |
| 内存使用率 | > 85% | 邮件/钉花 |
| 磁盘使用率 | > 90% | 邮件/钉花 |
| API响应时间 | > 5s | 钉花/企微 |
| 数据库连接数 | > 80% | 邮件 |
| 容器重启次数 | > 3次/小时 | 电话 |
# 简单监控脚本
#!/bin/bash
while true; do
# 检查容器状态
if ! docker ps | grep -q fastgpt; then
echo "[ALERT] FastGPT容器停止" | mail -s "告警" admin@example.com
docker-compose up -d
fi
# 检查磁盘空间
DISK_USAGE=$(df -h / | awk 'NR==2{print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 90 ]; then
echo "[ALERT] 磁盘使用率 ${DISK_USAGE}%" | mail -s "磁盘告警" admin@example.com
fi
sleep 60
done
D. 故障恢复
| 故障类型 | 恢复步骤 | 预防措施 |
|---|---|---|
| 容器崩溃 | docker-compose restart | 配置健康检查 |
| 数据库损坏 | 从备份还原 | 定期备份+副本集 |
| 磁盘满 | 清理日志+旧镜像 | 监控磁盘+自动清理 |
| 内存OOM | 增加内存或限制缓存 | 配置swap+内存限制 |
| 网络不通 | 检查防火墙+DNS | 多线路备份 |
常见问题
| 问题 | 解答 |
|---|---|
| 多副本数据同步? | MongoDB副本集自动同步,PostgreSQL需要配置流复制 |
| 如何实现零停机升级? | 滚动更新:逐个替换容器 |
| 负载均衡选哪个? | 小规模用Nginx,大规模用HAProxy或云SLB |
| 日志太多怎么管理? | 使用logrotate定期轮转,或接入ELK |
学习建议
- 高可用架构对小团队来说可能过于复杂,按需选择
- 监控是运维的眼睛,宁可多监控也不要漏监控
- 故障恢复演练要定期做,不要等到真出事了才着急
- 建议先掌握基础运维(16集),再学本集