monit监控linux服务
最近负责的两台服务器需要监控nginx和memcached服务,防止网站访问异常。
我用monit来解决这个需求。
monit是一款linux下的开源软件,可以负责监控系统的服务、进程、文件等内容,并设置一定的条件下执行特定的action。
我们可以通过配置,让monit来检查网站的状态和memcached的状态,发现异常的时候,自动重启服务并邮件通知我们。
我配置了30s检查一次,出现问题发送邮件到我的gmail邮箱。我手机马上就能收到邮件提醒,非常效率。
安装配置步骤:
下载monit
wget http://mmonit.com/monit/dist/monit-5.3.2.tar.gz
解压并安装
tar zxvf monit-5.3.2.tar.gz
cd monit-5.3.2
./configure --prefix=/usr/local/monit
make
make install
配置
先将默认的配置文件拷贝到/etc目录下,然后编辑monitrc文件
cp monitrc /etc/
下面是我的一些配置:
set daemon 30 #设置30s检查一次
set logfile /var/log/monit.log #设定日志文件
#设定邮件
set mailserver smtp.gmail.com PORT 587 USERNAME "yourname@gmail.com" PASSWORD "yourpassword" USING tlsv1
#设定邮件格式
set mail-format {
from: monit@huaximall.com
subject: monit alert -- $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: xinlogs.com
Description: $DESCRIPTION
Your faithful employee,
Monit
}
#设定提醒超时
set alert babodx@gmail.com with reminder on 3 cycles
#设定检查nginx服务
check process nginx with pidfile /usr/local/webserver/nginx-1.0.11/nginx.pid
start program = "/usr/local/webserver/nginx-1.0.11/sbin/nginx"
stop program = "/usr/bin/killall nginx"
if failed host xinlogs.com port 80 protocol http
and request "/t.html"
then restart
if 2 restarts within 3 cycles then timeout
#设定检查memcached服务
check process memcached with pidfile /var/run/memcache.pid
start program = "/usr/local/memcached/bin/memcached -d -m 1024 -u root -p 11211 -c 1024 -P /var/run/memcache.pid"
stop program = "/bin/kill -9 `cat /var/run/memcache.pid`; rm /var/run/memcached.pid"
if failed host 127.0.0.1 port 11211 protocol MEMCACHE then restart
if cpu > 60% for 2 cycles then alert
if cpu > 98% for 5 cycles then restart
if 2 restarts within 3 cycles then timeout
group cache
下面再贴出来提醒的邮件样子给大家看看
这个是检查到nginx被终止后的提醒邮件
Does not exist Service nginx
Date: Thu, 02 Feb 2012 11:31:50
Action: restart
Host: xinlogs.com
Description: process is not running
Your faithful employee,
Monit
下面是自动恢复nginx服务后的提醒邮件
Exists Service nginx
Date: Thu, 02 Feb 2012 11:32:28
Action: alert
Host: xinlogs.com
Description: process is running with pid 6894
Your faithful employee,
Monit
有了这些就可以安心了,万一网站访问异常了。monit会尝试自动恢复的,而且第一时间通知我们。因为我的vps在美国,所以发送到gmail很及时。手机再设置个邮件提醒功能,基本就ok了。