Monit 是一个用来监测系统状态的工具,不但可以用来监视进程、服务、文件、目录、文件系统,还可以在服务 down 掉的时候自动重启服务或者当某个进程占用过多的资源的时候自动停掉进程,并且支持 Email 报警功能、远程服务器监测、web 管理界面等,功能很多很强大。VPSee 用 monit 来监测多个 VPS 和独立服务器,如果某个 VPS down 了、某个服务器资源紧张,就能第一时间知道,而且某个服务停了的话可以自动重启服务。
安装 monit
在 CentOS 下安装和配置文件:
- # wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
- # rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
-
- # yum install monit
-
- # vi /etc/monit.conf
配置 monit
修改 monit 的配置文件,/etc/monit.conf(CentOS)或者 /etc/monit/monitrc(Debian),每隔120秒检查一次系统,如果 httpd/mysql/sshd 服务停掉了就重新启动相应服务。对于 httpd 服务器,当发现 CPU/MEM 占用过大、loadavg 太高时就执行相应的报警、重启服务指令。如果使用 Email 报警功能,需要配置 Email 地址、邮件服务器等信息:
- set daemon 120
-
- check process sshd with pidfile /var/run/sshd.pid
- start program “/etc/init.d/sshd start”
- stop program “/etc/init.d/sshd stop”
- if failed port 22 protocol ssh then restart
- if 5 restarts within 5 cycles then timeout
-
- check process mysql with pidfile /var/run/mysqld/mysqld.pid
- group database
- start program = “/etc/init.d/mysqld 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
-
- check process nginx with pidfile /var/run/nginx.pid
- start program = “/etc/init.d/nginx start”
- stop program = “/etc/init.d/nginx stop”
- if failed host
- then restart
-
- check process php_cgi with pidfile /var/run/php_cgi.pid
- start program = “/etc/init.d/php_cgi start”
- stop program = “/etc/init.d/php_cgi stop”
- if failed host 127.0.0.1 port 9000 then restart
- if 5 restarts within 5 cycles then timeout
-
- check process apache with pidfile /var/run/httpd.pid
- group www
- start program = “/etc/init.d/httpd start”
- stop program = “/etc/init.d/httpd stop”
- if failed host
- then restart
- if cpu is greater than 80% for 2 cycles then alert
- if cpu > 80% for 5 cycles then restart
- if totalmem > 512 MB for 5 cycles then restart
- if children > 200 then restart
- if loadavg(5min) greater than 10 for 8 cycles then stop
- if 3 restarts within 5 cycles then timeout
更多详细信息可以参考配置文件,里面注释写得很详细。
启动 monit
在 CentOS 下启动并加入到系统启动脚本:
- # /etc/init.d/monit start
-
- # /sbin/chkconfig monit on
转:http://blog.phpsoho.com/?p=372
阅读(1781) | 评论(0) | 转发(0) |