1. 程式人生 > >monit介紹和配置

monit介紹和配置

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 [email protected]   設定接收告警的郵箱

 

以上是全域性的配置,具體的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