As you sit down for a lovely Christmas dinner with family and friends, your phone rings. The frantic client is on the line shouting that the server just went down. Don't you wish you had a helpful program that automatically monitors and restarts the servers automatically.
Monit is an open source process supervision program that monitoring your server processes and restarts failed services. It is easy to setup and relatively painless to use.
Here is a quick tutorial to configure Monit to monitor Apache and MySQL servers.
$ sudo apt-get install monit
# Monit Configuration settings
$ sudo nano /etc/monit/monitrc
set daemon 60
set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
set eventqueue
set httpd port 2812 and
use address localhost
allow localhost
include /etc/monit/conf.d/*
# Create Apache2 monitoring file
$ sudo nano /etc/monit/conf.d/apache2
check process apache with pidfile /run/apache2.pid
start program = "/etc/init.d/apache2 start"
stop program = "/etc/init.d/apache2 stop"
# Create MySQL monitoring file
$ sudo nano /etc/monit/conf.d/mysql
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 monit configuration for syntax errors
$ sudo monit -t
# Start Monit daemon
sudo service monit start
# Check Monit status
$ sudo monit status
The Monit daemon 5.3.2 uptime: 4m
Process 'mysqld'
status Running
monitoring status Monitored
pid 2676
parent pid 1
uptime 4d 8h 1m
children 0
memory kilobytes 256380
memory kilobytes total 256380
memory percent 12.5%
memory percent total 12.5%
cpu percent 0.0%
cpu percent total 0.0%
data collected Wed, 10 Dec 2014 08:43:13
Process 'apache'
status Running
monitoring status Monitored
pid 4230
parent pid 1
uptime 4d 8h 1m
children 27
memory kilobytes 11556
memory kilobytes total 391484
memory percent 0.5%
memory percent total 19.1%
cpu percent 0.0%
cpu percent total 0.0%
data collected Wed, 10 Dec 2014 08:43:13
System 'system_foobar.org'
status Running
monitoring status Monitored
load average [0.00] [0.01] [0.05]
cpu 0.0%us 0.0%sy 0.0%wa
memory usage 666736 kB [32.6%]
swap usage 140 kB [0.0%]
data collected Wed, 10 Dec 2014 08:43:1
That's all folks! Now you have a wonderful Christmas!