【Kubernetes】-- Gonzo 之 Go 基于 TUI 的日志分析工具
目录
Gonzo 项目分析与使用指南
1. 项目概述
2. 关键特性
3. 架构与目录
4. 安装与构建
4.1 快速安装(推荐)
5. 快速开始
6. AI 模型与自动选择
7. 环境变量
8. Shell 补全
9. 主题与皮肤(Skins)
10. 与 K9s 集成
11. 常用场景与命令示例
12. OpenTelemetry / OTLP 支持
13. 开发与测试
14. 故障排查(AI 接入)
15. 许可证与贡献
16. 参考链接
Gonzo 项目分析与使用指南
项目地址:Gonzo - Go 基于 TUI 的日志分析工具
1. 项目概述
Gonzo 是一款基于 Go 的终端用户界面(TUI)日志分析工具,支持从本地文件、管道、云日志服务以及 OpenTelemetry OTLP 日志输入进行实时与离线分析,同时可选集成多种 AI 模型进行智能归纳、聚类与问题定位。项目以跨平台 CLI 为核心,配合丰富的主题皮肤、键盘交互和 K9s 集成,适合开发、运维、SRE 在终端内完成高效日志检索与分析。参考
2. 关键特性
-
实时与离线日志分析:支持
stdin
管道、文件与多种后台源;原生支持 OTLP 与 Victoria Logs;自动格式识别;按严重级别上色追踪。 -
交互式仪表盘:受 k9s 启发的 2x2 网格界面,实时图表;Vim 风格导航;可展开的模态视图深入分析。
-
高级过滤:正则、属性过滤、严重级别过滤;键盘/鼠标交互驱动快速下钻。
-
AI 增强洞察:模式识别、异常检测、根因建议;兼容 OpenAI、Ollama、LM Studio 等。
-
多源日志输入:Victoria Logs 流式、OTLP 接收、文件 tail、本地命令管道(如 kubectl)。
-
可定制主题:内置 11+ 主题(如 Dracula、Nord、GitHub Light);支持 YAML 自定义皮肤。
参考(官网特性)
3. 架构与目录
项目采用清晰分层,核心目录如下(节选):
cmd/gonzo/ # 主程序入口(Cobra CLI) internal/tui/ # 终端 UI 实现(Bubble Tea 等)analyzer/ # 日志分析引擎memory/ # 频率/记忆跟踪otlplog/ # OTLP 日志格式处理ai/ # AI 接入与模型选择 skins/ # 主题皮肤定义 formats/ # 日志格式支持 examples/ # 使用示例
参考
4. 安装与构建
-
前置要求:Go 1.21+、Make(可选)
-
常用命令:
# 快速构建二进制 make build # 运行测试 make test # 跨平台构建 make cross-build # 开发模式(format、vet、test、build) make dev
参考
4.1 快速安装(推荐)
# 使用 Go 安装(需 Go 1.21+) go install github.com/control-theory/gonzo/cmd/gonzo@latest # 使用 Homebrew(macOS/Linux) brew install gonzo
-
下载二进制:请从 GitHub Releases 获取适配平台的版本。
-
从源码构建:
git clone https://github.com/control-theory/gonzo.git cd gonzo make build
参考(官网安装)
5. 快速开始
# 最简用法:从文件或命令管道读取日志 cat app.log | gonzo # 指定主题皮肤 gonzo --skin=dracula # 指定 AI 模型(也可不指定,见自动选择) gonzo --ai-model="llama3" # 从 Victoria Logs 流式拉取 gonzo --vmlogs-url="http://localhost:9428" --vmlogs-query="*" # 启用 OTLP 接收 gonzo --otlp-enabled # 启用 AI 分析(以 OpenAI 为例) export OPENAI_API_KEY=sk-your-key-here cat logs.json | gonzo
参考(官网快速开始)
6. AI 模型与自动选择
未指定 --ai-model
时,Gonzo 会按优先级自动选择首个可用模型:
-
OpenAI:优先
gpt-4
→gpt-3.5-turbo
→ 其余可用 -
Ollama:优先
gpt-oss:20b
→llama3
→mistral
→codellama
→ 其余可用 -
LM Studio:使用服务端首个可用模型
-
其他提供方:使用首个可用模型
仍可在运行时通过 m
键打开模型选择面板进行切换(需正确配置 AI 服务)。 参考
7. 环境变量
变量名 | 说明 |
---|---|
OPENAI_API_KEY | OpenAI API Key(启用 AI 功能所需) |
OPENAI_API_BASE | OpenAI 兼容接口地址,默认 https://api.openai.com/v1 |
GONZO_FILES | 逗号分隔的文件/通配路径列表,等价于多次 -f |
GONZO_FOLLOW | 是否跟随模式(true/false) |
GONZO_UPDATE_INTERVAL | 刷新间隔覆盖 |
GONZO_LOG_BUFFER | 日志缓冲区大小 |
GONZO_MEMORY_SIZE | 内存记录大小 |
GONZO_AI_MODEL | 默认 AI 模型覆盖 |
GONZO_TEST_MODE | 测试模式开关 |
NO_COLOR | 关闭彩色输出 |
参考
8. Shell 补全
# Bash source <(gonzo completion bash) # Zsh source <(gonzo completion zsh) # Fish gonzo completion fish | source # PowerShell gonzo completion powershell | Out-String | Invoke-Expression
参考
9. 主题与皮肤(Skins)
-
内置深色:
default
,controltheory-dark
,dracula
,gruvbox
,monokai
,nord
,solarized-dark
-
内置浅色:
controltheory-light
,github-light
,solarized-light
,vs-code-light
,spring
使用示例:
gonzo --skin=dracula gonzo --skin=github-light
自定义皮肤与下载社区主题请参考 SKINS.md
(位于仓库文档)。 参考
10. 与 K9s 集成
在 $XDG_CONFIG_HOME/k9s/plugins.yaml
中新增:
plugins:gonzo:shortCut: Ctrl-Ldescription: "Gonzo log analysis"scopes:- pocommand: shbackground: falseargs:- -c- "kubectl logs -f $NAME -n $NAMESPACE --context $CONTEXT | gonzo"
macOS 建议但不强制设置:XDG_CONFIG_HOME=~/.config
。
使用:在 K9s 中选中 Pod,按 Ctrl-L
,打开 Gonzo 进行实时分析。 参考
11. 常用场景与命令示例
-
本地文件分析:
gonzo -f /var/log/myapp/*.log
-
实时跟随(等价于
tail -f
管道):
kubectl logs -f deploy/myapp | gonzo
-
指定/切换 AI 模型:
gonzo --ai-model="openai/gpt-4o-mini" # 运行中按 m 打开模型选择面板
-
与 Stern 结合(示例,参见仓库 guides):
stern myapp -n prod | gonzo
12. OpenTelemetry / OTLP 支持
Gonzo 原生支持 OTLP 日志格式,可直接消费来自 OTLP 兼容管道的日志数据,进行结构化与上下文丰富的分析,适用于现代可观测性体系的落地与联动排障。 参考
13. 开发与测试
# 单元测试 make test# 竞态检测 make test-race# 集成测试 make test-integration# 使用样例数据演示 make demo
参考
14. 故障排查(AI 接入)
-
LM Studio:
-
确认服务运行且加载模型
-
基础 URL 应含
/v1
:http://localhost:1234/v1
-
使用完整模型名:
--ai-model="openai/model-name"
-
可用模型自检:
curl http://localhost:1234/v1/models
-
-
Ollama:
-
启动服务:
ollama serve
-
校验模型:
ollama list
-
API 测试:
curl http://localhost:11434/api/tags
-
基础 URL:
http://localhost:11434
(无/v1
) -
模型名需包含 tag:如
gpt-oss:20b
,llama3:8b
-
-
OpenAI:
-
校验 API Key 与额度
-
确认所需模型(如
gpt-4
)已开通 参考
-
15. 许可证与贡献
-
许可证:MIT
-
贡献流程:fork → 分支 → 提交 → PR 参考
16. 参考链接
-
仓库主页:https://github.com/control-theory/gonzo
-
官方站点(文档/介绍):
https://gonzo.controltheory.com
如需将本工具纳入团队日常运维与排障流程,建议:
-
统一主题与键位约定,写入团队 Wiki
-
基于 K9s 插件模板结合常用命名空间/上下文生成多条快捷项
-
规范化 AI 调用与日志脱敏策略,保障数据合规与安全