# tracer **Repository Path**: Xi_Tong/tracer ## Basic Information - **Project Name**: tracer - **Description**: A comprehensive CLI tool for Linux system troubleshooting and diagnostics. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-02-06 - **Last Updated**: 2026-08-15 ## Categories & Tags **Categories**: devtools **Tags**: Go语言, Linux ## README # tracer 一个全面的 Linux 系统故障排查和诊断命令行工具。 ## 概述 `tracer` 是一个单二进制命令行工具,专为 Linux 系统管理员和 SRE 设计,用于诊断和排查 80% 的常见系统级问题。它提供对系统信息的只读访问,无需代理或外部服务。 ## 功能特性 - **单一二进制文件**:无依赖,易于部署 - **只读操作**:安全运行,从不修改系统状态 - **支持不同权限**:适用于 root 和非 root 用户 - **双重输出格式**:人类可读文本和结构化 JSON - **多发行版支持**:支持 Ubuntu 18.04+、CentOS/RHEL 7+ 和通用 Linux - **AI 助手**:集成 Coze 和 Dify 的 AI 驱动故障排查 - **主机信息收集**:全面的主机详情收集(主机名、操作系统、内核、CPU、内存) - **增强的服务管理**:检测失败、崩溃和启动缓慢的服务 - **高级网络分析**:接口状态、IP 地址、路由、DNS 和 TCP 统计 - **详细内存信息**:包括 slab、大页和交换空间分析 - **全面日志分析**:问题检测、关键字搜索和日志条目查看 ## 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ tracer CLI │ │ (单一二进制文件) │ └─────────────────────────────────────────────────────────────┘ │ ┌─────────────────────────────┼─────────────────────────────┐ │ │ │ ┌─────────────────────────────▼─────────────────────────────┐ │ 命令层 (Cobra) │ │ sys | cpu | mem | disk | net | proc | svc | log | time | hw │ │ | ai | host-info │ └─────────────────────────────┬─────────────────────────────┘ │ ┌─────────────────────────────▼─────────────────────────────┐ │ 收集器层 │ │ ProcFS | SysFS | Files | Network Readers | Host Info │ └─────────────────────────────┬─────────────────────────────┘ │ ┌─────────────────────────────▼─────────────────────────────┐ │ 平台层 │ │ Ubuntu | CentOS/RHEL | Generic Adapters │ └─────────────────────────────┬─────────────────────────────┘ │ ┌─────────────────────────────▼─────────────────────────────┐ │ 代理层 │ │ Coze | Dify AI 集成 │ └─────────────────────────────┬─────────────────────────────┘ │ ┌─────────────────────────────▼─────────────────────────────┐ │ 输出层 │ │ Human Formatter | JSON Formatter │ └─────────────────────────────────────────────────────────────┘ ``` ## 项目结构 ``` tracer/ ├── cmd/ │ └── tracer/ # 主入口点 │ └── main.go ├── internal/ │ ├── cmd/ # 命令实现 │ │ ├── sys/ │ │ ├── cpu/ │ │ ├── mem/ │ │ ├── disk/ │ │ ├── net/ │ │ ├── proc/ │ │ ├── svc/ │ │ ├── log/ │ │ ├── time/ │ │ ├── hw/ │ │ ├── ai/ # AI 助手命令 │ │ └── hostinfo/ # 主机信息命令 │ ├── collector/ # 数据收集器 │ │ ├── sys/ │ │ ├── cpu/ │ │ ├── mem/ │ │ ├── disk/ │ │ ├── net/ │ │ ├── proc/ │ │ ├── svc/ │ │ ├── log/ │ │ ├── time/ │ │ └── hw/ │ ├── hostinfo/ # 主机信息收集 │ ├── agent/ # AI 代理集成 │ ├── model/ # 数据模型 │ ├── output/ # 输出格式化器 │ ├── constants/ # 常量 │ └── platform/ # 平台适配器 │ ├── ubuntu/ │ ├── centos/ │ └── generic/ ├── pkg/ # 可重用包 │ ├── procfs/ # ProcFS 工具 │ ├── sysfs/ # SysFS 工具 │ ├── reader/ # 文件读取器 │ └── utils/ # 通用工具 ├── test/ │ ├── unit/ # 单元测试 │ └── integration/ # 集成测试 ├── scripts/ # 构建和部署脚本 └── docs/ # 文档 ``` ## 命令 ### 系统概览 - `tracer sys info` - 系统信息(发行版、内核、运行时间) - `tracer sys load` - 系统负载平均值 - `tracer sys health` - 系统健康检查 ### CPU - `tracer cpu info` - CPU 详情(型号、核心数、频率) - `tracer cpu usage` - CPU 使用统计 - `tracer cpu top` - CPU 使用最高的进程 - `tracer cpu governor` - CPU 频率调节器状态 ### 内存 - `tracer mem info` - 内存信息(总量、可用、缓存、slab、大页) - `tracer mem usage` - 内存使用统计 - `tracer mem top` - 内存使用最高的进程 - `tracer mem swap` - 交换空间信息 ### 磁盘 - `tracer disk info` - 磁盘信息(设备、大小、类型) - `tracer disk usage` - 磁盘使用情况(df) - `tracer disk io` - 磁盘 I/O 统计 - `tracer disk mount` - 挂载点信息 ### 网络 - `tracer net info` - 网络信息(接口、IP、路由、DNS、TCP 统计) - `tracer net interface` - 网络接口状态 - `tracer net ip` - IP 地址 - `tracer net route` - 路由表 - `tracer net dns` - DNS 配置 - `tracer net tcp` - TCP 连接统计 ### 进程 - `tracer proc list` - 进程列表 - `tracer proc info ` - 进程详情 - `tracer proc fd ` - 打开的文件描述符 - `tracer proc env ` - 环境变量 - `tracer proc tree` - 进程树 ### 服务 - `tracer svc info` - 显示所有服务信息 - `tracer svc status [service-name]` - 显示服务状态 - `tracer svc failed` - 显示失败的服务 - `tracer svc crashed` - 显示最近崩溃的服务 - `tracer svc slow` - 显示启动缓慢的服务 - `tracer svc logs [service-name]` - 显示服务日志 ### 日志 - `tracer log info` - 显示日志分析摘要 - `tracer log issues` - 显示检测到的日志问题 - `tracer log search [keyword]` - 搜索日志中的关键字 - `tracer log entries` - 显示日志条目 - `tracer log grep ` - 在日志中 grep 关键字 ### 时间 - `tracer time now` - 当前时间 - `tracer time ntp` - NTP 同步状态 - `tracer time timezone` - 时区信息 ### 硬件 - `tracer hw cpu` - CPU 硬件详情 - `tracer hw mem` - 内存硬件详情 - `tracer hw disk` - 磁盘硬件详情 - `tracer hw nic` - 网络接口硬件详情 ### 主机信息 - `tracer host-info` - 主机基本信息(主机名、操作系统、内核、CPU、内存) ### AI 助手 - `tracer ai ask ` - 向 AI 代理提问 - `tracer ai` - AI 驱动的故障排查辅助(支持聊天模式) - `--chat` - 启用聊天模式(仅适用于 Coze 代理) - `--with-host-info` - 在 AI 请求中包含主机信息 - `--stream` - 启用流式输出 - `--config ` - 代理配置文件路径 - `--agent ` - 使用的代理名称 - `--debug` - 调试模式(显示原始响应) ## 全局选项 - `--output json|text` - 输出格式(默认:text) - `--quiet` - 安静模式,只显示关键信息 - `--watch ` - 连续监控模式 - `--no-color` - 禁用彩色输出 - `--version` - 显示版本信息 - `--help` - 显示帮助信息 ## AI 代理配置 要使用 AI 助手功能,您需要在 `~/.tracer/config.yaml` 创建配置文件: ```yaml agents: coze: type: coze name: coze endpoint: https://api.coze.cn/v1/chat workflow_id: your_workflow_id bot_id: your_bot_id # 聊天模式必需 timeout: 60 dify: type: dify name: dify endpoint: https://api.dify.ai/v1/chat workflow_id: your_workflow_id timeout: 60 context: max_diagnose_input_length: 10000 debug: false ``` ### 支持的 AI 代理类型 - **coze**:Coze AI 平台(支持聊天模式) - **dify**:Dify AI 平台 ## 主机信息收集 `host-info` 命令收集全面的主机详情,包括: - 主机名 - 主机类型(物理、虚拟、容器) - 操作系统发行版和版本 - 内核版本 - 架构 - 系统运行时间 - CPU 型号和核心数 - 总内存 ## 使用示例 ```bash # 获取系统概览 tracer sys info # 检查 CPU 使用情况(JSON 输出) tracer cpu usage --output json # 每 5 秒监控磁盘 I/O tracer disk io --watch 5 # 列出失败的服务 tracer svc failed # 检查进程详情 tracer proc info 1234 # 查看监听端口 tracer net listen # 获取主机信息 tracer host-info # 获取主机信息(JSON 格式) tracer host-info --output json # 向 AI 代理询问系统问题 tracer ai ask "我的系统为什么很慢?" # 向 AI 代理询问并包含主机信息 tracer ai ask "我的系统为什么很慢?" --with-host-info # 启动 AI 聊天模式 tracer ai --chat --agent coze # 使用 AI 代理并启用流式输出 tracer ai ask "如何优化我的系统?" --stream ``` ## 构建 ```bash # 为 Linux 构建 make build # 为多个平台构建 make build-all # 运行测试 make test ``` ## 支持的发行版 - Ubuntu 18.04+ - CentOS / RHEL 7+ - 其他发行版(使用通用回退) ## 许可证 MIT 许可证