ttop — 带历史记录和通知功能的系统监控工具
常见情况:服务器突然卡死了,却找不到原因?标准工具如 top 或 htop 只显示当前状态,无法提供历史上下文。 ttop 正是为解决这一问题而生——一款支持历史查看功能和灵活通知系统的监控工具。
ttop 比常用工具有哪些优势?
ttop 与同类工具的主要区别在于保存历史数据。 htop 只显示当前系统状态,而 ttop:
- 通过 systemd.timer 或 crontab 保存快照
- 支持浏览变更历史
- 生成 ASCII 图表用于趋势可视化
- 支持触发通知

核心功能
-
历史数据
- 查看任意时间点的系统状态
- 通过 asciigraph 集成生成 ASCII 图表
- 能够找到负载峰值时刻并详细分析
-
灵活的触发器
- 通过外部脚本配置通知
- 支持 Telegram、邮件和其他渠道
- 多种触发类型:关键事件和信息通知
-
丰富的 TUI 界面
- 高亮显示关键数值
- 按程序分组进程
- 过滤功能:按用户 (
@user)、Docker 容器 (#container) - 执行线程树
-
安装简便
- 提供 Arch Linux (AUR) 安装包
- 提供 x86-64 静态二进制文件
- 无需 root 权限即可运行
技术实现原理
ttop 使用 Nim 编写——一种现代化的静态类型编程语言。项目使用:
- systemd.timer/cron 用于数据采集
- asciigraph 用于可视化
- Docker API 用于容器监控
触发器系统通过 stdin 将数据传递给外部脚本,并附带一组环境变量:
TTOP_ALERT=true/false # признак критического события
TTOP_HOST # имя хоста
TTOP_TYPE # тип события (alert/info)
实际应用
-
事后问题分析 早上发现服务器昨晚"挂"了?使用
ttop可以查看历史记录,找到问题的确切时刻。 -
自动通知 配置 CPU 负载过高或内存不足时向 Telegram 发送通知。
-
Docker 容器监控 使用
#container过滤器快速找到"耗资源"的容器。 -
趋势分析 ASCII 图表有助于可视化周期性负载峰值。
Telegram 通知配置示例
[[trigger]]
on_alert = true
cmd = '''
read -d '' TEXT
curl -X POST \
-H 'Content-Type: application/json' \
-d "{\"chat_id\": $CHAT_ID, \"text\": \"$TEXT\", \"disable_notification\": $TTOP_INFO}" \
https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage
'''
值得一试吗?
ttop 特别适合以下人群:
- 系统管理员
- DevOps 工程师
- 使用资源密集型应用的开发者
- 需要比
top更高级监控功能的所有人
该项目正在积极开发中,代码开源(MIT 许可证),已在 GitHub 上获得超过 350 颗星。如果你经常需要分析系统负载, ttop 可能成为你的新宠工具。
如何安装?
对于 Arch Linux:
yay -S ttop
对于其他系统(静态二进制文件):
curl -LO https://github.com/inv2004/ttop/releases/latest/download/ttop
chmod +x ttop
mv ttop ~/.local/bin/
试试看——你会以一种全新的视角看待系统监控!
相关项目