想给团队用上 AI 助手,但数据不能出内网?SaaS 大模型 API 按 Token 收费,跑日志分析一天就烧几百块?Ollama + Open WebUI 是目前本地部署开源大模型最轻量的方案——一台 Linux 服务器 + Docker,30 分钟跑起来。本文从真实运维场景出发,给出完整部署流程和 3 个常踩的坑。
痛点:运维团队用 AI 的两难
越来越多运维团队想用大模型辅助日志分析、告警摘要、文档生成。但现实很骨感:
- 数据合规:生产日志含敏感信息,不能往 OpenAI / Claude API 传
- 成本失控:用 API 跑自动化脚本,Token 费一个月轻松破万
- 网络限制:内网环境压根访问不了外部 API
解决方案很清晰:本地部署开源大模型。2026 年,Qwen3、Llama 4、Gemma 3 等开源模型能力已经够用,关键是部署门槛要低。
方案:Ollama + Open WebUI
| 组件 | 作用 | 资源要求 |
|---|---|---|
| Ollama | 本地模型推理引擎,一条命令拉模型、跑推理 | CPU 可跑,GPU 加速可选 |
| Open WebUI | Web 界面,支持多模型切换、对话管理、RAG | Docker 部署,占用极小 |
核心优势:不依赖云 API、数据不出内网、部署维护成本极低。
实操步骤
第 1 步:安装 Ollama
# Linux 一键安装
curl -fsSL https://ollama.com/install.sh | sh
# 验证安装
ollama --version
# 设置为系统服务(安装脚本默认已配置 systemd)
systemctl status ollama
第 2 步:拉取模型
# 拉取 Qwen3 8B — 中英双语,运维场景表现优秀
ollama pull qwen3:8b
# 如果服务器有 24GB+ 显存,可以上 32B 版本
# ollama pull qwen3:32b
# 快速测试模型是否正常
ollama run qwen3:8b "用一句话解释什么是 OOM Killer"
模型选型参考:
| 模型 | 参数量 | 内存需求 | 适用场景 |
|---|---|---|---|
| qwen3:8b | 8B | 8GB RAM / 6GB VRAM | 日常问答、日志摘要、脚本生成 |
| qwen3:32b | 32B | 24GB RAM / 20GB VRAM | 复杂分析、长文本理解 |
| llama4-scout | 17Bx16E | 32GB RAM / 24GB VRAM | 多语言、代码生成 |
| codestral | 25B | 16GB RAM / 14GB VRAM | 纯代码场景 |
第 3 步:用 Docker 部署 Open WebUI
# 创建数据持久化目录
mkdir -p /opt/open-webui/data
# 启动 Open WebUI(自动连接本机 Ollama)
docker run -d \
--name open-webui \
--restart always \
-p 3000:8080 \
-v /opt/open-webui/data:/app/backend/data \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
--add-host=host.docker.internal:host-gateway \
ghcr.io/open-webui/open-webui:main
# 检查容器状态
docker logs -f open-webui --tail 50
启动后访问 http://<服务器IP>:3000,首次注册的用户自动成为管理员。
第 4 步:配置 Ollama 监听地址(关键)
默认 Ollama 只监听 127.0.0.1,如果 Open WebUI 和 Ollama 不在同一台机器,需要改监听地址:
# 编辑 systemd 配置
sudo systemctl edit ollama
# 添加以下内容
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
# 重启生效
sudo systemctl daemon-reload
sudo systemctl restart ollama
# 验证监听
ss -tlnp | grep 11434
# 应该看到 0.0.0.0:11434
第 5 步:配置 Nginx 反代 + 基础鉴权
内网部署也要有基本的访问控制:
server {
listen 443 ssl;
server_name ai.internal.example.com;
ssl_certificate /etc/nginx/ssl/internal.crt;
ssl_certificate_key /etc/nginx/ssl/internal.key;
# 基础认证
auth_basic "AI Platform";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 流式输出需要关闭缓冲
proxy_buffering off;
}
}
# 生成 htpasswd 文件
htpasswd -c /etc/nginx/.htpasswd ops-team
nginx -t && systemctl reload nginx
避坑指南
坑 1:CPU 推理慢到不可用
现象:8B 模型在纯 CPU 上响应 30 秒以上,体验极差。
解法:
- 确认 Ollama 是否检测到 GPU:ollama ps 查看推理设备
- 没有 GPU 的服务器,选 4B 以下小模型(如 qwen3:4b),或用 q4_0 量化版本
- 终极方案:加一张 RTX 4060(8GB VRAM,二手 1500 元),8B 模型推理速度提升 10 倍以上
坑 2:Docker 容器连不上宿主机 Ollama
现象:Open WebUI 页面显示 "Connection refused" 或模型列表为空。
解法:
# 方案 A:使用 host 网络模式(最简单)
docker run -d --network host --name open-webui \
-v /opt/open-webui/data:/app/backend/data \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
ghcr.io/open-webui/open-webui:main
# 方案 B:确认 host.docker.internal 解析正常
docker exec open-webui curl -s http://host.docker.internal:11434/api/tags
坑 3:模型文件占满磁盘
现象:拉了几个模型后 / 分区满了,系统告警。
解法:
# Ollama 模型默认存储路径
ls -lh ~/.ollama/models/
# 修改存储路径到大容量磁盘
sudo systemctl edit ollama
# 添加:
# [Service]
# Environment="OLLAMA_MODELS=/data/ollama/models"
# 清理不用的模型
ollama list
ollama rm <不需要的模型>
运维场景实战示例
部署完成后,团队可以直接在 Open WebUI 里这样用:
Prompt: 分析以下 Nginx 错误日志,找出 5xx 错误的根因并给出修复建议:
[error] 2026/05/01 03:22:15 [emerg] 1234#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
[error] 2026/05/01 03:22:16 [crit] 1234#0: *567 connect() to 10.0.1.5:8080 failed (111: Connection refused)
也可以通过 Ollama 的 API 接口接入自动化脚本:
# 调用本地模型 API 做日志摘要
curl -s http://localhost:11434/api/generate \
-d '{
"model": "qwen3:8b",
"prompt": "概括以下告警信息的核心问题:CPU usage 95%, disk /data 98%, OOM killed 3 processes",
"stream": false
}' | jq -r '.response'
总结
- 最低门槛方案:一台 8GB 内存的 Linux 服务器 + Docker,跑 Qwen3 4B/8B 足够覆盖日志分析、脚本生成、文档问答场景
- 数据安全:所有推理在本地完成,零数据外泄风险
- 成本:除硬件外零运营成本,不按 Token 计费
- 建议路径:先在内网跑 PoC → 团队试用 → 接入自动化流水线(告警摘要、日志分析、变更审核)
本地大模型不是要替代云端 API,而是解决"数据不能出去、成本不能失控"这两个硬约束。Ollama + Open WebUI 让部署门槛降到最低,运维团队值得一试。