If you are running a VPS, for a production server, it is very useful to have a process that monitors, and restarts if failed, and notifies you of key processes, like apache, mysql, postfix & ssh.
Monit is a free open source tool that does the job.
Took me a little while to get my head around the setup, but it is actually very simple, one you know, and can be done in 5 minutes.
These are the step I take on Debian (should be the same for Ubuntu)
sudo apt-get install monit
You don’t need to start anything or add it to any startup files, it does that automatically
There are a few settings needed to allow notification, and email address, an email server and a httpd server so you can monitor. These are in /etc/monit/monitrc
sudo vim /etc/monit/monitrc
Find the comment line with the word mail server. My mail-server is on MailGun and my server is on Google Cloud Compute so uses port 2525. (obviously change the myuser / mypasswd / mydomain )
set mailserver smtp.mailgun.org port 2525 username "myuser@mydomain.com" password "mypasswd"
Find the comment line # set alert sysadm@foo.bar and add the line
set alert myuser@mydomain.com
Find the comment # set httpd port 2812 and uncomment (remove the #) the first 3 lines so you get
set httpd port 2812 and use address localhost # only accept connection from localhost allow localhost # allow localhost to connect to the server and
Save the file & then do a quick configuration test
sudo monit -t
if OK reload monit
sudo /etc/init.d/monit reload
and check the log (as any issues with mail server will show now )
sudo tail -f /var/log/monit.log
ctril-c to stop following the log
check the status, the following command should show just one ‘System’
sudo monit status
Now we add the services we want to monitor, for me that is apache, mysql, ssh and postfix and these are all redefined in /etc/monit/monitrc.d so we just need to copy the definitions into /etc/monit/conf.d like so
cd /etc/monit/monitrc.d sudo cp apache2 openssh-server mysql postfix ../conf.d
restart monit
sudo /etc/init.d/monit reload
check the status , the following should give you all the info
sudo monit status |more
And that is it, now if say mysql dies, it will be restarted and you will get an email
by
Tags:
Leave a Reply