FreeNATS is a completely free extensible network monitoring and reporting system with a wide range of test types, reporting/alerting options, publishable views, SLA reporting, and more besides. Built primarily by one crazed developer (as a substitute for human contact), it nonetheless incorporates quite a lot of community content and add-ons.
Standard tests are also known as "server side tests" in that they run on the monitoring server and connect to the monitored node, nothing needs installed onto the node. These are by far the most common and most used of the tests. Out of the box tests include:
All these tests are configurable in terms of parameters (e.g. credentials, retries, failure threasholds, etc). For a full list see the tests documentation.
Another way of monitoring a node, and gaining much more detail from the operating system, is by installing a little script which reports back to the FreeNATS server. This setup can either be pulled (FreeNATS server polls node) or pushed (node connects to FreeNATS server) to support most network configurations.
Such nodeside monitors are available for both POSIX-compatable (Linux, OSX, BSD, Unix) and Windows hosts and allow the collection and monitoring of items such as:
New tests can easily be added either by the core development team or by anyone (either altering the scripts or writing their own XML generator). Full details on nodeside monitoring can be found on the wiki.
All of the tests can be configured to have a set number of retries and configured threashold values before triggering a warning or an alert.
When an alert is raised a range of actions can occur, as configured. The interface will show an alert (replicated in any published views), emails can be generated, and/or external events triggered by calling a remote URL or piece of local event code.
A core feature of FreeNATS is the ability to create and publish embeddable views in external web pages, for example putting performance graphs or alert statuses onto an intranet page. This allows for integration with third-party web content. For more detail see the views documentation.
Also in-built is a feature allowing the creation of SLA/availability reports which can be periodically run for a given reporting period and provide "uptime"/availability statistics for given nodes/groups/services.
At it's heart FreeNATS is highly extensible, externally via a data API and internally using a plugin and event handling system. This allows developers to interact and extend FreeNATS as they see fit.
Example extensions are shipped with FreeNATS in the extras package which provides a good example of extensibilty and also some niche functionality that may be required. Extras shipped with FreeNATS include:
For more information see the extras package documentation.
To make use of FreeNATS in other systems, for example pulling out historic performance or currently failed nodes, a data API has been defined supporting both XML and Javascript formats.
Extending FreeNATS to add functionality or behaviour typically takes one of two forms:
Whatever you are developing be sure to have a look at the general Developing with FreeNATS Refrence Documentation.