Search Posts on Binpipe Blog

Install Monit in CentOS Linux for Monitoring

Monit is an open source utility for managing and monitoring, processes, files, directories and filesystems on a UNIX system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations. However, you are the master and monit would only do what you define in the config file for it to do. We will discuss here how to install and configure a basic monit installation in Centos or Redhat Linux.

Monit can start a process if it does not run, restart a process if it does not respond and stop a process if it uses too much resources. You can use Monit to monitor files, directories and filesystems for changes, such as timestamp changes, checksum changes or size changes. You can also monitor remote hosts; Monit can ping a remote host and can check TCP/IP port connections and server protocols. Monit is controlled via an easy to use control file based on a free-format, token-oriented syntax. Monit logs to syslog or to its own log file and notifies you about error conditions and recovery status via customizable alert. For more infop on monit you can visit their official site

Install Monit

The first, you need to enable EPEL (Extra Packages for Enterprise Linux) to install monit package. Login as root and type the following command:
[root@superman ~]# vi /etc/yum.repos.d/epel.repo
Add or uncomment the following content at end of the file
name=Extra Packages for Enterprise Linux 5 - $basearch 

Save and close the file. And type the following command
[root@superman ~]# yum clean all
To install monit, type the following command
[root@superman ~]# yum install monit
Turn on monit when system start up
[root@superman ~]# chkconfig --levels 235 monit on

Configure Monit

The configuration file of monit in Centos or RedHat is /etc/monit.conf. Type the following command to edit
[root@superman ~]# vi /etc/monit.conf
Sampe configuration file
set daemon 60 
set logfile /var/log/monit.log 
set mailserver localhost 
set mail-format { from: 
subject: $SERVICE $EVENT at $DATE 
message: Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.  } 
set alert  include /etc/monit.d/*
Now to monitor Apache, create a file /etc/monit.d/httpd, enter
[root@superman ~]# vi /etc/monit.d/httpd
Add following content
check process httpd with pidfile /var/run/ 
group apache  start program = "/etc/init.d/httpd start" 
stop program = "/etc/init.d/httpd stop"  if failed host port 80 
protocol http then restart  if 5 restarts within 5 cycles then timeout
MySQL server restart configuration directives
check process mysqld with pidfile /var/run/mysqld/ 
group mysql  start program = "/etc/init.d/mysqld start" 
stop program = "/etc/init.d/mysqld stop"  if failed host port 3306 
then restart  if 5 restarts within 5 cycles then timeout
SSH server configuration directives
check process sshd with pidfile /var/run/  start program "/etc/init.d/sshd start"  stop program "/etc/init.d/sshd stop"  if failed host port 22 protocol ssh then restart  if 5 restarts within 5 cycles then timeout

Setup Monit Mail Alerts via SMTP: 

 set mailserver, port 25 
 username "superman" password "binpip" using tlsv1, localhost 
 with timeout 15 seconds

Type the following command to start monit
[root@superman ~]# /etc/init.d/monit start
You can verify that monit is started from /var/log/monit.log log file:
[root@superman ~]# tail -f /var/log/monit.log  
Sample ouputs:
[IST June 17 14:51:18] info     : '' Monit started

To understand Monit config file better follow this link :
Do share your comments below.


1 comment:

  1. I'd like to thank you for the efforts you have put in penning this site. I really hope to view the same high-grade blog posts from you later on as well. In truth, your creative writing abilities has encouraged me to get my own, personal website now ;)

    My web page - track website changes


Hi, Leave a comment here and one of the binary piper's will reply soon :)