
MONIT - UNIX Systems Management

                                      
Introduction
------------

Monit is a utility for managing and monitoring processes, programs, files,
directories and filesystems on a Unix system. Monit conducts automatic
maintenance and repair and can execute meaningful causal actions in error
situations.

Monit logs to syslog or to its own log file and notifies you about error
conditions via customizable alert messages. Monit can perform various
TCP/IP network checks, protocol checks and can utilize SSL for such checks.
Monit provides an optional http(s) interface and you can use a browser to
access the Monit program.


System requirements
-------------------

* Memory and Disk space

  A minimum of 1 megabytes RAM are required and around 500KB of free disk
  space. You may need more RAM depending on how many services Monit should
  monitor.

* ANSI-C Compiler and Build System

  You will need an ANSI-C99 compiler installed to build Monit. The GNU C
  compiler (GCC) from the Free Software Foundation (FSF) is recommended. In
  addition, your PATH must contain basic build tools such as make.


Installation
------------

Monit utilize the GNU auto-tools and provided the requirements above are
satisfied, building Monit is conducted via the standard;

 ./configure
 make
 make install 

This will install Monit and the Monit man-file in /usr/local/bin and
/usr/local/man/man1 respectively. If you want another location than
/usr/local, run configure with the prefix options, like so: ./configure
--prefix=<dir>

Use ./configure --help for build and install options. By default, Monit is
built with SSL, PAM and large file support. You may change this with the
--without-<xxx> options to ./configure. E.g. --without-ssl, --without-pam
or --without-largefiles.


QUICK START
-----------

After you have built Monit you can simply start the monit program from the
build directory to test it. Monit will use the monitrc control file located
in this directory for it's configuration. The file is setup to start
Monit's http server so you have something interesting to look at; After you
have started monit, point your browser to http://127.0.0.1:2812/ and log in
with the username admin and password monit.

Once started, monit will run as a background process. To stop monit, use
monit quit. To run monit in the foreground and in diagnostic mode, start
monit with the -Iv options. In diagnostic mode, monit will print debug
information to the console. Use ctrl+c to stop monit in diagnostic mode. To
see all options for the program, use monit -h.

Copy monitrc in the build directory to $HOME/.monitrc or if you plan to run
Monit as root, to /etc/monitc. Use this file as a starting point to write
your own configuration file for Monit.


DOCUMENTATION
-------------

Please use `man monit' for an in-depth documentation of the program. More 
documentation can be found at http://mmonit.com/monit/documentation/


Questions and support
---------------------

If you have questions or comments about the software or documentation
please subscribe to the Monit general mailing list and post your questions
there. http://lists.nongnu.org/mailman/listinfo/monit-general


Acknowledgments
---------------

Thanks to the Free Software Foundation (FSF) for hosting the mailing list.

The design of libmonit was inspired by principles put forth by David R. 
Hanson <drh@drhanson.net> in his excellent book "C Interfaces and 
Implementations". You can learn more about this book here 
http://www.cs.princeton.edu/software/cii/


Contact information
-------------------

Monit is a product of Tildeslash Ltd. a company registered in Norway and in
United Kingdom. For further information about this Software, please visit 
http://mmonit.com/contact/
