Monit 5.4 发布,LinuxUnix 系统监控 


Monit 5.4 发布,增加了处理 uptime 的测试,例如可设置条件 if uptime > 3 days then restart;另外支持 Linux 的 uClibc;其他方面主要是 bug 修复,详情请看 ChangeLog

Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,适用于Linux/Unix平台。 它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误,同时Monit 包含一个内嵌的 HTTP(S) Web 界面,你可以使用浏览器方便地查看 Monit 所监视的服务器。

Monit官网:http://mmonit.com/monit/

1、安装Monit

RedhatCentOS可以到:http://pkgs.repoforge.org/monit/ 下载对应位数rpm包安装。 Debian可以直接:apt-get install monit 安装。

源码编译安装:


  1. ./configure --prefix=/usr/local/monit --without-ssl

  2. make

  3. make install

  4. mkdir -p /usr/local/monit/etc

  5. cp monitrc /usr/local/monit/etc

  6. chmod 600 /usr/local/monit/etc/monitrc


2、修改配置文件

CentOSRPM包安装的话配置文件在: /etc/monit.confDebian apt-get安装的话配置文件在:/etc/monit/monitrc源码编译在安装目录 $prefix/etc/monit.conf

下面是一个简单的例子,配置文件中已经包含了大量的例子,可以看配置文件参考。


  1. set daemon 120 #设置检测时间


  2. set logfile /var/log/monit.log #monit日志


  3. set httpd port 2812 and # monit内置了一个用于查看被监视服务


  4. use address 192.168.10.197 # 设置这个http服务器的地址


  5. allow 192.168.10.0/24 # 允许本地访问


  6. allow admin:monit # 设置使用用户名admin和密码monit


  7. set mailserver smtp.sina.com port 25 USERNAME "linlianpengit@sina.com" PASSWORD "***" #(设置发送邮件的服务器及邮箱)


  8. #制定报警邮件的格式


  9. set mail-format {


  10. from: linlianpengit@sina.com


  11. subject: $SERVICE $EVENT at $DATE


  12. message: Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.


  13. }


  14. #指定邮件接收者


  15. set alert XXX@qq.com with reminder on 3 cycles


  16. #检测sshd服务


  17. check process sshd with pidfile /var/run/sshd.pid


  18. start program "/etc/init.d/sshd start"


  19. stop program "/etc/init.d/sshd stop"


  20. if failed port 22 protocol ssh then restart


  21. if 5 restarts within 5 cycles then timeout


  22. #检测mysql服务


  23. check process mysql with pidfile /usr/local/mysql/var/vpser.pid


  24. group database


  25. start program = "/etc/init.d/mysql start"


  26. stop program = "/etc/init.d/mysql stop"


  27. if failed host 127.0.0.1 port 3306 then restart


  28. if 5 restarts within 5 cycles then timeout


  29. #检测nginx服务


  30. check process nginx with pidfile /usr/local/nginx/logs/nginx.pid


  31. start program = "/etc/init.d/nginx start"


  32. stop program = "/etc/init.d/nginx stop"


  33. if failed host localhost port 80 protocol http


  34. then restart


配置中的pid及启动、关闭脚本的路径一定要是全路径,且参数一定要正确否则会造成无法正常检测或正常启动。

如果添加了http可以直接使用http://192.168.10.197:2812 进行管理。

25266990_1346985631FNCn.jpg

可以看到监控服务的运行状态:

25266990_1346985637nEHN.jpg

25266990_1346996208lwwg.jpg

3、启动/停止Monit

CentOS

chkconfig monit on //加入开机启动

/etc/init.d/monit {start|stop|restart|force-reload|syntax}

Debian

编辑:/etc/default/monit 文件,查找 startup=0 ,将0改为1,保存。

update-rc.d -f monit defaults

/etc/init.d/monit {start|stop|restart|force-reload|syntax}