Monit is a free open source 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.
What Monit can do
You can use Monit to monitor daemon processes or similar programs
running on localhost. Monit is particular useful for monitoring daemon
processes, such as those started at system boot time from
/etc/init.d/. For instance sendmail, sshd, apache and mysql.
In difference to many monitoring systems, Monit can act if an error situation should occur, e.g.; if sendmail is not running, Monit can start sendmail again automatically or if apache is using too much resources (e.g. if a DoS attack is in progress) Monit can stop or restart apache and send you an alert message. Monit can also monitor process characteristics, such as; how much memory or cpu cycles a process is using.
You can also use Monit to monitor files, directories and filesystems on localhost. Monit can monitor these items for changes, such as timestamps changes, checksum changes or size changes. This is also useful for security reasons - you can monitor the md5 or sha1 checksum of files that should not change and get an alert or perform an action if they should change.
Monit can monitor network connections to various servers, either on localhost or on remote hosts. TCP, UDP and Unix Domain Sockets are supported. Network test can be performed on a protocol level; Monit has built-in tests for the main Internet protocols, such as HTTP, SMTP etc. Even if a protocol is not supported you can still test the server as you can configure Monit to send any data and test the response from the server.
Monit can be used to test programs or scripts at certain times, much like cron, but in addition, you can test the exit value of a program and perform an action or send an alert if the exit value indicates an error. This means that you can use Monit to perform any type of check you can write a script for.
Finally, Monit can be used to monitor general system resources on localhost such as overall CPU usage, Memory and Load Average.
It is important for a system monitoring tool to just work - all the time and you should be able to trust it to do so. A system monitoring tool need to be non-intrusive and you should be able to forget about it once it's installed. That is, until sshd dies on your co-located server, 50 miles away. When this happens, it is good to know that you have installed this extra layer of security and protection - just wait a few seconds and Monit will restart the sshd daemon. It is also helpful to get an alert mail before the server disks are full or if your http server suddenly is slashdotted.
Monit is designed as an autonomous system and does not depend on plugins nor any special libraries to run. Instead it works right out of the box and can utilize existing infrastructure already on your system. For instance, Monit will easily integrate with init and can use existing runlevel rc-scripts to manage services. There are also flexibility for those special cases when you need a certain setup for a service.
Monit compiles and run on most flavors of UNIX. It is a small program and weights in at just over 500kB. There is support for compiling with glibc replacements such as uClibc if you need it to be even smaller.
Check server status with a Web Browser
Monit provides a built-in HTTP(S) interface and you can use a browser to access the Monit server. Check out the screen shoots page for an overview of available pages.
Running Monit on more than one server?
Try M/Monit and manage all your servers from one Web Interface.
Monit is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License (AGPL). Our goal with using AGPL is to preserve the concept of copyleft with Monit. The license only applies if you plan to distribute or provide Monit to third parties. In that case, our hope and the reason we use AGPL is that any modification done to Monit can be contributed back so others can benefit. Otherwise, you can do whatever you want with Monit without any restrictions.
Monit is an open-source project consisting of non-paid volunteers who contribute work and code to the project in their own free time. The project consists of a core team of developers and many contributors from around the world. There is also a large and active community of users who discuss usage of Monit, answer questions and share tips and tricks on the Monit mailing lists.
Mailing listsWe have setup a mailing list which contain many individuals who will help answer detailed requests for help. You may also search the archive for answers. Join the Monit general list if you have questions or if you simply want to discuss Monit and submit ideas, suggestions, and comments. New releases will also be announced to this list. Join the Monit developer list if you want to discuss design issues, code changes, additions, etc.
If you only want to get a notification when new releases of Monit are available, please join the very low traffic Monit announce mailing list. This list is used to announce major releases and other important information about the Monit project. Messages are posted only by the Monit project; there is no discussion.
Thanks to the Free Software Foundation (FSF) for hosting the mailing lists.