Skip to content

(beta) One-click lightweight server monitor tool based on ZeroMQ protocol. Works on Windows, Linux, macOS, Raspberry PI (x32, x64, arm, arm64). Inspired by nezhahq/nezha, zabbix, prometheus. Takes no more than 15MB to run.

License

Notifications You must be signed in to change notification settings

guackamolly/zero-monitor

Repository files navigation

zero-monitor

One-click lightweight server monitor tool based on ZeroMQ protocol.


status badge

Do you self-host software across diferent machines? Do you want to elevate your devices recoinnassance? Then zero-monitor might be the tool just for you. Think of a mini zabbix/prometheus, but is plug-n-play (download and run a native binary), takes no more than 15MB of RAM and doesn't overtake the CPU from other, more important, programs.

Zero-monitor is your go-to tool to quickly get insights of your server usage and information.

screenshot of my own network nodes overview

How does it work?

In the zero-monitor world, there are two kind of system entities: master and node. Node is one of the server/device you want to monitor (think of monitoring agent), which reports directly and only to master. Master orchestrates nodes by sending them actions, which they will have to complete, and later report their result. One or more nodes compose a network that is managed by master.

overview of a sample network of nodes


The zero part of zero-monitor comes from the wire protocol used for exchanging messages in the network: ZeroMQ. In particular, the tool uses go-zeromq/zmq4 which is a pure go implementation of ZeroMQ, satisfying portability to the maximum.

What data is harvested?

Expect the following data to be harvested:

  • Product vendor and model (e.g., Dell XPS 13)
  • OS hostname, distribution and kernel (e.g., Debian 13 5.15.0-119-generic)
  • CPU load, model, architecture, available cores and threads (e.g., Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz, x86_64, 2 cores, 4 KB cache)
  • RAM load and capacity (e.g., 8GB)
  • Disks capacity, load, name and model (e.g., SSD SCSI - Samsung_SSD_870 ( 233 GB) )
  • GPUs model and vendor (e.g., NVIDIA Corporation - GK208M [GeForce GT 720M])
  • Network current and total Rx/Tx (e.g, 200 MB Rx, 10 MB Tx))
  • Uptime (e.g, 10 days, 4 hours)

A more updated source can be found on the models definition: info.go

Features

Besides monitoring, you can also take advantage of these built-in features:

  • List currently open TCP and UDP connections
  • List installed system packages
  • List and manage system processes (aka task manager)
  • Measure Internet connection speed by taking speedtests

Getting Started

The simplest way to get started is by using the one-click deploy scripts provided by the tool:

bash <(wget -qO- https://raw.githubusercontent.com/guackamolly/zero-monitor/refs/heads/master/.github/get-master)

Running this command will download master binary specifically for your OS + Architecture and then run it.

bash <(wget -qO- https://raw.githubusercontent.com/guackamolly/zero-monitor/refs/heads/master/.github/get-node)

Running this command will download node binary specifically for your OS + Architecture and then run it.


After successfully running master, you will need to generate an invite link so nodes can join the network:

  1. Open dashboard (e.g., http://[::]/dashboard)
  2. Click the share button
  3. Open homepage (e.g., http://[::])
  4. Copy the command to start a new node
  5. Paste the command in a shell of the server/device to monitor

Alternatively, you can download any of the master/node pre-compiled binaries from the releases page or build them from source (see build).

Please refer to env.md to get guidance on how to properly configure master/node usage.

Tech Stack

  • Go (echo v4, html/template)
  • ZeroMQ (data exchange protocol)
  • BoltDB (in-memory database)
  • HTML + CSS (occasionally some JavaScript for setting up websocket connections and adding chart interactivity)

About

(beta) One-click lightweight server monitor tool based on ZeroMQ protocol. Works on Windows, Linux, macOS, Raspberry PI (x32, x64, arm, arm64). Inspired by nezhahq/nezha, zabbix, prometheus. Takes no more than 15MB to run.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published