Monit is not available from the system base repositories, you need to add and enable third party epel repository to install monit package under your RHEL/CentOS systems.
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # sudo rpm -Uvh epel-release-6*.rpm
Install Monit
# yum install monit
Monit has it’s web interface that runs on port 2812 using web server. To enable web interface you need to make changes in monit configuration file.
# nano /etc/monit.conf
Uuncomment the following section and add the IP address or domain name of your server, allow anyone to connect and change monit user and password or you can use default ones.
set httpd port 2812 and use address localhost # only accept connection from localhost allow localhost # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit' allow @monit # allow users of group 'monit' to connect (rw) allow @users readonly # allow users of group 'users' to connect readonly
Restart Monit
# /etc/init.d/monit start
Add Monit to start at boot
# chkconfig monit on
in /etc/monit.d
Add httpd
# nano /etc/monit.d/httpd check process httpd with pidfile /var/run/httpd/httpd.pid start program = /etc/init.d/httpd start stop program = /etc/init.d/httpd stop if failed host 127.0.0.1 port 80 protocol http then restart if 5 restarts within 5 cycles then timeout #Use for specific host #if failed host domain.com port 80 protocol HTTP # then restart #if totalmem > 75% for 2 cycles then restart
Add mysql
#nano /etc/monit.d/mysql check process mysqld with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysqldd start" stop program = "/etc/init.d/mysqld stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout
Nginx
check process nginx with pidfile /var/run/nginx.pid start program = "/etc/init.d/nginx start" stop program = "/etc/init.d/nginx stop"
Check the syntax
# monit -t
Restart monit
# service monit restart
You can verify that monit service is started by checking log file.
# tail -f /var/log/monit [BDT Apr 3 03:06:04] info : Starting monit HTTP server at [localhost:2812] [BDT Apr 3 03:06:04] info : monit HTTP server started [BDT Apr 3 03:06:04] info : 'tecmint.com' Monit started [BDT Apr 3 03:06:04] error : 'nginx' process is not running [BDT Apr 3 03:06:04] info : 'nginx' trying to restart [BDT Apr 3 03:06:04] info : 'nginx' start: /etc/init.d/nginx