zoukankan      html  css  js  c++  java
  • monit介绍和配置

    1.介绍

        monit监控和管理进程、程序、文件、目录和Unix系统的文件的工具。可以进行自动维护和修理,在错误的情况下执行有意义的因果关系的行动。比如,某个进程没有运行启动它;没有响应重启它;占用太多资源停止该进程等等。也可以用来监控文件、目录或系统文件的变化,如时间戳的改变,检验和的改变或大小的改变

    2.安装:(需先装epel源)

        yum install monit -y  

     3.配置

        3.1 monit 的配置文件monit.conf

            set daemon  30   监控检查的时间间隔

             set logfile syslog   默认日志为syslog,还可以设置为自定义路径下的文件

            set pidfile /var/run/monit.pid  设置pid文件的位置        

            set idfile /var/.monit.id  设置监控项目唯一ID的文件位置  默认在$HOME/.monit.id

            set statefile /var/.monit.state    默认存储每个周期内monitorinig 状态的文件

             set mailserver   mail.bar.baz    主的邮件服务器

                                  backup.bar.baz port 10025    备的邮件服务器

    mailserver 支持格式为:
    SET MAILSERVER <hostname|ip-address [PORT number] [USERNAME string] [PASSWORD string] [using SSLAUTO|SSLV2|SSLV3|TLSV1|TLSV11|TLSV12] [CERTMD5 checksum]>, ...
                    [with TIMEOUT X SECONDS]
                    [using HOSTNAME hostname]

            

        set eventqueue         #默认当邮件服务器不可用时使用eventqueue存储报警事件
             basedir /var/monit  
             slots 100            #限制队列大小

     set mail-format {     设置邮件告警的格式

          from: monit@$HOST

       subject: monit alert --  $EVENT $SERVICE

       message: $EVENT Service $SERVICE

                   Date:        $DATE

                    Action:      $ACTION

                    Host:        $HOST

                     Description: $DESCRIPTION

               Your faithful employee,

              Monit

    }

    set alert sysadm@foo.bar   设置接收告警的邮箱

    以上是全局的配置,具体的services监控语法后面会介绍

       3.2  进程监控

            在 /etc/monit.d/下创建 nginx ,,并重启monit。内容如下

    check process nginx with pidfile /usr/local/xywy/nginx/run/nginx.pid
    start program = "/usr/local/xywy/nginx/sbin/nginx" with timeout 30 seconds
    stop program = "/usr/local/xywy/nginx/sbin/nginx -s stop"

        3.3 监控文件

            在/etc/monit.d/下创建monit_test ,并重启monit,内容如下

      

    check file monit.conf path /etc/monit.conf
    group system
    if changed sha1 checksum
    then exec "/usr/local/bin/monit -c /etc/monit.conf reload"
     

      3.4  监控文件设备

     
    check device VAR_LOG with path /var/log
    if space usage > 85% then alert
    
    check filesystem tmpfs with path /var
    if space usage > 80% then alert

    下面是配置综合案例

    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 www.vpsee.com port 80 protocol http
           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 www.vpsee.com port 8080 protocol http
          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
     

    3.5 monit命令使用

    -c  指定配置文件

    -d  后台运行

    -l    指定logfile

    -p  指定pid file

    -s  指定statefile


            



    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





  • 相关阅读:
    进程与线程
    闭包
    form表单提交
    让图片在div盒子中水平垂直居中
    第一个shell脚本——修改配置文件
    Linux系统find命令的常用方法
    Linux使echo命令输出结果带颜色
    Linux面试题
    无人值守批量安装
    Linux系统PXE高效批量网络装机的配置
  • 原文地址:https://www.cnblogs.com/pycode/p/9495869.html
Copyright © 2011-2022 走看看