如何不依赖命令也能高效排障Catpaw Chat?

摘要:TL;DR:catpaw chat 让你用自然语言排障——说"最近有 OOM 吗",AI 帮你查 dmesg;说"谁在吃磁盘",AI 帮
TL;DR:catpaw chat 让你用自然语言排障——说"最近有 OOM 吗",AI 帮你查 dmesg;说"谁在吃磁盘",AI 帮你跑 du 和 df。本文整理 12 个高频排障场景,每个都对比"传统命令行"和"一句话搞定",附带 AI 在幕后调用了什么工具。即使你不用 catpaw,也能当作一份排障命令速查表。 一个灵魂拷问 你能在 5 秒内回忆出以下命令吗? # 查看 TCP 各状态连接数 ss -ant | awk '{print $1}' | sort | uniq -c | sort -rn # 查看某进程的线程及其 wchan(卡在哪个内核函数) ls /proc/<pid>/task | while read tid; do echo -n "$tid "; cat /proc/$tid/wchan 2>/dev/null; echo done # 查看 conntrack 表使用率 echo "$(cat /proc/sys/net/netfilter/nf_conntrack_count) / $(cat /proc/sys/net/netfilter/nf_conntrack_max)" | bc -l # 查看 Listen 队列溢出次数 grep -E 'ListenOverflows|ListenDrops' /proc/net/netstat # 按磁盘 I/O 排序进程 awk '{if(NR>1 && $1~/[0-9]+/) print $0}' /proc/<pid>/io 记不住?正常。 这些命令不是用来记的——它们散落在 /proc 的几十个文件和几百个命令行工具里,每个有自己的语法和参数,组合方式千变万化。哪怕是工作十年的 SRE,排障时也经常要 Google 一下。 但现在是 2025 年了。 你有没有想过:为什么排障的时候,人类要去适应机器的语言,而不是反过来? You: 最近有 OOM 吗? AI: 发现 2 次 OOM Kill 事件…… 这就是 catpaw chat 在做的事——你说人话,它帮你跑命令。 catpaw chat 是什么 catpaw 是一个带 AI 大脑的轻量监控 Agent。catpaw chat 是它的交互排障模式: ./catpaw chat 启动后进入对话界面,你可以用自然语言描述问题,AI 会调用内置的 90+ 诊断工具 来帮你排查,工具覆盖 CPU、内存、磁盘、网络、进程、内核、日志、容器等各个领域。 关键特性: 不用记命令:说"帮我看看磁盘",AI 知道该跑什么 不用解析输出:AI 看原始数据,给你总结好的结论 多步推理:AI 会根据前一步结果决定下一步查什么("内存高 → 查 Top 进程 → 查具体进程的 fd 和连接") 安全可控:诊断工具是只读的;如果需要执行 shell 命令,AI 会先征得你的同意 下面我们通过 12 个场景看看它怎么用。 场景 1:CPU 飙高了,谁在吃? 传统方式 # 先看整体 top -bn1 | head -20 # 看负载是否超过核数 uptime nproc # 找到 CPU 最高的进程 ps aux --sort=-%cpu | head -10 # 如果是 Java,还得 jstack jstack <pid> > /tmp/thread_dump.txt 4 条命令,还得人工比对"负载 vs 核数"来判断是不是真的高。 catpaw chat You: CPU 好像有点高,帮我看看 AI: [调用 cpu_usage] 当前 CPU 总使用率 87.3%,其中: - user: 72.1%, system: 12.8%, iowait: 2.4% [调用 cpu_load_average] 负载 1m/5m/15m = 12.3/10.8/8.2,当前 4 核, 负载/核 比值 3.08,显著偏高。 [调用 top_cpu_processes] Top 3 CPU 进程: 1. java (PID 8847) — 68.2% CPU, 运行 3d12h 2. python3 (PID 12301) — 11.5% CPU, 运行 2h 3. nginx worker (PID 3021) — 3.1% CPU 结论:CPU 压力主要来自 PID 8847 的 Java 进程,持续占用 68% CPU。建议检查该进程是否存在死循环或 GC 问题。
阅读全文