MIT License

项目介绍

joaomagfreitas/zero-monitor 是一个托管在 GitHub 上的开源项目,主要使用 Go 编写,采用 MIT License 许可证,目前获得 139 个 Star、2 次 Fork。

仓库全名
joaomagfreitas/zero-monitor
开源许可证
MIT License
Star 数
139
Fork 数
2
未关闭 Issue
2

README 摘要

zero-monitor One-click lightweight server monitor tool based on ZeroMQ protocol. 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,…

完整内容见 GitHub 原始 README 或本页 。

常见问题

zero-monitor 用什么语言开发?

主要使用 Go 编写,采用 MIT License 许可证,目前有 139 个 Star。

zero-monitor 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 zero-monitor 的源码?

可以直接克隆仓库:git clone https://github.com/joaomagfreitas/zero-monitor.git,默认分支为 master;安装与运行步骤见仓库 README。

zero-monitor 最近还在维护吗?

仓库最近一次更新为 2025年1月2日,当前有 2 个未关闭 Issue;Star 数为 139,可作为社区活跃度的参考。

关于

(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.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

语言占比

CSS
Go
HTML
Shell
Smarty

README

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® Core™ 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)

评论

暂无评论