现在的位置: 首页 > 综合 > 正文

服务器端监视工具 monit 配置文件–ubuntu系统下测试

2013年10月04日 ⁄ 综合 ⁄ 共 12490字 ⁄ 字号 评论关闭

用过很多邮箱的SMTP服务,smtp.163.com,mail..qq.com但是一直有问题,

163说的是你未被授权 “ Sendmail error: 553 You are not authorized to send mail, authentication is required”

然后改用localhost: 这样报错 “Sendmail: error receiving data from the mailserver 'localhost' -- Resource temporarily unavailable”

于是自己调用service sendmail start ,问题解决了!可以发送了!!!兴奋有木有啊!

安装篇:

最后自己在本地安装了sendmail服务,用自己本地机器作为邮件服务器,这样设置更为简单,

中间遇到了很多问题,头一直昏昏沉沉的,终于把老师交代的服务器工作,用monit以及cacti配置完成了,不容易啊

monit配置更简单,就是发送邮件搞了很久不成功!但是功能更强大,什么进程,网络链接状况,内存,文件系统这一类的,甚至文件大小也可以监视,太TM强大了,强力推荐啊!

可能是我装了两个版本,在/usr/local/monit/etc/有个配置文件monitrc,以及/etc/monit下也有一个配置文件,刚开始的适合在后者配置的时候可以用,到后面没有正常关闭文件还是怎么的,前面一个配置文件就开始启动了,还我一直在修改后者,坑dad啊,在一个新环境下就是不方便啊!

启动的时候调用 /usr/local/monit/bin/monit来启动,而不调用init -q等,因为我根本就没有找到iniitab这个配置文件,所以没有加入init,所以直接启动

如果链接错误,有可能是monit http server没有启动(这个名字是从日至文件里面得到的),另外就是monit没有启动,启动方法同前;

还有一个发现就是当你在配置文件中添加了set logfile /usr/mylog.log的话,你就可以在显示界面running对应的超链接,有一个按钮可以查询日至文件,否则智慧有两个按钮出现

系统的日至文件是存放在/usr/log/syslog

你在配置文件中设置的邮箱模版在附件中下来*.bin文件可以察看到

当你看了一定的中文资料的时候就应该到官网上去看看官方的文档

http://mmonit.com/monit/documentation/monit.html

可以找到很多你想要的资料

当时我有一个很头疼的问题,就是每次修改了配置文件,然后restart monit,却发现配置依旧没有改变(这点可以通过localhost:2812的running对应的超链接网页可以知道)

不过你每一次重新开机之后有可以发现配置已经更新了,我猜想是不是因为启动monit之后,会把文件配置加载到某一个地方,之后就不会在加载配置文件了,开机后调用某一个函数,然后把这个配置文件加载一次,所以修改才体现出来,没办法这种问题在网上基本没有答案,所以只能自己慢慢地去挖掘官网的文档,终于让我看到了reload这个命令

功夫不服苦心人啊!当作是自己的一个经验吧!

下面是配置文件,存一个档:

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

## 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  35            # check services at 1-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 logfile /var/log/monitlai.log                      
#
#
## 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. If the first mail server fails, Monit
# will use the second mail server in the list and so on. By default Monit uses
# port 25 - it is possible to override this with the PORT option.
#
 set mailserver localhost # smtp.163.com,#localhost            # primary mailserver
#                port 25  # backup mailserver on port 10025
                # USERNAME "lai6803695" PASSWORD "616458932**!"                 # 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/). By default Monit registers credentials with
## M/Monit so M/Monit can smoothly communicate back to Monit and you don't
## have to register Monit credentials manually in M/Monit. It is possible to
## disable credential registration using the commented out option below.
## Though, if safety is a concern we recommend instead using https when
## communicating with M/Monit and send credentials encrypted.
#
# set mmonit http://monit:monit@192.168.1.10:8080/collector
#     # and register without credentials     # Don't register credentials
#
#
## Monit by default uses the following format for alerts if the the mail-format
## statement is missing::
## --8<--
## 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
## }
## --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: lai6803695@163.com
           subject:monit alert
           message:Date:$DATE
 }
#
#
## 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  lai6803695@163.com reminder on 1 cycle   
        # receive all alerts
# set alert manager@foo.bar 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 localhost
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 20% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert
#
#    
## Check if a file exists, 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 security@foo.bar 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

#new add
check process apache2 with pidfile /var/run/apache2.pid
start program = "/etc/init.d/apache2 start"
stop  program = "/etc/init.d/apache2 stop"
if 2 restart within 10 cycles then timeout
if cpu usage > 80% for 2 cycles then alert
if failed url http://localhost timeout 120 seconds for 3 cycles then restart
    
    
## 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:password@www.foo.bar:8080/?querystring
#       and content == 'action="j_security_check"'
#       then alert
#
#
###############################################################################
## Includes
###############################################################################
##
## It is possible to include additional configuration parts from other files or
## directories.
#
 include /etc/monit.d/*

#

  参考文章1:原文:http://hnnxdjp.blog.163.com/blog/static/121693180201212024122451/

monit 简单安装及配置  

2012-02-20 15:17:05|  分类:监控|字号 订阅

1.下载软件包
wget   http://mmonit.com/monit/dist/monit-5.3.2.tar.gz

2.解压并按装
tar  zxvf   monit-5.3.2.tar.gz
cd   monit-5.3.2
./configure  --prefix=/usr/local/monit    --without-ssl
make
make install
mkdir  -p /usr/local/monit/etc
cp  monitrc  /usr/local/monit/etc
chmod
600 /usr/local/monit/etc/monitrc

3.配置
vi   /usr/local/monit/etc/monitrc

set daemon 30
#30秒检查一次
set
httpd port 2812 and           # monit内置了一个用于查看被监视服务

use
address localhost            
#
设置这个http服务器的地址

allow
localhost                   # 允许本地访问

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

set mailserver smtp.aa.com port 25 USERNAME "aa@aa.com" PASSWORD "123456"  (设置发送邮件的服务器及邮箱)

#制定报警邮件的格式
set mail-format {
from: aa@aa.com
subject: $SERVICE $EVENT at $DATE
message: Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.
}

#指定邮件接收者
set alert   bb@aa.com with reminder on 3 cycles

#监控系统内存、cpu、load、memory、swap使用情况
check system localhost
if loadavg (1min) > 4 then alert
if loadavg (5min) > 2 then alert
if memory usage > 75% then alert
if swap usage > 25% then alert
if cpu usage (user) > 70% then alert
if cpu usage (system) > 30% then alert
if cpu usage (wait) > 20% then alert

#监控磁盘使用情况
check device system with path /
if space usage > 85% for 5 times within 15 cycles then alert
if space usage > 95% then stop
if inode usage > 85% then alert
if inode usage > 95% then stop

#监控apache2
check process apache2 with pidfile /var/run/apache2.pid
start program = "/etc/init.d/apache2 start"
stop  program = "/etc/init.d/apache2 stop"
if 2 restart within 10 cycles then timeout
if cpu usage > 80% for 2 cycles then alert
if failed url http://localhost timeout 120 seconds for 3 cycles then restart(出现故障则重启服务器)

#监视ssh服务
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 host localhost
port
22 protocol SSH then restart

if
5 restarts within 5 cycles then timeout


4.启动服务
/usr/local/monit/bin/monit

5.查看监控信息

http://localhost:2812

其实安装的适合不是用的这个,不过都一样啦,我是直接apt-get安装的!不过这样自己安装什么版本的时候就不确定了

推荐Linux的一些常用命令使用:http://wiki.ubuntu.org.cn/UbuntuSkills

抱歉!评论已关闭.