41410e4e3db83833d93b5e4a8cfd7e46fbfbdfa6
RMon: Remote Monitoring & Acquisition System
RMon is a lightweight, high-performance remote data acquisition and monitoring system. It consists of a statically-linked Agent that runs on remote Linux machines and a cross-platform UI that manages the agent lifecycle and visualizes data in real-time.
Key Features
- Zero-Dependency Agent: Fully static
muslbinary. Copy and run on any Linux kernel ≥ 3.2. - VSCode-Style Deployment: The UI automatically deploys and starts the agent over SSH. No manual installation required on the remote side.
- Multi-Source Acquisition: Support for UDP streams, CSV files, and custom Shell commands with Regex parsing.
- Optimized Storage: Real-time circular buffers for live display and append-only binary logs for persistent historical data.
- Real-Time Visualization: High-performance plotting using
eguiandegui_plot.
Project Structure
rmon-agent/: The remote server that collects and stores data.rmon-ui/: The desktop application for monitoring and management.rmon-common/: Shared protocol definitions and data models.docs/: Technical specifications and architectural details.
Quick Start
1. Build the Agent (Static)
The agent must be built for the target architecture. For a standard x86_64 Linux target:
cargo build --release --target x86_64-unknown-linux-musl -p rmon-agent
2. Run the UI
cargo run -p rmon-ui
3. Connect
- Enter the SSH Host (alias from your
~/.ssh/config). - Click Connect. The UI will automatically:
- Check if the agent is running on the remote host.
- Deploy the binary to
~/.rmon/agentif missing. - Start a persistent instance.
- Select signals from the tree to begin plotting.
Documentation
- User Guide: How to configure and use RMon.
- Developer Guide: Architecture, protocol, and how to add new sources.
- Agent Specification
- Protocol Reference
Description
Languages
Rust
98.9%
Makefile
1.1%