English |
  • 美国VPS主机推荐
  • |
  • 代购服务
  • |
  • 10美元以下VPS
  • |
  • VPS新手指南/教程
  • |
  • 留言板
  • |
  • 关于
  • | 登录 |

    Monit - Linux系统进程、文件、目录和设备的监测软件

    2011年07月21日 上午 | 作者:VPS侦探

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

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

    1、安装Monit

    CentOS可以到:http://pkgs.repoforge.org/monit/ 下载对应位数rpm包安装。

    32位:wget -c http://pkgs.repoforge.org/monit/monit-5.2.5-1.el5.rf.i386.rpm;rpm -ivh monit-5.2.5-1.el5.rf.i386.rpm
    64位:wget -c http://pkgs.repoforge.org/monit/monit-5.2.5-1.el5.rf.x86_64.rpm;rpm -ivh monit-5.2.5-1.el5.rf.x86_64.rpm

    Debian可以直接:apt-get install monit 安装。

    2、修改配置文件

    CentOS用RPM包安装的话配置文件在: /etc/monit.conf;Debian apt-get安装的话配置文件在:/etc/monit/monitrc;

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

    set daemon  120        #设置检测时间
    set logfile /var/log/monit.log        #monit日志
    set alert www@vpser.net with reminder on 1 cycle  #出现1次错误的时候发报警邮件到指定的邮箱
    set mailserver mail.vpser.net     #设置邮件服务器
    set httpd port 2812 and            # 设置http监控页面的端口
         use address 74.207.246.99   # http监控页面的IP
         allow localhost               # 允许本地访问
         allow 123.23.45.0/24           # 允许此IP段访问
         #allow 0.0.0.0/0.0.0.0       # 允许所有IP访问
         allow username:password     #设置访问用户名密码
    
    #检测sshd服务
    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
    
    #检测mysql服务
    check process mysql with pidfile /usr/local/mysql/var/vpser.pid
       group database
       start program = "/etc/init.d/mysql start"
       stop program = "/etc/init.d/mysql stop"
       if failed host 127.0.0.1 port 3306 then restart
       if 5 restarts within 5 cycles then timeout
    
    #检测nginx服务
     check process nginx with pidfile /usr/local/nginx/logs/nginx.pid
        start program = "/etc/init.d/nginx start"
        stop program  = "/etc/init.d/nginx stop"
        if failed host www.vpser.net port 80 protocol http
           then restart

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

    看了一下php-fpm貌似用Monit还不是很好监控。

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

    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}

    当然如果使用监控宝服务也不错,只不过免费版的检测间隔长些、对检测的数量有限制。

    如有问题欢迎反馈,欢迎到VPS论坛交流。

    原创文章,谢绝转载!

    >>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/manage/monit.html
    VPS侦探推荐:
    遨游主机Linode搬瓦工OAH新加坡VPSLOCVPSDiaHostingKVMLAVPS2EZBudgetVMVultr美国VPS主机
    欢迎加入VPS侦探论坛交流:https://bbs.vpser.net

    发表评论

    *必填

    *必填 (不会被公开)

    3 + 6 = ?

    评论(13条评论)

    1. Thank you for information I translated to English. I need to know about VPS. and I see you page.

    2. 如何监控目录,并生成日志(包括目录里面什么文件被修改了)?
      比如我需要监控 /home/wwwroot 目录

      VPSer 回复:

      @Mr.Cong, 这个好像不行,看配置文件的例子只能检查gid、uid 权限、时间戳

    3. 我是按照你上面的方法安装的,如果目录不存在是应该手动创建目录吗?请指教

      VPSer 回复:

      @max, 如果你启用了include 就需要把那几个目录手动创建上。

    4. monit无法启动

      Starting monit: /etc/monit.conf:246: Warning: include files not found '/etc/monit.d/*'
      monit: Error opening the idfile '/var/monit/id' -- No such file or directory

      请问是什么意思?

      VPSer 回复:

      @max, include 的目录文件不存在
      /var/monit/id 目录或文件不存在

    5. 占用1M 这个给力 试试

    6. 貌似不错
      多多学习啊

    7. 这个占多内存不

      VPSer 回复:

      @centos, 占的很少,测试的一台vps占了1MB左右

    8. 不会用 , 球卸载教程

      VPSer 回复:

      @小陈, rpm -qa | grep monit
      rpm -e 上面返回的名字
      debian:apt-get remove monit