GoForum › 🌐 V2EX
做了个工具,用自然语言和服务器聊天排查问题
hmmmbiubiubiu ·
2026-01-27 19:57 ·
0 次点赞 · 0 条回复
一个完全由 AI 编写的开源运维工具,支持中文交互,多模型自动切换
写在前面
作为运维工程师,你是否遇到过这些场景:
- 凌晨 3 点被告警吵醒,脑子一片混乱不知道从哪里开始排查
- 面对陌生的系统,不知道该用什么命令诊断问题
- 需要查手册、搜 StackOverflow ,才能找到合适的诊断命令
- nginx 日志几万行,不知道如何快速定位异常
现在,你可以直接问 AI:”服务器负载很高,帮我排查原因“
项目简介
AI Shell Assistant (aiassist) 是一个基于大语言模型的智能终端工具,通过自然语言交互为运维人员提供诊断分析、方案建议和命令执行指导。
GitHub: https://github.com/llaoj/aiassist
核心特点
✅ 自然语言交互 - 用人话提问,AI 给出专业诊断
✅ 智能命令建议 - 自动分析并给出最合适的 Shell 命令
✅ 连续对话分析 - 自动传递上一条命令的输出,支持最多 10 层递归诊断
✅ 管道模式 - 直接分析日志输出,支持 13,000 行 nginx 日志
✅ 多模型支持 - 通义千问、GPT-4 、DeepSeek 等,自动切换
✅ 安全可控 - 查询命令和修改命令差异化展示,严格确认机制
✅ 完美中文 - 支持中文输入、光标编辑、Ctrl+C 退出
实际使用场景
场景 1:服务器负载异常排查
$ aiassist "服务器负载很高,帮我排查原因"
[AI] 让我们先检查系统负载和 CPU 使用情况:
[查询命令]
top -b -n 1 | head -20
是否执行此命令? (y/n, exit 退出): y
[执行成功]
top - 03:24:15 up 127 days, 5:32, 2 users, load average: 8.45, 7.23, 6.89
Tasks: 256 total, 3 running, 253 sleeping...
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 nginx 20 0 2.156g 1.234g 12.3m R 98.3 15.6 124:56 nginx
[AI] 发现 nginx 进程 (PID 1234) CPU 占用 98.3%,内存使用 1.2GB 。
让我们查看 nginx 的连接状态:
[查询命令]
ss -ant | grep :80 | wc -l
是否执行此命令? (y/n, exit 退出): y
[执行成功]
15234
[AI] 发现当前有 15,234 个活跃连接到 80 端口。建议检查是否遭受 DDoS 攻击...
场景 2:管道模式分析日志
# 直接分析 nginx 访问日志
$ tail -1000 /var/log/nginx/access.log | aiassist "分析访问日志"
[AI] 分析结果:
1. 发现来自 192.168.1.100 的异常请求:1 分钟内发起了 523 次请求
2. 路径 /api/login 被频繁访问,可能存在暴力破解
3. 建议执行:
- 检查该 IP 的请求模式
- 临时封禁该 IP
- 启用限流策略
# 分析 Docker 容器状态
$ docker ps -a | aiassist "帮我看看容器有什么问题"
[AI] 发现 3 个容器处于 Exited 状态:
- redis-cache (退出码: 137) - 内存不足被 OOM Killer 杀死
- app-worker (退出码: 1) - 启动失败,建议查看日志
- nginx-proxy (退出码: 0) - 正常退出
场景 3:交互式问题诊断
$ aiassist
??? 请输入问题: 为什么我的磁盘满了
[AI] 让我们先查看磁盘使用情况...
[查询命令] df -h
??? 请输入问题: /var 目录占用最大
[AI] 让我们查看/var 目录下哪些子目录占用空间最大...
[查询命令] du -sh /var/* | sort -hr | head -10
??? 请输入问题: /var/log 占了 80GB
[AI] 让我们查看具体是哪些日志文件...
技术亮点
1. 智能递归分析
支持最多10 层递归命令分析,AI 会:
- 自动读取每条命令的输出
- 将输出作为上下文传递给下一轮分析
- 逐步深入定位问题根源
2. 内存保护机制
- 防止内存耗尽和无限递归
3. 严格的安全控制
- 查询命令(绿色) → 一次确认 → 执行
- 修改类命令( rm 、chmod 等)强制二次确认
- 最大限度防止误操作
4. 完美的中文支持
- ✅ 支持中文输入编辑
- ✅ 光标左右移动
- ✅ 删除字符时提示符不消失
- ✅ Ctrl+C 优雅退出
5. 多模型自动切换
# 配置文件按优先级排列
providers:
qwen: # 优先使用
enabled: true
gpt4: # Qwen 失败后切换
```yaml
# 配置文件按优先级排列
providers:
qwen: # 优先使用
enabled: true
gpt4: # Qwen 失败后切换
enabled: true
deepseek: # 最后备选## 快速开始
### 一键安装
```bash
curl -fsSL https://raw.githubusercontent.com/llaoj/aiassist/main/scripts/install.sh | bash
- macOS (Intel, Apple Silicon)
- Windows (x86_64, ARM64, i386)
- FreeBSD (x86_64, ARM64)
配置大模型
aiassist config
按向导提示配置:
- 选择语言(中文/English )
- 添加 LLM Provider (支持 OpenAI 兼容接口)
- 输入 API Key
- 配置模型列表
- (可选)设置 HTTP 代理
支持的模型:
- 通义千问( Qwen )
- OpenAI GPT-4⁄3.5
- DeepSeek
- 其他 OpenAI 兼容接口
开始使用
# 交互式对话
aiassist
# 单次问答
aiassist "服务器负载很高,帮我排查"
# 管道模式
tail -f /var/log/nginx/access.log | aiassist "分析日志"
docker ps -a | aiassist "检查容器状态"
项目背景
这个项目有个特别之处:完全由 AI 编写。
从需求分析、架构设计、代码实现、文档编写,全部由 AI ( Claude )完成。这也从侧面证明了 AI 在代码生成领域的能力已经相当成熟。
技术栈:
- Go 1.21+
- Cobra (CLI 框架)
- Liner (行编辑)
- Viper (配置管理)
适用人群
✅ 运维工程师 - 快速诊断生产环境问题
✅ SRE - 自动化故障排查流程
✅ DevOps - CI/CD 环境调试
✅ 新手运维 - 学习 Shell 命令最佳实践
✅ 开发者 - 快速解决服务器问题
0 条回复
添加回复
你还需要 登录
后发表回复