Files
2026-04-11 21:11:15 +02:00

47 lines
2.0 KiB
Markdown

# 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 `musl` binary. 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 `egui` and `egui_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:
```bash
cargo build --release --target x86_64-unknown-linux-musl -p rmon-agent
```
### 2. Run the UI
```bash
cargo run -p rmon-ui
```
### 3. Connect
1. Enter the **SSH Host** (alias from your `~/.ssh/config`).
2. Click **Connect**. The UI will automatically:
- Check if the agent is running on the remote host.
- Deploy the binary to `~/.rmon/agent` if missing.
- Start a persistent instance.
3. Select signals from the tree to begin plotting.
## Documentation
- [User Guide](USER_GUIDE.md): How to configure and use RMon.
- [Developer Guide](DEVELOPER_GUIDE.md): Architecture, protocol, and how to add new sources.
- [Agent Specification](docs/agent-spec.md)
- [Protocol Reference](docs/protocol.md)