mon project was created to monitor the availability of services, and sending alerts on prescribed events. Services are defined as anything tested by a "monitor" program, which can be something as simple as pinging a system, or as complex as analyzing the results of an application-level transaction. Alerts are actions such as sending emails, making submissions to ticketing systems, or triggering resource fail-over in a high-availability cluster.
A design goal of mon is to maintain simplicity and provide the right abstractions for monitoring so that the system can be scalable, easy to use, and trivial to extend for the widest variety of applications. The learning curve is very shallow for initial installation, configuration, and customization. Monitors and alerts are simple to write using any language, and simple to incorporate into a site configuration. Reporting and control functionality is easily customized with the aid of a TCP-based protocol interface.