Files
sysmonstm/ctrl/README.md
2026-01-22 12:55:50 -03:00

2.5 KiB

Deployment Configurations

This directory contains deployment configurations for sysmonstm.

Architecture

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  Collector  │────▶│     Hub     │────▶│    Edge     │────▶│   Browser   │
│   (mcrn)    │     │   (local)   │     │   (AWS)     │     │             │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
┌─────────────┐            │
│  Collector  │────────────┘
│   (nfrt)    │
└─────────────┘

Directory Structure

ctrl/
├── collector/    # Lightweight agent for each monitored machine
├── hub/          # Local aggregator (receives from collectors, forwards to edge)
├── edge/         # Cloud dashboard (public-facing, receives from hub)
└── dev/          # Full gRPC stack for development

Production Deployment (3-tier)

1. Edge (AWS)

Public-facing dashboard that receives metrics from hub.

cd ctrl/edge
docker compose up -d

2. Hub (Local Server)

Runs on your local network, receives from collectors, forwards to edge.

cd ctrl/hub
EDGE_URL=wss://sysmonstm.mcrn.ar/ws EDGE_API_KEY=xxx docker compose up -d

3. Collectors (Each Machine)

Run on each machine you want to monitor.

docker run -d --name sysmonstm-collector --network host \
  -e HUB_URL=ws://hub-machine:8080/ws \
  -e MACHINE_ID=$(hostname) \
  -e API_KEY=xxx \
  registry.mcrn.ar/sysmonstm/collector:latest

Development (Full Stack)

For local development with the complete gRPC-based architecture:

# From repo root
docker compose up

This runs: aggregator, gateway, collector, alerts, redis, timescaledb

Environment Variables

Collector

  • HUB_URL - WebSocket URL of hub (default: ws://localhost:8080/ws)
  • MACHINE_ID - Identifier for this machine (default: hostname)
  • API_KEY - Authentication key
  • INTERVAL - Seconds between collections (default: 5)

Hub

  • API_KEY - Key required from collectors
  • EDGE_URL - WebSocket URL of edge (optional, for forwarding)
  • EDGE_API_KEY - Key for authenticating to edge

Edge

  • API_KEY - Key required from hub