yamot - yet another monitoring tool.

yamot – yet another monitoring tool.

yamot is a web-based server-monitoring tool built for small environments with just a handful servers. It takes a minimum of resources which allows the execution on almost every machine, also very old ones. It works best with Linux or BSD. Windows is not part of the server scope.

You could use it for example to monitor your Raspberry Pi Servers running at home. It takes only a few steps of configuration and after that it displays much relevant server measurement data in your browser:
+ System Load
+ Memory Usage
+ Uptime / Boot Time
+ Costs (calculated)
+ Battery (e.g. for monitoring a mobile device)
+ WiFi Signal Strength
+ Temperatures
+ Processor (Cores, Speed, Usages, …)
+ System (Distro, Version, Architecture, …)
+ Network Services (Open Listening Ports)
+ Network Devices & Addresses
+ Network Interfaces IO (bytes sent/received)
+ Disk Storage Usage (used & total space)
+ Disk Device IO (bytes read/written)
+ Users logged in (name, login date, …)

yamot – yet another monitoring tool.

* Architecture
The architecture is divided up into three parts (original MVC)

* Server Component
This component needs to be executed on the server-system which you want to monitor. It’s basically a simple webserver. For security reasons it just has readonly access to the system. The Auth is done via HTTP Basic Auth, so don’t use it in untrusted networks!

The Server component provides realtime data only. There are no cyclical background tasks or other stuff running which occupy the processor/memory/disk. If you don’t access the server it will take up almost no resources. The server is built with Python3, which of course needs to be installed. Default server port is 9393.

* Controller Component
One server needs to have the additional role of the controller. The controller is also just a webserver which provides a REST-API to manage the application.

The Auth is also done via HTTP Basic Auth, so also don’t use it in untrusted networks! The controller is built with node.js and express.js. If you don’t have those installed, you could also use the Docker-Image called prod. Default controller port is 8080.

* Client Component
Finally the client represents the web-page and gets served by the Controller (on port 8080). The client is built with Angular, some Bootstrap CSS and a subset of FontAwesome Icons. A refresh-cycle to display new data (every 3sec per default) incurs requesting all your servers to get updates of the measured data.


Source: https://github.com/knrdl