linux使用monit监控服务运行状态
monit类似于supervisor,supervisor可以运行一些后台服务,在服务崩溃(crash)的时候重启服务。这两个服务都是非常好用的监控程序,这篇blog记录使用monit的基本方法。
关于monit的优点可以参考这里http://stackoverflow.com/questions/12156434/what-is-the-advantage-of-using-supervisord-over-monit
1.下载编译
monit的官网地址http://mmonit.com/monit/ ,运行如下命令下载编译
请自行安装linux的编译环境。monit安装过程中需要pam的依赖,先安装pam
centos运行如下命令安装
ubuntu运行如下命令安装
tar xvf monit-5.10.tar.gz
cd monit-5.10
./bootstrap
./configure
make
make install
2.配置文件和init文件
复制文件到指定目录
cp system/startup/rc.monit /etc/init.d/monit
chmod +x /etc/init.d/monit
chkconfig monit on
修改/etc/init.d/monit文件MONIT=/usr/bin/monit为程序运行目录(使用which monit查看路径)
修改/etc/monitrc文件,主要配置循环周期,web管理密码和端口,开启include。修改点如下
set logfile /var/log/monit.log
set httpd port 2812 and
use address 192.168.163.36 # only accept connection from localhost
allow 0.0.0.0/0.0.0.0 # 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
include /etc/monit.d/*
3.添加监控实例
以opensips服务为例,新建/etc/monit.d/opensips文件
vi /etc/monit.d/opensips
添加如下内容
check process opensips with pidfile /var/run/opensips.pid
group opensips
start program = "/etc/init.d/opensips start"
stop program = "/etc/init.d/opensips stop"
if failed host 192.168.163.36 port 5060 then restart
if 5 restarts within 5 cycles then timeout
运行monit
上述配置的含义为监听192.168.163.36 5060 端口,如果失败,则重启opensips。在重启5次失败后不再重试,避免无限循环。这样,即使在终端运行killall opensips后,在30秒内,monit会自动重启opensips服务。monit的log被配置在/var/log/monit.log文件,可以通过192.168.163.36:2812访问web控制台(需要关闭iptables或添加例外,如配置文件中,用户名为admin密码monit)。
monit同时还可以配置崩溃时发送邮件的功能,需要后台开启一个邮件服务器。
web控制界面截图如下:
参考链接 http://blog.chinaunix.net/uid-26249914-id-3836126.html
Tags: linux monit 服务监控 自动重启 进程监控
发表评论