Monit is a helpful program that automatically monitors and manages server programs to ensure that they not only stay online consistently, but that the file size, checksum, or permissions are always correct. Additionally monit comes with a basic web interface through which all of the processes can be set up. This tutorial will cover the most basic setup and configuration.
Monit is easiest to install through apt-get:
sudo apt-get install monit
Once monit downloads, you can add programs and processes to the configuration file:
sudo nano /etc/monit/monitrc
Monit can be started up with a command that then keeps it running in the background
monit status displays monit’s details:
The Monit daemon 5.3.2 uptime: 1h 25m System 'myhost.mydomain.tld' status Running monitoring status Monitored load average [0.03] [0.14] [0.20] cpu 3.5%us 5.9%sy 0.0%wa memory usage 26100 kB [10.4%] swap usage 0 kB [0.0%] data collected Thu, 30 Aug 2012 18:35:00
Monit is very easy to use nearly out of the box. By default, it is set up to check that services are running every 2 minutes and stores its log file in “/var/log/monit.log”.
These settings can be altered at the beginning of the configuration file in the
set daemon and
set logfile lines respectively.
Monit comes with it’s own web server running on port 2812. To configure the web interface, find and uncomment the section that begins with
set httpd port 2812. Once the section is uncommented, write in your server’s IP or domain name as the address, allow anyone to connect, and then create a monit user and password
set httpd port 2812 use address 184.108.40.2069 # only accept connection from localhost allow 0.0.0.0/0.0.0.0 # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit'
Once this is configured, monit should reload and reread the configuration file, and the web interface will be available:
You will then be able to access the monit web interface by going to “example.com:2812”
Login with your chosen username and password. Your screen should look something like this.
Once the web services are set up, you can begin to input the programs that you want monitored and protected into the "/etc/monit/monitrc" configuration file. To simply ensure that programs stay online, you can use the /etc/init.d commands to stop or start a program.
Here are some example configurations:
check process apache with pidfile /run/apache2.pid start program = "/etc/init.d/apache2 start" with timeout 60 seconds stop program = "/etc/init.d/apache2 stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop"
check process nginx with pidfile /var/run/nginx.pid start program = "/etc/init.d/nginx start" stop program = "/etc/init.d/nginx stop"
Once you have configured all of the programs that you want to run, they will be automatically tracked and restarted should they turn off.
You can control the programs through both the web interface or the command line.
Once you have set up the configuration, check the syntax:
After resolving any possible syntax errors, you can start running all of the monitored programs.
monit start all
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.Sign up now
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
There’s a typo in the apache config:
macrus.hann6: after your make changes to the config file, don’t forget to run $ monit reload. Also make sure the actual pid files exist at that location.
sorry to answer my own question but in order to get rid of that error message & see monit’s status, I had to enable the httpd section in
/et/monit/monitrceven though I wasn’t using the web interface (apparently you have to set the monit httpd process to allow connections from localhost).
Hope this helps someone else late at night while searching Google (it’s 02:42 in London ;-)
I installed monit as above on 12.04 & it’s running but I get this (names changed to protect the innocent):
`$ ps aux | grep monit root 1193 0.0 0.0 5492 832 ? S Sep12 1:27 /usr/bin/monit -c /etc/monit/monitrc fubar 12127 0.0 0.0 4372 812 pts/1 S+ 02:05 0:00 grep --color=auto monit
$ sudo monit status [sudo] password for fubar: monit: error connecting to the monit daemon`
/etc/monit/monitrc& it looks good enough to get things going & as seen above I think it’s running…
Any help appreciated
I have installed Monit on Ubuntu server and that works fine. Now i want to install Monit on another Ubuntu server but that status also required to Show on same web interface (like nagios). Is Monit support on multiple servers? How can i configure ?
Let’s Tweak Your Online Business with the Best Press Release Distribution Service
I’m trying to configure monit to alert if the filesystem use is above a certain percentage. As per the docs it says to use the following:
Can someone please let me know what I use for <unique name> and <path>. Ive tried many things for example:
But everytime i run
sudo monit start all, I get the error
There is no service named "rootfs"
I am on Ubuntu 16.04
Thanks for your help
How to make sure that monit process automatically restarts after system restart on Ubuntu 14.0.4
I’ve following this article but I’m getting an “Execution failed” in apache too, whats the correct command line to put in monit config? apache2? thanks!