AmonOne is an efficient self-hosted server monitoring system written in Python and JavaScript. It is the open source version of Amon. AmonOne has the same codebase and set of features and the main difference between open source and commercial products is that AmonOne can monitor only one server.
AmonOne provides complex system and process monitoring. This tool helps to monitor the core metrics of the observed servers - RAM, Load average, CPU, disk space, Network traffic, etc. Furthermore, AmonOne allows complete monitoring of the CPU and RAM usage of all the processes running on the server. AmonOne is very quick, no more than two minutes are necessary to have a full visibility over the server resources that simplifies the debugging process.
AmonOne features real time email and SMS notifications. In case of alert AmonOne doesn't just provide brief information on the issue, but checks it more profoundly and includes all the details in the notifications that can help to fix the issue as quickly as possible.
AmonOne consists of two main parts: amonone-collector - a collector daemon that starts automatically when the operation system is booted, and amonone - web application, that displays the information. This server monitoring tool stores all information in a Mongo database. The web interface is compulsory if there is a need to collect log information and exception data. AmonOne has only one configuration file (in JSON) that includes several parameters: mongo (configuration options for MongoDB), web_app (configuration options for the web interface: host, port), proxy, system check period, etc.
If you are looking for modern and functional server monitoring software and are satisfied to monitor only one server, take a look at martinrusev.github.io/amonone.