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 License)があり、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/
試してみてください — システム監視を新しい目で見るようになります!
関連プロジェクト