monit安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了monit安装相关的知识,希望对你有一定的参考价值。

一、安装monit

yum install -y monit


二、修改配置文件如下(/etc/monit.conf)

###############################################################################

## Monit control file

###############################################################################

##

## Comments begin with a ‘#‘ and extend through the end of the line. Keywords

## are case insensitive. All path‘s MUST BE FULLY QUALIFIED, starting with ‘/‘.

##

## Below you will find examples of some frequently used statements. For 

## information about the control file and a complete list of statements and 

## options, please have a look in the Monit manual.

##

##

###############################################################################

## Global section

###############################################################################

##

## Start Monit in the background (run as a daemon):

#

# set daemon  120           # check services at 2-minute intervals

#     with start delay 240  # optional: delay the first check by 4-minutes (by 

#                           # default Monit check immediately after Monit start)

#

#

## Set syslog logging with the ‘daemon‘ facility. If the FACILITY option is

## omitted, Monit will use ‘user‘ facility by default. If you want to log to 

## a standalone log file instead, specify the full path to the log file

#

# set logfile syslog facility log_daemon                       

#

#

### Set the location of the Monit id file which stores the unique id for the

### Monit instance. The id is generated and stored on first Monit start. By 

### default the file is placed in $HOME/.monit.id.

#

# set idfile /var/.monit.id

#

### Set the location of the Monit state file which saves monitoring states

### on each cycle. By default the file is placed in $HOME/.monit.state. If

### the state file is stored on a persistent filesystem, Monit will recover

### the monitoring state across reboots. If it is on temporary filesystem, the

### state will be lost on reboot which may be convenient in some situations.

#

# set statefile /var/.monit.state

#

## Set the list of mail servers for alert delivery. Multiple servers may be 

## specified using a comma separator. By default Monit uses port 25 - it is

## possible to override this with the PORT option.

#

# set mailserver mail.bar.baz,               # primary mailserver

#                backup.bar.baz port 10025,  # backup mailserver on port 10025

#                localhost                   # fallback relay

#

#

## By default Monit will drop alert events if no mail servers are available. 

## If you want to keep the alerts for later delivery retry, you can use the 

## EVENTQUEUE statement. The base directory where undelivered alerts will be 

## stored is specified by the BASEDIR option. You can limit the maximal queue

## size using the SLOTS option (if omitted, the queue is limited by space 

## available in the back end filesystem).

#

# set eventqueue

#     basedir /var/monit  # set the base directory where events will be stored

#     slots 100           # optionally limit the queue size

#

#

## Send status and events to M/Monit (for more informations about M/Monit 

## see http://mmonit.com/).

#

# set mmonit http://monit:[email protected]:8080/collector

#

#

## Monit by default uses the following alert mail format:

##

## --8<--

## From: [email protected]$HOST                         # sender

## Subject: monit alert --  $EVENT $SERVICE  # subject

##

## $EVENT Service $SERVICE                   #

##                                           #

##      Date:        $DATE                   #

##      Action:      $ACTION                 #

##      Host:        $HOST                   # body

##      Description: $DESCRIPTION            #

##                                           #

## Your faithful employee,                   #

## Monit                                     #

## --8<--

##

## You can override this message format or parts of it, such as subject

## or sender using the MAIL-FORMAT statement. Macros such as $DATE, etc.

## are expanded at runtime. For example, to override the sender, use:

#

# set mail-format { from: [email protected] }

#

#

## You can set alert recipients whom will receive alerts if/when a 

## service defined in this file has errors. Alerts may be restricted on 

## events by using a filter as in the second example below. 

#

# set alert [email protected]                       # receive all alerts

# set alert [email protected] only on { timeout }  # receive just service-

#                                                # timeout alert

#

#

## Monit has an embedded web server which can be used to view status of 

## services monitored and manage services from a web interface. See the

## Monit Wiki if you want to enable SSL for the web server. 

#

# set httpd port 2812 and

#     use address localhost  # only accept connection from localhost

#     allow localhost        # allow localhost to connect to the server and

#     allow admin:monit      # require user ‘admin‘ with password ‘monit‘

#     allow @monit           # allow users of group ‘monit‘ to connect (rw)

#     allow @users readonly  # allow users of group ‘users‘ to connect readonly

#

#

###############################################################################

## Services

###############################################################################

##

## Check general system resources such as load average, cpu and memory

## usage. Each test specifies a resource, conditions and the action to be

## performed should a test fail.

#

#  check system myhost.mydomain.tld

#    if loadavg (1min) > 4 then alert

#    if loadavg (5min) > 2 then alert

#    if memory usage > 75% then alert

#    if cpu usage (user) > 70% then alert

#    if cpu usage (system) > 30% then alert

#    if cpu usage (wait) > 20% then alert

#

#    

## Check a file for existence, checksum, permissions, uid and gid. In addition

## to alert recipients in the global section, customized alert can be sent to 

## additional recipients by specifying a local alert handler. The service may 

## be grouped using the GROUP option. More than one group can be specified by

## repeating the ‘group name‘ statement.

#    

#  check file apache_bin with path /usr/local/apache/bin/httpd

#    if failed checksum and 

