#monitoring #server #networking #remote #agent #set #tool

bin+lib resymo-agent

A remote system monitoring tool for a small set of servers

9 releases

0.1.0 Apr 7, 2024
0.1.0-alpha.9 Mar 27, 2024
0.1.0-alpha.7 Mar 22, 2024
0.1.0-alpha.5 Mar 20, 2024
0.1.0-alpha.2 Mar 18, 2024

#967 in Network programming

Download history 93/week @ 2024-03-12 257/week @ 2024-03-19 97/week @ 2024-03-26 229/week @ 2024-04-02 51/week @ 2024-04-09

727 downloads per month

Apache-2.0

230KB
1.5K SLoC

ReSyMo – Remote System Monitoring

crates.io docs.rs GitHub release (latest SemVer) CI

An itch to a scratch of having a few servers, but no dashboard to monitor their status.

Screenshot of an Example

Getting started

  • Install Home Assistant on one machine
  • Set up an MQTT broker (see Architecture below)
  • Deploy the ReSyMo agent on machines you want to monitor

Goals and non-goals

The goal is to have a small tool, allowing to get an overview of a handful of servers. Re-using components where possible, and implementing things when necessary. The overall setup should be straightforward and follow existing patterns.

Current architecture

The idea is to use Home Assistant as a central hub for bringing data together and visualizing it. To connect servers (which may or may not run in public networks) with Home Assistant (which most likely is not running on a public network), and MQTT broker is being used to bridge connectivity. Home Assistant also has an HTTP API for publishing data to it. However, that would mean opening up external access to Home Assistant for servers which are running on a public network. Home Assistant also has an MQTT integration including auto-discovery of devices.

graph TD
;
    subgraph Network A
        B[MQTT Broker]
    end
    subgraph Network B
        A[Server]
    end
    subgraph Network C
        C[Home Assistant]
    end
    A --> B;
    C --> B;

FAQ

Why Home Assistant

While Home Assistant might not be a network monitoring tool, it is a great smart home tool. And for a smaller set of servers, it fits quite well. Including visualization, automation, timeseries data, mobile phone app, notifications, …

Why not XYZ?

I've been looking around for quite a while. Yes, there are some solutions. Most of them are just way too complex for monitoring some basic information of a handful of machines. Some of them are quite invasive.

If you find something better, please let me know.

Dependencies

~22–59MB
~1M SLoC