Monit is an 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.
Check your Server status from a Web Browser
Monit has a built-in lightweight HTTP(S) interface and you can use a browser to access the Monit server and check the status.
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 under a DoS attack.
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.
Manage all your Monit servers with M/Monit
Use M/Monit to manage all your Monit servers. M/Monit expand on Monit's capabilities and provides monitoring and management of all your Monit enabled hosts via a modern, clean and well designed user interface which also works on mobile devices.
Monit is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License (AGPL). The license only applies if you plan to distribute 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.
The Monit source code is managed under version control at code.mmonit.com