>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Nim

ttop — 带历史记录和通知功能的系统监控工具

常见情况:服务器突然卡死了,却找不到原因?标准工具如 tophtop 只显示当前状态,无法提供历史上下文。 ttop 正是为解决这一问题而生——一款支持历史查看功能和灵活通知系统的监控工具。

ttop 比常用工具有哪些优势?

ttop 与同类工具的主要区别在于保存历史数据。 htop 只显示当前系统状态,而 ttop

  • 通过 systemd.timer 或 crontab 保存快照
  • 支持浏览变更历史
  • 生成 ASCII 图表用于趋势可视化
  • 支持触发通知

ttop 截图

核心功能

  1. 历史数据

    • 查看任意时间点的系统状态
    • 通过 asciigraph 集成生成 ASCII 图表
    • 能够找到负载峰值时刻并详细分析
  2. 灵活的触发器

    • 通过外部脚本配置通知
    • 支持 Telegram、邮件和其他渠道
    • 多种触发类型:关键事件和信息通知
  3. 丰富的 TUI 界面

    • 高亮显示关键数值
    • 按程序分组进程
    • 过滤功能:按用户 (@user)、Docker 容器 (#container)
    • 执行线程树
  4. 安装简便

    • 提供 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)

实际应用

  1. 事后问题分析 早上发现服务器昨晚"挂"了?使用 ttop 可以查看历史记录,找到问题的确切时刻。

  2. 自动通知 配置 CPU 负载过高或内存不足时向 Telegram 发送通知。

  3. Docker 容器监控 使用 #container 过滤器快速找到"耗资源"的容器。

  4. 趋势分析 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/

试试看——你会以一种全新的视角看待系统监控!

相关项目