V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
hmmmbiubiubiu
V2EX  ›  分享创造

做了个工具,用自然语言和服务器聊天排查问题

  •  
  •   hmmmbiubiubiu · 1 天前 · 409 次点击

    一个完全由 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
    

    按向导提示配置:

    1. 选择语言(中文/English )
    2. 添加 LLM Provider (支持 OpenAI 兼容接口)
    3. 输入 API Key
    4. 配置模型列表
    5. (可选)设置 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 命令最佳实践
    开发者 - 快速解决服务器问题

    第 1 条附言  ·  14 小时 20 分钟前
    兄弟们觉得咋样 花了四天时间 全让 ai 搞出来的
    3 条回复    2026-01-28 19:42:36 +08:00
    vodmaker
        1
    vodmaker  
       5 小时 0 分钟前
    我也做了一个: https://github.com/YUHAI0/shex
    hmmmbiubiubiu
        2
    hmmmbiubiubiu  
    OP
       2 小时 53 分钟前
    @vodmaker 想到一块去了. 就是不知道各位运维老哥们是否喜欢这样的工具.
    hmmmbiubiubiu
        3
    hmmmbiubiubiu  
    OP
       2 小时 52 分钟前
    @vodmaker 你自己手撸的?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2997 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:35 · PVG 22:35 · LAX 06:35 · JFK 09:35
    ♥ Do have faith in what you're doing.