TL;DR

rs-top là một remote system monitor viết bằng Rust, cho phép theo dõi nhiều host Linux cùng lúc qua SSH trong một terminal dashboard kiểu top/htop. Điểm khác biệt: agentless (không cần cài gì trên máy đích), read-only (không cần sudo), và chỉ dựa trên các utility Linux có sẵn như top, cat /proc/..., systemctl. Cài 1 dòng: cargo install rs-top.

rs-top multi-host terminal dashboard hiển thị CPU, RAM, process list và systemd units qua SSH

What's new

Tác giả ruiiiijiiiiang vừa đẩy rs-top lên GitHub và cộng đồng dev bắt đầu chú ý sau khi bài đăng trên X lan toả. Khác với rtop cũ (Go, 2015, single-host) đã gần như dừng bảo trì, rs-top hiện đại hoá toàn bộ bằng Rust và mở rộng sang multi-host dashboard trong cùng một TUI.

Why it matters

Với các team DevOps/SRE quản lý fleet nhỏ 5–50 server, dựng Prometheus + Grafana + node_exporter nhiều khi là over-engineering: bạn đổ công sức vào setup time-series database, alertmanager, dashboard, retention policy… chỉ để trả lời một câu hỏi đơn giản — "mấy con máy này đang chạy ra sao?".

Nhất là trong môi trường bastion-only, production lockdown hoặc homelab — nơi không thể (hoặc không muốn) cài agent lên máy đích — thì lựa chọn gần như về 0. Bạn SSH vào, gõ top, free -m, systemctl status ... từng máy một, switch tab liên tục. rs-top lấp đúng khoảng trống đó: SSH một lần, thấy song song CPU/RAM/process/systemd unit của toàn fleet, không để lại gì sau lưng trên remote.

Triết lý "read-only, no sudo, no agent" cũng giúp qua cửa security review dễ hơn hẳn: không có privilege escalation, không có process lạ chạy nền, audit log chỉ thấy SSH session và các command read-only quen thuộc.

Technical facts

  • Language: Rust 99.7% codebase.
  • Stack: Ratatui cho TUI, Tokio async runtime, openssh-rust cho SSH multiplexing.
  • Remote dependency: chỉ cần ssh, top, cat, systemctl — đều có sẵn trên mọi distro Linux chuẩn.
  • No root, no agent: chạy dưới user SSH thường, không ghi/đổi gì trên remote.
  • Reuse SSH config: đọc ~/.ssh/config, identity files, agent forwarding — không cần khai báo lại credential.

Comparison

ToolLanguageMulti-hostAgentlessTrạng thái
rs-topRustActive (2026)
rtopGoKhôngDormant (từ 2015)
htopCLocalKhông native qua SSH
Prometheus + node_exporterGoKhông — phải cài agentActive, nhưng heavy

Use cases

  • Homelab / self-hosted: một khung hình xem luôn NAS, Raspberry Pi, VPS cá nhân.
  • Incident response: SSH vào box production đang cháy, cần htop view trên nhiều máy mà không cài gì.
  • Bastion-only env: read-only user không có quyền cài agent — rs-top vẫn chạy được.
  • Small fleet DevOps: 5–50 server, không đáng dựng Prometheus stack.

Installation

Ba cách cài, chọn cái phù hợp:

# Cargo (phổ biến nhất)
cargo install rs-top

# Nix flakes (không cần cài gì cố định)
nix run github:ruiiiijiiiiang/rs-top

# Arch Linux (AUR)
yay -S rs-top

Sau đó tạo ~/.config/rs-top.toml:

[[hosts]]
name = "web-prod-1"
address = "10.0.0.11"
user = "ops"
port = 22
identity_file = "~/.ssh/id_ed25519"

[[hosts]]
name = "db-prod"
address = "10.0.0.20"
user = "ops"

Chạy rs-top là xong. Phím: Tab/Shift+Tab chuyển host, j/k scroll process, q thoát.

Limitations & pricing

  • Linux-only remote: macOS/BSD chưa support (do phụ thuộc /proc, systemctl).
  • Không có historical metrics / alerting: chỉ real-time, không lưu time-series, không trigger alert — muốn cái đó vẫn phải Prometheus.
  • Không thu metric app-level: agentless nên không có custom exporter.
  • Pricing: miễn phí, MIT license, source code 100% public.

What's next

Roadmap chưa công khai chi tiết, nhưng hướng mở rộng hợp lý và được cộng đồng đề xuất trong issue: support remote macOS (thay /proc bằng vm_stat / sysctl), export snapshot sang Prometheus textfile collector để lưu lịch sử, config hot-reload khi file rs-top.toml thay đổi, và per-container stats cho host chạy Docker/Podman.

Nếu bạn đang quản lý vài con VPS cá nhân, một homelab Proxmox, hay một cụm staging nhỏ — đây là công cụ đáng để cargo install trong vòng 30 giây và thử ngay. Ấn tượng đầu tiên: Ratatui render mượt, openssh multiplexing khiến mỗi host chỉ mở 1 SSH connection duy nhất và tái sử dụng, CPU overhead trên local gần như không đo được.

Nguồn: GitHub rs-top, rtop (rapidloop), X post của QingQ77.