#       expect the sum 8f7f419955cefa0b33a2ba316cba3659 then unmonitor

#    if failed permission 755 then unmonitor

#    if failed uid root then unmonitor

#    if failed gid root then unmonitor

#    alert [email protected] on {

#           checksum, permission, uid, gid, unmonitor

#        } with the mail-format { subject: Alarm! }

#    group server

#

#    

## Check that a process is running, in this case Apache, and that it respond

## to HTTP and HTTPS requests. Check its resource usage such as cpu and memory,

## and number of children. If the process is not running, Monit will restart 

## it by default. In case the service is restarted very often and the 

## problem remains, it is possible to disable monitoring using the TIMEOUT

## statement. This service depends on another service (apache_bin) which

## is defined above.

#    

#  check process apache with pidfile /usr/local/apache/logs/httpd.pid

#    start program = "/etc/init.d/httpd start" with timeout 60 seconds

#    stop program  = "/etc/init.d/httpd stop"

#    if cpu > 60% for 2 cycles then alert

#    if cpu > 80% for 5 cycles then restart

#    if totalmem > 200.0 MB for 5 cycles then restart

#    if children > 250 then restart

#    if loadavg(5min) greater than 10 for 8 cycles then stop

#    if failed host www.tildeslash.com port 80 protocol http

#       and request "/somefile.html"

#       then restart

#    if failed port 443 type tcpssl protocol http

#       with timeout 15 seconds

#       then restart

#    if 3 restarts within 5 cycles then timeout

#    depends on apache_bin

#    group server

#    

#    

## Check filesystem permissions, uid, gid, space and inode usage. Other services,

## such as databases, may depend on this resource and an automatically graceful

## stop may be cascaded to them before the filesystem will become full and data

## lost.

#

#  check filesystem datafs with path /dev/sdb1

#    start program  = "/bin/mount /data"

#    stop program  = "/bin/umount /data"

#    if failed permission 660 then unmonitor

#    if failed uid root then unmonitor

#    if failed gid disk then unmonitor

#    if space usage > 80% for 5 times within 15 cycles then alert

#    if space usage > 99% then stop

#    if inode usage > 30000 then alert

#    if inode usage > 99% then stop

#    group server

#

#

## Check a file‘s timestamp. In this example, we test if a file is older 

## than 15 minutes and assume something is wrong if its not updated. Also,

## if the file size exceed a given limit, execute a script

#

#  check file database with path /data/mydatabase.db

#    if failed permission 700 then alert

#    if failed uid data then alert

#    if failed gid data then alert

#    if timestamp > 15 minutes then alert

#    if size > 100 MB then exec "/my/cleanup/script" as uid dba and gid dba

#

#

## Check directory permission, uid and gid.  An event is triggered if the 

## directory does not belong to the user with uid 0 and gid 0.  In addition, 

## the permissions have to match the octal description of 755 (see chmod(1)).

#

#  check directory bin with path /bin

#    if failed permission 755 then unmonitor

#    if failed uid 0 then unmonitor

#    if failed gid 0 then unmonitor

#

#

## Check a remote host availability by issuing a ping test and check the 

## content of a response from a web server. Up to three pings are sent and 

## connection to a port and an application level network check is performed.

#

#  check host myserver with address 192.168.1.1

#    if failed icmp type echo count 3 with timeout 3 seconds then alert

#    if failed port 3306 protocol mysql with timeout 15 seconds then alert

#    if failed url http://user:[email protected]:8080/?querystring

#       and content == ‘action="j_security_check"‘

#       then alert

#

#

###############################################################################

set daemon 60

#set logfile syslog facility log_daemon

set logfile /var/log/monit

set statefile /var/.monit.state

set mailserver  smtp.xiaoniuniuniu66.com  USERNAME "[email protected]" PASSWORD "Qasssddsz1wssesx#xn"

set eventqueue

    basedir /var/monit

    slots 100

set mail-format {

        from:  [email protected]

#        subject: [Service Alter] $HOST $SERVICE $EVENT at $DATE

        subject: [Service Alter][public] $HOST $SERVICE $EVENT

        message: 

                $EVENT Service $SERVICE  

                Date:        $DATE   

                Action:      $ACTION  

                Host:        $HOST   

                Description: $DESCRIPTION             

            

               Your faithful employee,

               monit

    }

#set alert [email protected] not on { instance }

set alert [email protected] not on { ppid,instance } with reminder on 5 cycles

set httpd port 2812

    use address localhost

    allow localhost

    allow monituser:papwd9527

    ## sz office

    allow 218.17.71.26 

    allow   127.0.0.1

    ## vpn


include /etc/monit.d/*.conf



三、修改配置文件/etc/minit.conf权限

chmod 0700 /etc/minit.conf


四、启动monit

service monit start

本文出自 “我的运维时光” 博客,请务必保留此出处http://aaronsa.blog.51cto.com/5157083/1742399

以上是关于monit安装的主要内容,如果未能解决你的问题,请参考以下文章

Monit监控软件安装

用monit监控系统关键进程

使用monit监控storm

Monit:开源服务器监控工具

Monit:开源服务器监控工具

如何使用Monit部署服务器监控系统