AIVideo镜像运维手册:日志查看+服务监控+磁盘清理+备份恢复全流程
1. 平台认知:先搞懂你运维的是什么
AIVideo不是普通视频剪辑工具,而是一站式AI长视频创作平台。它把“输入1个主题 → 输出1部专业级长视频”这件事真正做成了自动化流水线——从文案构思、分镜设计、画面生成、角色动作、字幕排版、AI配音到最终剪辑合成,全部由模型驱动完成。
你部署的这个镜像,本质是一个本地化运行的AI视频工厂。它不依赖云端API调用,所有计算都在你的GPU实例上完成;它也不是单点功能插件,而是由多个协同服务组成的系统:前端Web界面、后端任务调度、ComfyUI工作流引擎、TTS语音服务、FFmpeg视频处理模块、数据库和文件存储层。理解这一点,是做好运维的第一步。
运维AIVideo,不是在维护一个网页,而是在照看一台24小时运转的AI视频产线。它的健康度,直接决定用户能否稳定生成10分钟以上的高质量视频。下面这四个动作——看日志、盯服务、清磁盘、保数据——就是保障这条产线持续运转的核心能力。
2. 日志查看:让系统自己开口说话
日志是系统最诚实的记录员。当用户反馈“点了生成没反应”“导出卡在99%”“语音突然没了”,别急着重启,先去翻日志。AIVideo的日志结构清晰,按服务分层存放,定位问题快准稳。
2.1 核心日志路径速查表
| 服务类型 | 日志路径 | 查看建议 |
|---|---|---|
| Web前端服务(Flask/FastAPI) | /home/aivideo/logs/web.log | 记录用户请求、接口返回状态、认证失败等 |
| 后端任务队列(Celery) | /home/aivideo/logs/celery.log | 关键!生成失败、超时、任务卡死全在这里 |
| ComfyUI工作流引擎 | /home/aivideo/comfyui/logs/comfyui.log | 画面生成报错、模型加载失败、显存溢出第一现场 |
| TTS语音合成服务 | /home/aivideo/tts/logs/tts.log | 配音中断、音色不可用、文本解析异常 |
| FFmpeg视频合成日志 | /home/aivideo/logs/ffmpeg_*.log(按任务ID命名) | 剪辑失败、格式不支持、音频轨道丢失 |
实操提示:不要用
cat硬翻大日志。推荐组合命令快速定位:# 查看最近100行错误(含ERROR/WARN关键字) tail -100 /home/aivideo/logs/celery.log | grep -i "error\|warn\|fail" # 实时跟踪新日志(按Ctrl+C退出) tail -f /home/aivideo/logs/web.log # 查找某次生成失败的完整上下文(假设任务ID为task_abc123) grep -A 5 -B 5 "task_abc123" /home/aivideo/logs/celery.log
2.2 典型日志问题与速解方案
现象:
celery.log中反复出现MemoryError: CUDA out of memory
原因:当前GPU显存不足,常发生在批量生成高清视频或启用高分辨率模型时
解法:临时降低/home/aivideo/.env中VIDEO_RESOLUTION=1080p改为720p,再重启Celery服务现象:
web.log显示401 Unauthorized,但密码正确
原因:JWT token过期或.env中SECRET_KEY被意外修改
解法:执行sudo systemctl restart aivideo-web重置会话,无需改密现象:
tts.log报错No voice model found for 'zh-CN-XiaoxiaoNeural'
原因:TTS语音包未完整下载或路径权限异常
解法:运行/home/aivideo/tts/fetch_models.sh重新拉取,并确认/home/aivideo/tts/models/目录属主为aivideo用户
记住:日志不是故障说明书,而是线索地图。同一错误在不同日志层级出现,指向的问题深度完全不同——Web层报错可能是前端传参问题,Celery层报错大概率是资源瓶颈,ComfyUI层报错基本锁定模型或显存。
3. 服务监控:掌握产线实时心跳
AIVideo由6个核心服务协同工作,任何一个掉线都会导致视频生成中断。与其等用户投诉,不如主动监控。我们不用复杂Prometheus,用三招轻量级方法守住底线。
3.1 进程级存活检查(每5分钟自动执行)
所有服务均以systemd守护进程运行,检查是否存活只需一条命令:
# 一次性检查全部服务状态 sudo systemctl list-units --type=service --state=running | grep aivideo # 应看到以下6个服务(名称可能略有差异,以实际为准): # aivideo-web.service active (running) # aivideo-celery.service active (running) # aivideo-comfyui.service active (running) # aivideo-tts.service active (running) # aivideo-redis.service active (running) # aivideo-db.service active (running)关键提醒:
active (running)是基础要求,但还不够。有些服务虽显示运行,实则已假死(如Celery worker卡在某个任务不再消费新任务)。此时需进一步验证。
3.2 接口级健康探测(人工/脚本均可)
对关键服务发起轻量HTTP请求,验证其真实可用性:
# 检查Web服务(返回200即正常) curl -s -o /dev/null -w "%{http_code}" http://localhost:5800/health # 检查Celery任务队列(返回{"status":"ok"}即正常) curl -s http://localhost:5800/api/v1/queue/status | jq -r '.status' # 检查ComfyUI引擎(返回页面HTML即正常) curl -s http://localhost:3000 | head -20 | grep -q "ComfyUI" && echo "OK" || echo "FAIL"3.3 资源水位预警(重点关注GPU与磁盘)
AIVideo是GPU密集型应用,显存和磁盘IO是两大瓶颈:
| 监控项 | 安全阈值 | 超限风险 | 快速检查命令 |
|---|---|---|---|
| GPU显存占用 | < 90% | 生成失败、任务排队 | nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader,nounits |
| 系统磁盘使用率 | < 85% | 视频缓存写入失败、日志无法记录 | df -h /home |
| Redis内存使用 | < 2GB | 任务元数据丢失、历史记录异常 | `redis-cli info memory |
运维铁律:当GPU显存持续高于95%超过2分钟,或磁盘使用率突破90%,必须立即干预——暂停新任务提交,优先清理缓存或扩容磁盘。这不是可选项,是防止雪崩的必选项。
4. 磁盘清理:给AI产线腾出呼吸空间
AIVideo在生成过程中会产生大量中间文件:原始分镜图序列、未压缩视频片段、音频缓存、ComfyUI临时工作流节点输出……这些文件不自动清理,3天就能吃光100GB磁盘。清理不是删删删,而是有策略地释放空间。
4.1 清理优先级清单(按风险从低到高)
日志归档(零风险)
/home/aivideo/logs/下超过7天的.log文件可安全压缩:find /home/aivideo/logs -name "*.log" -mtime +7 -exec gzip {} \;临时渲染缓存(低风险)
/home/aivideo/cache/存放视频分段渲染结果,生成成功后自动保留72小时:# 清理所有已标记为"completed"且超时的缓存 find /home/aivideo/cache -name "status.json" -exec grep -l '"status":"completed"' {} \; | xargs -I{} dirname {} | xargs -I{} sh -c 'if [ $(($(date +%s) - $(stat -c %Y {}))) -gt 259200 ]; then rm -rf {}; fi'失败任务残留(中风险,需确认)
/home/aivideo/output/failed/存放生成失败的任务目录,包含大量未清理的中间图:# 列出所有失败任务目录及大小,人工确认后删除 du -sh /home/aivideo/output/failed/*/ | sort -hr | head -10历史成品视频(高风险,需业务确认)
/home/aivideo/output/success/是用户最终下载的视频,默认不自动清理。若磁盘告急,需与业务方确认保留策略(如:只保留最近30天)。
4.2 一键安全清理脚本(推荐保存为/home/aivideo/bin/clean_disk.sh)
#!/bin/bash # AIVideo安全磁盘清理脚本 —— 仅清理明确可删内容 echo "【开始清理】$(date)" echo "1. 归档7天前日志..." find /home/aivideo/logs -name "*.log" -mtime +7 -exec gzip {} \; 2>/dev/null echo "2. 清理超时缓存..." find /home/aivideo/cache -name "status.json" -exec grep -l '"status":"completed"' {} \; 2>/dev/null | \ xargs -I{} dirname {} | \ xargs -I{} sh -c 'if [ $(($(date +%s) - $(stat -c %Y {}))) -gt 259200 ]; then echo "清理: {}"; rm -rf {}; fi' echo "3. 清理失败任务临时文件(保留目录结构)..." find /home/aivideo/output/failed -mindepth 1 -maxdepth 1 -type d | while read dir; do if [ -f "$dir/status.json" ] && grep -q '"status":"failed"' "$dir/status.json" 2>/dev/null; then echo "清理失败任务: $(basename $dir)" find "$dir" -mindepth 1 -delete 2>/dev/null fi done echo "【清理完成】$(date)"赋予执行权限并加入定时任务:
chmod +x /home/aivideo/bin/clean_disk.sh # 每日凌晨2点执行 echo "0 2 * * * /home/aivideo/bin/clean_disk.sh >> /home/aivideo/logs/clean.log 2>&1" | sudo crontab -5. 备份与恢复:守住AI产线的数据命脉
AIVideo的核心数据有两类:结构化数据(用户账号、项目元数据、任务状态)存在PostgreSQL;非结构化数据(生成的视频成品、用户上传的参考图)存在/home/aivideo/output/。备份必须覆盖两者,恢复才能真正还原业务。
5.1 备份策略:每日增量 + 每周全量
- 全量备份(每周日):备份整个PostgreSQL数据库 +
/home/aivideo/output/下所有success/目录 - 增量备份(每日):仅备份当日新增的
/home/aivideo/output/success/子目录 + PostgreSQL WAL日志
为什么不用rsync同步output?
因为/home/aivideo/output/success/目录下是用户正在生成中的视频,文件可能处于写入状态。直接rsync会导致文件损坏。必须等生成完成、状态标记为completed后才可备份。
5.2 手动备份操作(首次配置必做)
# 创建备份目录 sudo mkdir -p /backup/aivideo/{full,incremental} # 1. 备份PostgreSQL(需先创建备份用户) sudo -u postgres pg_dump -Fc aivideo_db > /backup/aivideo/full/db_$(date +%Y%m%d).dump # 2. 备份当日成功视频(只备份状态为completed的目录) find /home/aivideo/output/success/ -maxdepth 1 -type d -name "task_*" | while read task_dir; do if [ -f "$task_dir/status.json" ] && grep -q '"status":"completed"' "$task_dir/status.json"; then tar -cf "/backup/aivideo/incremental/video_$(basename $task_dir)_$(date +%Y%m%d).tar" -C /home/aivideo/output/success/ "$(basename $task_dir)" fi done5.3 灾难恢复流程(严格按顺序执行)
当服务器崩溃或磁盘损坏后,按此顺序恢复:
- 重建基础环境:重装系统,部署相同版本AIVideo镜像,确保
/home/aivideo/目录结构一致 - 恢复数据库:
sudo -u postgres pg_restore -d aivideo_db /backup/aivideo/full/db_20240601.dump - 恢复视频文件:将备份的
video_*.tar解压到/home/aivideo/output/success/ - 修复文件权限:
sudo chown -R aivideo:aivideo /home/aivideo/output/success/ sudo chmod -R 755 /home/aivideo/output/success/ - 重启全部服务:
sudo systemctl daemon-reload sudo systemctl restart aivideo-*
关键验证点:恢复后登录Web界面,检查“我的项目”列表是否完整,随机打开一个历史项目,确认视频播放正常、元数据(标题、时长、生成时间)准确无误。这才是真正的恢复成功。
6. 总结:运维不是救火,而是建立产线免疫力
运维AIVideo,本质是在构建一套可持续的AI视频生产免疫力。日志查看让你听见系统的低语,服务监控帮你握住产线的脉搏,磁盘清理为持续运转腾出空间,备份恢复则是最后的安全气囊。
这四个动作不是孤立的 checklist,而是一个闭环:
- 日志异常 → 触发服务检查 → 发现GPU满载 → 执行磁盘清理释放缓存 → 预防性备份避免数据丢失
没有一劳永逸的配置,只有持续观察的习惯。当你能从celery.log里一眼识别出是显存瓶颈还是模型加载失败,当你能在磁盘使用率跳到87%时就启动清理,当你备份脚本已安静运行了30天——你就不再是运维人员,而是这台AI视频产线的“首席健康官”。
真正的稳定性,不在参数调优里,而在每一次对日志的耐心阅读中,在每一行清理脚本的精准执行里,在每一个备份文件的可靠落盘里。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。