databuff-diag — 用对话排查服务器与容器问题
databuff-diag 是一款面向运维 / SRE 的现场环境诊断工具:在浏览器里用自然语言描述现象,AI 会自动在本机或通过 SSH 执行检查命令(docker、systemctl、kubectl、日志查看等),把结果汇总成可读结论,必要时生成诊断报告。
适合这些场景:
- 容器不健康、服务起不来、端口不通
- 需要快速摸清一台(或多台)机器上的运行状态
- 不想在终端里一条条敲命令,希望有人帮你「边查边解释」
核心能力
对话式排障
- Web 界面,打开浏览器即可开始对话
- 用普通话描述问题,AI 自动规划检查步骤并执行
- 对话中展示工具调用摘要,过程透明、不「空回复」
- 不完整回复自动追问,减少「接下来将…」类半截回答
大模型接入
- 支持 OpenAI 兼容 API(DeepSeek、通义等主流厂商)
- 设置页一键测试连接、保存并启用
- 支持 LLM 原生 function calling(read / write / edit / bash / ssh),与 tool JSON 双轨兼容
- 支持自定义响应解析器,适配企业内网大模型网关
- 「启用 Tools」开关(默认开启):关闭后不携带
tools/tool_choice,兼容不支持原生 function calling 的网关 - 网关 messages 格式自动适配(合并 system、末尾补 user、tool 结果转 user)
- 嵌套 JSON 响应中可正确解析
tool_calls
本机与远程排查
- 本机直接执行 shell 命令
- 可配置多台远程主机(SSH),统一在一个界面排查
- 密码由系统注入,对话中无需手写密码
安全与可控
- 危险命令审批:写操作、高风险命令需人工批准
- 策略引擎区分只读 / 写操作;
[、test等测试命令归类为只读 - 目录树等代码块内容不会误识别为待执行命令
- 只读复合命令(如
cd && if [ -f … ]; then head …)不会被误判为写操作
会话与报告
- 每个对话有独立会话工作区,可沉淀诊断报告与脚本
- 支持诊断报告导出
- 会话数据统一存放在
sessions/<id>/目录
部署与运行
- 一条命令启动:
./databuff-diag serve - 默认后台运行(
--daemon),关闭终端后服务仍继续;可用--foreground前台运行 - 启动时输出可点击的访问地址;绑定
0.0.0.0时自动显示局域网 IP - 正常运行不打印 HTTP 访问日志,仅 5xx 错误写入日志
- 发布包解压后统一进入
databuff-diag子目录
跨平台
- macOS(Apple Silicon / Intel)、Linux(x86_64 / ARM64)、Windows 10/11
- Linux 静态链接(
CGO_ENABLED=0),CentOS 7 / RHEL 8 等旧 glibc 环境可直接运行
快速开始
# 下载解压后
./databuff-diag serve